summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/mp3dec.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/libavformat/mp3dec.c b/libavformat/mp3dec.c
index 1692d8848d..06bc1d0f7f 100644
--- a/libavformat/mp3dec.c
+++ b/libavformat/mp3dec.c
@@ -437,16 +437,10 @@ static int mp3_seek(AVFormatContext *s, int stream_index, int64_t timestamp,
&& st->duration > 0
&& mp3->header_filesize > s->internal->data_offset
&& mp3->frames) {
- int64_t filesize = avio_size(s->pb);
- int64_t duration;
- if (filesize <= s->internal->data_offset)
- filesize = mp3->header_filesize;
- filesize -= s->internal->data_offset;
- duration = av_rescale(st->duration, filesize, mp3->header_filesize - s->internal->data_offset);
ie = &ie1;
- timestamp = av_clip64(timestamp, 0, duration);
+ timestamp = av_clip64(timestamp, 0, st->duration);
ie->timestamp = timestamp;
- ie->pos = av_rescale(timestamp, filesize, duration) + s->internal->data_offset;
+ ie->pos = av_rescale(timestamp, mp3->header_filesize, st->duration) + s->internal->data_offset;
} else if (mp3->xing_toc) {
if (ret < 0)
return ret;