summaryrefslogtreecommitdiffstats
path: root/libhb/encx264.c
diff options
context:
space:
mode:
authorvan <[email protected]>2008-06-30 05:01:01 +0000
committervan <[email protected]>2008-06-30 05:01:01 +0000
commit9c5ffcd12957fcf93c4addd7ccc478c85304d047 (patch)
tree077a4794221f0705ddae3f3879e13e0b3ad95a08 /libhb/encx264.c
parentda80bb8d441e3c12260f2f1bc0fff218112cb42d (diff)
- fix an error in the SCR calculation that would cause an extra frame to be dropped at an SCR discontinuity.
- fix a rounding error in the encx264 init_delay computation that would underestimate the delay for progressive content and cause spurious "init_delay too small" messages. - clean up the sync.c "video time didn't advance" logic and try to make the error mgs more useful for debugging frame duration problems. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1543 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'libhb/encx264.c')
-rw-r--r--libhb/encx264.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libhb/encx264.c b/libhb/encx264.c
index da8c7f979..57a2fe281 100644
--- a/libhb/encx264.c
+++ b/libhb/encx264.c
@@ -317,9 +317,11 @@ int encx264Init( hb_work_object_t * w, hb_job_t * job )
/* 23.976-length frames are 3753.75 ticks long on average but the DVD
creates that average rate by repeating 59.95 fields so the max
- frame size is actually 4504.5 (3 field times) */
+ frame size is actually 4504.5 (3 field times). The field durations
+ are computed based on quantized times (see below) so we need an extra
+ two ticks to account for the rounding. */
if (pv->init_delay == 3753)
- pv->init_delay = 4505;
+ pv->init_delay = 4507;
/* frame rates are not exact in the DVD 90KHz PTS clock (they are
exact in the DVD 27MHz system clock but we never see that) so the