Browse Source

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>
tags/n3.1
James Almer 9 years ago
parent
commit
49b0246635
1 changed files with 2 additions and 1 deletions
  1. +2
    -1
      libavformat/matroskadec.c

+ 2
- 1
libavformat/matroskadec.c View File

@@ -2353,7 +2353,8 @@ static int matroska_parse_tracks(AVFormatContext *s)
if (track->codec_delay > 0) {
st->codecpar->initial_padding = av_rescale_q(track->codec_delay,
(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) {
st->codecpar->seek_preroll = av_rescale_q(track->seek_preroll,


Loading…
Cancel
Save