]> granicus.if.org Git - handbrake/commitdiff
account for quantization bias when computing durations for vfr.
authorvan <vanj.hb@gmail.com>
Tue, 22 Jan 2008 17:05:12 +0000 (17:05 +0000)
committervan <vanj.hb@gmail.com>
Tue, 22 Jan 2008 17:05:12 +0000 (17:05 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1224 b64f7644-9d1e-0410-96f1-a4d463321fa5

libhb/muxmp4.c

index 989bb960762e4347ac5a5588a06bf72531363faa..0959c6e48aec217d1999f723c93b5589cd4a027a 100644 (file)
@@ -416,14 +416,8 @@ static int MP4Mux( hb_mux_object_t * m, hb_mux_data_t * mux_data,
         /* Because we use the audio samplerate as the timescale,
            we have to use potentially variable durations so the video
            doesn't go out of sync */
-        if ( job->vfr )
-        {
-            duration    = ( ( buf->stop * job->arate / 90000 ) - ( buf->start * job->arate / 90000 ) );
-        }
-        else
-        {
-            duration    = ( buf->stop * job->arate / 90000 ) - m->sum_dur;
-        }
+        int64_t bias = ( buf->start * job->arate / 90000 ) - m->sum_dur;
+        duration = ( buf->stop - buf->start ) * job->arate / 90000 + bias;
         m->sum_dur += duration;
     }
     else