diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-03-02 00:18:25 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-03-23 20:31:05 +0100 |
commit | b017785fa55cf42d61e84861eba7c73dd4d33e3b (patch) | |
tree | d08768fa53c4826ff7f42f1247725eaa966a426f | |
parent | 01507eb1f87dcccfe6e0e66cd3ab0a4a973169f1 (diff) | |
download | ffmpeg-b017785fa55cf42d61e84861eba7c73dd4d33e3b.tar.gz |
avformat/mp3dec: optimize mp3_seek() for dir < 0
this minimizes the amount of protocol seeks and reading needed in that case
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 171dd67520b649a5b7a0f4fbff72ac88bbedfeab)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/mp3dec.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libavformat/mp3dec.c b/libavformat/mp3dec.c index c1ce173737..ba77bce238 100644 --- a/libavformat/mp3dec.c +++ b/libavformat/mp3dec.c @@ -318,6 +318,8 @@ static int mp3_seek(AVFormatContext *s, int stream_index, int64_t timestamp, return -1; } + if (dir < 0) + avio_seek(s->pb, FFMAX(ie->pos - 4096, 0), SEEK_SET); ret = avio_seek(s->pb, ie->pos, SEEK_SET); if (ret < 0) return ret; |