X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=cap_avi.c;h=1292f126fe3baf0de3ced74ae0c1f0583287c3d4;hb=2a0508542fefcd4635626511f844f2fb0909ce09;hp=97388c38058e39a0d8bb279277f5f6fa47871a36;hpb=814920dd2f335b4451c58bbdde00d27d3cd783a6;p=xonotic%2Fdarkplaces.git diff --git a/cap_avi.c b/cap_avi.c index 97388c38..1292f126 100644 --- a/cap_avi.c +++ b/cap_avi.c @@ -403,7 +403,7 @@ static void SCR_CaptureVideo_Avi_VideoFrames(int num) } } -void SCR_CaptureVideo_Avi_EndVideo() +void SCR_CaptureVideo_Avi_EndVideo(void) { LOAD_FORMATSPECIFIC_AVI(); @@ -494,7 +494,7 @@ void SCR_CaptureVideo_Avi_SoundFrame(const portable_sampleframe_t *paintbuffer, } } -void SCR_CaptureVideo_Avi_BeginVideo() +void SCR_CaptureVideo_Avi_BeginVideo(void) { int width = cls.capturevideo.width; int height = cls.capturevideo.height; @@ -520,7 +520,7 @@ void SCR_CaptureVideo_Avi_BeginVideo() // AVI main header SCR_CaptureVideo_RIFF_Push("LIST", "hdrl", format->canseek ? -1 : 8+56+12+(12+52+8+40+8+68)+(cls.capturevideo.soundrate?(12+12+52+8+18):0)+12+(8+4)); SCR_CaptureVideo_RIFF_Push("avih", NULL, 56); - SCR_CaptureVideo_RIFF_Write32((int)(1000000.0 / cls.capturevideo.framerate)); // microseconds per frame + SCR_CaptureVideo_RIFF_Write32((int)(1000000.0 / (cls.capturevideo.framerate / cls.capturevideo.framestep))); // microseconds per frame SCR_CaptureVideo_RIFF_Write32(0); // max bytes per second SCR_CaptureVideo_RIFF_Write32(0); // padding granularity SCR_CaptureVideo_RIFF_Write32(0x910); // flags (AVIF_HASINDEX | AVIF_ISINTERLEAVED | AVIF_TRUSTCKTYPE) @@ -548,7 +548,7 @@ void SCR_CaptureVideo_Avi_BeginVideo() SCR_CaptureVideo_RIFF_Write16(0); // language SCR_CaptureVideo_RIFF_Write32(0); // initial frames // find an ideal divisor for the framerate - FindFraction(cls.capturevideo.framerate, &n, &d, 1000); + FindFraction(cls.capturevideo.framerate / cls.capturevideo.framestep, &n, &d, 1000); SCR_CaptureVideo_RIFF_Write32(d); // samples/second divisor SCR_CaptureVideo_RIFF_Write32(n); // samples/second multiplied by divisor SCR_CaptureVideo_RIFF_Write32(0); // start @@ -597,7 +597,7 @@ void SCR_CaptureVideo_Avi_BeginVideo() SCR_CaptureVideo_RIFF_Push("vprp", NULL, 68); SCR_CaptureVideo_RIFF_Write32(0); // VideoFormatToken SCR_CaptureVideo_RIFF_Write32(0); // VideoStandard - SCR_CaptureVideo_RIFF_Write32((int)cls.capturevideo.framerate); // dwVerticalRefreshRate (bogus) + SCR_CaptureVideo_RIFF_Write32((int)(cls.capturevideo.framerate / cls.capturevideo.framestep)); // dwVerticalRefreshRate (bogus) SCR_CaptureVideo_RIFF_Write32(width); // dwHTotalInT SCR_CaptureVideo_RIFF_Write32(height); // dwVTotalInLines FindFraction(aspect, &n, &d, 1000);