[SCM] libav/experimental: All else being equal, prefer PTS over DTS in timestamp correction

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:16:28 UTC 2013


The following commit has been merged in the experimental branch:
commit 01d461980e3139f43961f8dad8ab2a61cb23a094
Author: Alexander Strange <astrange at ithinksw.com>
Date:   Tue Sep 28 03:45:27 2010 +0000

    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

diff --git a/cmdutils.c b/cmdutils.c
index 864d772..4317584 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

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list