diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-09-09 12:50:42 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-09-17 04:14:25 +0200 |
commit | 6d1e792980cd3d1bfed7840e80764fa403df17ab (patch) | |
tree | b41ae35a9dfd4bc3976eb529c84a822b15832bcc | |
parent | 1dd3ab487618e8fa0275aea09a6afc5633a1789f (diff) | |
download | ffmpeg-6d1e792980cd3d1bfed7840e80764fa403df17ab.tar.gz |
avformat/mp3dec: Avoid calling avio_tell() multiple times
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r-- | libavformat/mp3dec.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libavformat/mp3dec.c b/libavformat/mp3dec.c index 195d89814e..9205abebc4 100644 --- a/libavformat/mp3dec.c +++ b/libavformat/mp3dec.c @@ -171,7 +171,8 @@ static void mp3_parse_info_tag(AVFormatContext *s, AVStream *st, MP3DecContext *mp3 = s->priv_data; static const int64_t xing_offtbl[2][2] = {{32, 17}, {17,9}}; uint64_t fsize = avio_size(s->pb); - fsize = fsize >= avio_tell(s->pb) ? fsize - avio_tell(s->pb) : 0; + int64_t pos = avio_tell(s->pb); + fsize = fsize >= pos ? fsize - pos : 0; /* Check for Xing / Info tag */ avio_skip(s->pb, xing_offtbl[c->lsf == 1][c->nb_channels == 1]); @@ -430,9 +431,10 @@ static int mp3_read_header(AVFormatContext *s) return ret; } + off = avio_tell(s->pb); // the seek index is relative to the end of the xing vbr headers for (i = 0; i < st->internal->nb_index_entries; i++) - st->internal->index_entries[i].pos += avio_tell(s->pb); + st->internal->index_entries[i].pos += off; /* the parameters will be extracted from the compressed bitstream */ return 0; |