}
}
+static void SCR_CaptureVideo_RIFF_FlushNoIncrease(void)
+{
+ LOAD_FORMATSPECIFIC_AVI();
+ if (format->riffbuffer.cursize > 0)
+ {
+ if (!FS_Write(cls.capturevideo.videofile, format->riffbuffer.data, format->riffbuffer.cursize))
+ cls.capturevideo.error = true;
+ format->riffbuffer.cursize = 0;
+ format->riffbuffer.overflowed = false;
+ }
+}
+
static void SCR_CaptureVideo_RIFF_WriteBytes(const unsigned char *data, size_t size)
{
LOAD_FORMATSPECIFIC_AVI();
SCR_CaptureVideo_RIFF_Write32(((fs_offset_t) ix) >> 32);
SCR_CaptureVideo_RIFF_Write32(pos - ix);
SCR_CaptureVideo_RIFF_Write32(nMatching);
- SCR_CaptureVideo_RIFF_Flush();
+ SCR_CaptureVideo_RIFF_FlushNoIncrease();
}
if(FS_Seek(cls.capturevideo.videofile, masteridx_counter, SEEK_SET) >= 0)
{
SCR_CaptureVideo_RIFF_Write32(++*masteridx_count);
- SCR_CaptureVideo_RIFF_Flush();
+ SCR_CaptureVideo_RIFF_FlushNoIncrease();
}
FS_Seek(cls.capturevideo.videofile, 0, SEEK_END); // return value doesn't matter here
if(FS_Seek(cls.capturevideo.videofile, format->videofile_firstchunkframes_offset, SEEK_SET) >= 0)
{
SCR_CaptureVideo_RIFF_Write32(cls.capturevideo.frame);
- SCR_CaptureVideo_RIFF_Flush();
+ SCR_CaptureVideo_RIFF_FlushNoIncrease();
}
FS_Seek(cls.capturevideo.videofile, 0, SEEK_END);
format->videofile_firstchunkframes_offset = 0;
if(FS_Seek(cls.capturevideo.videofile, format->videofile_totalframes_offset1, SEEK_SET) >= 0)
{
SCR_CaptureVideo_RIFF_Write32(cls.capturevideo.frame);
- SCR_CaptureVideo_RIFF_Flush();
+ SCR_CaptureVideo_RIFF_FlushNoIncrease();
}
if(format->videofile_totalframes_offset2)
if(FS_Seek(cls.capturevideo.videofile, format->videofile_totalframes_offset2, SEEK_SET) >= 0)
{
SCR_CaptureVideo_RIFF_Write32(cls.capturevideo.frame);
- SCR_CaptureVideo_RIFF_Flush();
+ SCR_CaptureVideo_RIFF_FlushNoIncrease();
}
if (cls.capturevideo.soundrate)
{
if(FS_Seek(cls.capturevideo.videofile, format->videofile_totalsampleframes_offset, SEEK_SET) >= 0)
{
SCR_CaptureVideo_RIFF_Write32(cls.capturevideo.soundsampleframe);
- SCR_CaptureVideo_RIFF_Flush();
+ SCR_CaptureVideo_RIFF_FlushNoIncrease();
}
}
}