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;