From fdea095e349a2236f4d4a2b6e6a83b2cf001d373 Mon Sep 17 00:00:00 2001 From: Uoti Urpala Date: Sun, 14 Nov 2010 11:53:27 +0200 Subject: demux_lavf: mark AVI timestamps non-pts to avoid messages Playing AVI files containing B-frames with demux_lavf printed two "decreasing pts" info messages at the start of the file. We know the timestamps from AVI won't be valid pts, so add a demuxer field to convey that information to the timing code and make that not even try to use the timestamps as valid pts. --- libmpdemux/demux_lavf.c | 1 + libmpdemux/demuxer.h | 6 ++++++ 2 files changed, 7 insertions(+) (limited to 'libmpdemux') diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 14869be61d..b2577d75a9 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -521,6 +521,7 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){ /* for avi libavformat returns the avi timestamps in .dts, * some made-up stuff that's not really pts in .pts */ priv->use_dts = true; + demuxer->timestamp_type = TIMESTAMP_TYPE_SORT; } else { if (opts->user_correct_pts != 0) avfc->flags |= AVFMT_FLAG_GENPTS; diff --git a/libmpdemux/demuxer.h b/libmpdemux/demuxer.h index e8878e3bed..0e28dbfb6b 100644 --- a/libmpdemux/demuxer.h +++ b/libmpdemux/demuxer.h @@ -99,6 +99,11 @@ struct MPOpts; #define MP_NOPTS_VALUE (-1LL<<63) //both int64_t and double should be able to represent this exactly +enum timestamp_type { + TIMESTAMP_TYPE_PTS, + TIMESTAMP_TYPE_SORT, +}; + // DEMUXER control commands/answers #define DEMUXER_CTRL_NOTIMPL -1 @@ -249,6 +254,7 @@ typedef struct demuxer { /* Set if using absolute seeks for small movements is OK (no pts resets * that would make pts ambigious, preferably supports back/forward flags */ bool accurate_seek; + enum timestamp_type timestamp_type; // demux_stream_t *audio; // audio buffer/demuxer demux_stream_t *video; // video buffer/demuxer -- cgit v1.2.3