diff options
author | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2010-11-14 11:53:27 +0200 |
---|---|---|
committer | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2010-11-14 11:59:55 +0200 |
commit | fdea095e349a2236f4d4a2b6e6a83b2cf001d373 (patch) | |
tree | 8096efb0feeb9a4917836bbefaf7d03cce8b4e6d /libmpdemux | |
parent | 7eb48343d47981fc38e0d4c7d9c78ae7ac2662b0 (diff) | |
download | mpv-fdea095e349a2236f4d4a2b6e6a83b2cf001d373.tar.bz2 mpv-fdea095e349a2236f4d4a2b6e6a83b2cf001d373.tar.xz |
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.
Diffstat (limited to 'libmpdemux')
-rw-r--r-- | libmpdemux/demux_lavf.c | 1 | ||||
-rw-r--r-- | libmpdemux/demuxer.h | 6 |
2 files changed, 7 insertions, 0 deletions
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 |