You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-07-16 22:42:38 +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:
@ -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,
|
||||||
|
Reference in New Issue
Block a user