summaryrefslogtreecommitdiff
path: root/libavformat/mp3dec.c
diff options
context:
space:
mode:
authorDale Curtis <dalecurtis@chromium.org>2020-04-23 16:18:18 -0700
committerAnton Khirnov <anton@khirnov.net>2020-05-27 10:22:17 +0200
commit460132c9980f8a1f501a1f69477bca49e1641233 (patch)
tree72e03d29a496874562b179252e83d1d86f6f5346 /libavformat/mp3dec.c
parent7ae340111ec8e1d7d5bc074cbd3e1b9ca4e90a8d (diff)
lavf/mp3dec: don't adjust start time; packets are not adjusted.
7546ac2fee4 made it so that the start_time for mp3 files is adjusted for skip_samples. However, this appears incorrect because subsequent packet timestamps are not adjusted and skip_samples are applied by deleting data from a packet without changing the timestamp. E.g., we are told the start_time is ~25ms and we get a packet with a timestamp of 0 that has had the skip_samples discarded from it. As such rendering engines may incorrectly discard everything prior to the 25ms thinking that is where playback should officially start. Since the samples were deleted without adjusting timestamps though, the true start_time is still 0. Other formats like MP4 with edit lists will adjust both the start time and the timestamps of subsequent packets to avoid this issue. Signed-off-by: Dale Curtis <dalecurtis@chromium.org> Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diffstat (limited to 'libavformat/mp3dec.c')
-rw-r--r--libavformat/mp3dec.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/libavformat/mp3dec.c b/libavformat/mp3dec.c
index b044679c02..efbf836bcc 100644
--- a/libavformat/mp3dec.c
+++ b/libavformat/mp3dec.c
@@ -260,10 +260,6 @@ static void mp3_parse_info_tag(AVFormatContext *s, AVStream *st,
st->first_discard_sample = -mp3->end_pad + 528 + 1 + mp3->frames * (int64_t)spf;
st->last_discard_sample = mp3->frames * (int64_t)spf;
}
- if (!st->start_time)
- st->start_time = av_rescale_q(st->start_skip_samples,
- (AVRational){1, c->sample_rate},
- st->time_base);
av_log(s, AV_LOG_DEBUG, "pad %d %d\n", mp3->start_pad, mp3-> end_pad);
}