From 22d11d7b3a4f82128245ed5e0b7dfc91755ad188 Mon Sep 17 00:00:00 2001 From: wm4 Date: Tue, 3 Mar 2015 12:34:27 +0100 Subject: Revert "demux_lavf: workaround for broken libavformat subtitle seeking" This reverts commit c8f49be919ffaf983bde77b63d75f96a593ec7a8. Not needed anymore; fixed in all supported FFmpeg releases. Though I could not test again, because all sample files are gone (oops). --- demux/demux_lavf.c | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) (limited to 'demux') diff --git a/demux/demux_lavf.c b/demux/demux_lavf.c index 90f49f40f9..4c960403da 100644 --- a/demux/demux_lavf.c +++ b/demux/demux_lavf.c @@ -920,31 +920,12 @@ static void demux_seek_lavf(demuxer_t *demuxer, double rel_seek_secs, int flags) // API by default, because there are some major issues. // Set max_ts==ts, so that demuxing starts from an earlier position in // the worst case. - // To make this horrible situation even worse, some lavf demuxers have - // broken timebase handling (everything that uses - // ff_subtitles_queue_seek()), and always uses the stream timebase. So - // we use the timebase and stream index of the first enabled stream - // (i.e. a stream which can participate in seeking). - int stream_index = -1; - AVRational time_base = {1, AV_TIME_BASE}; - for (int n = 0; n < priv->num_streams; n++) { - struct sh_stream *stream = priv->streams[n]; - AVStream *st = priv->avfc->streams[n]; - if (stream && st->discard != AVDISCARD_ALL) { - stream_index = n; - time_base = st->time_base; - break; - } - } - int64_t pts = priv->last_pts; - if (pts != AV_NOPTS_VALUE) - pts = pts / (double)AV_TIME_BASE * av_q2d(av_inv_q(time_base)); - int r = avformat_seek_file(priv->avfc, stream_index, INT64_MIN, - pts, pts, avsflags); + int r = avformat_seek_file(priv->avfc, -1, INT64_MIN, + priv->last_pts, priv->last_pts, avsflags); // Similar issue as in the normal seeking codepath. if (r < 0) { - avformat_seek_file(priv->avfc, stream_index, INT64_MIN, - pts, INT64_MAX, avsflags); + avformat_seek_file(priv->avfc, -1, INT64_MIN, + priv->last_pts, INT64_MAX, avsflags); } } } -- cgit v1.2.3