mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
avformat/matroskadec: force 48kHz sample rate when rescaling Opus inital padding
Mkvtoolnix stores the sample rate of the original stream as reported by the "OpusHead" stream header instead of 48kHz, the actual sample rate of the Opus stream. Ignoring the stored sample rate and forcing 48kHz preserves the correct initial padding when remuxing such files. Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
27c1eae55f
commit
49b0246635
@ -2353,7 +2353,8 @@ static int matroska_parse_tracks(AVFormatContext *s)
|
|||||||
if (track->codec_delay > 0) {
|
if (track->codec_delay > 0) {
|
||||||
st->codecpar->initial_padding = av_rescale_q(track->codec_delay,
|
st->codecpar->initial_padding = av_rescale_q(track->codec_delay,
|
||||||
(AVRational){1, 1000000000},
|
(AVRational){1, 1000000000},
|
||||||
(AVRational){1, st->codecpar->sample_rate});
|
(AVRational){1, st->codecpar->codec_id == AV_CODEC_ID_OPUS ?
|
||||||
|
48000 : st->codecpar->sample_rate});
|
||||||
}
|
}
|
||||||
if (track->seek_preroll > 0) {
|
if (track->seek_preroll > 0) {
|
||||||
st->codecpar->seek_preroll = av_rescale_q(track->seek_preroll,
|
st->codecpar->seek_preroll = av_rescale_q(track->seek_preroll,
|
||||||
|
Loading…
Reference in New Issue
Block a user