[FFmpeg-cvslog] avformat/matroskadec: force 48kHz sample rate when rescaling Opus inital padding
James Almer
git at videolan.org
Wed Jun 8 01:33:41 CEST 2016
ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Mon Jun 6 01:14:11 2016 -0300| [49b024663501320310ec729f3bd15d0420bd9e59] | committer: James Almer
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 at niedermayer.cc>
Signed-off-by: James Almer <jamrial at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=49b024663501320310ec729f3bd15d0420bd9e59
---
libavformat/matroskadec.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 3270009..7880a10 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -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,
More information about the ffmpeg-cvslog
mailing list