summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Strange <astrange@ithinksw.com>2010-09-28 03:45:27 +0000
committerAlexander Strange <astrange@ithinksw.com>2010-09-28 03:45:27 +0000
commit01d461980e3139f43961f8dad8ab2a61cb23a094 (patch)
treefdb9984ef589d728cd278a4340993518203ff949
parent7a8bfa5d674922d4413d403b059fe183deb7ddbe (diff)
All else being equal, prefer PTS over DTS in timestamp correction
Because DTS values aren't passed through decoders, they tend to be inaccurate if decoder delay doesn't match what was expected by the encoder. In particular this improves timestamps for H.264 without num_reorder_frames set and with -strict 1, which causes DTS to be up to 16 frames ahead of the picture. Note that this doesn't really improve any file with very broken PTS/DTS, since PTS isn't much more accurate in these. Originally committed as revision 25242 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--cmdutils.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/cmdutils.c b/cmdutils.c
index 864d772213..4317584d17 100644
--- a/cmdutils.c
+++ b/cmdutils.c
@@ -696,7 +696,7 @@ int64_t guess_correct_pts(PtsCorrectionContext *ctx, int64_t reordered_pts, int6
ctx->num_faulty_pts += reordered_pts <= ctx->last_pts;
ctx->last_pts = reordered_pts;
}
- if ((ctx->num_faulty_pts<ctx->num_faulty_dts || dts == AV_NOPTS_VALUE)
+ if ((ctx->num_faulty_pts<=ctx->num_faulty_dts || dts == AV_NOPTS_VALUE)
&& reordered_pts != AV_NOPTS_VALUE)
pts = reordered_pts;
else