[FFmpeg-cvslog] ffmpeg: use timestamp from before and after the decoder to detect backward moving dts for discontinuity detection

Michael Niedermayer git at videolan.org
Sun Dec 22 20:30:23 CET 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Dec 22 19:42:13 2013 +0100| [88956f73f29c9f066718b4c83bb628872990b879] | committer: Michael Niedermayer

ffmpeg: use timestamp from before and after the decoder to detect backward moving dts for discontinuity detection

This should make discontinuity detection more robust and detect
more cases. Timestamps after the decoder can be delayed due to threads,
timestamps before can be missing

no testcase available/known

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=88956f73f29c9f066718b4c83bb628872990b879
---

 ffmpeg.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ffmpeg.c b/ffmpeg.c
index 6a2ff98..5ccbf10 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -3170,7 +3170,7 @@ static int process_input(int file_index)
         if(delta < -1LL*dts_delta_threshold*AV_TIME_BASE ||
             (delta > 1LL*dts_delta_threshold*AV_TIME_BASE &&
                 ist->st->codec->codec_type != AVMEDIA_TYPE_SUBTITLE) ||
-            pkt_dts + AV_TIME_BASE/10 < ist->pts){
+            pkt_dts + AV_TIME_BASE/10 < FFMAX(ist->pts, ist->dts)){
             ifile->ts_offset -= delta;
             av_log(NULL, AV_LOG_DEBUG,
                    "timestamp discontinuity %"PRId64", new offset= %"PRId64"\n",



More information about the ffmpeg-cvslog mailing list