aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-09-09 12:50:42 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-09-17 04:14:25 +0200
commit6d1e792980cd3d1bfed7840e80764fa403df17ab (patch)
treeb41ae35a9dfd4bc3976eb529c84a822b15832bcc
parent1dd3ab487618e8fa0275aea09a6afc5633a1789f (diff)
downloadffmpeg-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.c6
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;