From 63b5d04e331c2580726e8a6936fecc04b815c516 Mon Sep 17 00:00:00 2001 From: James Almer Date: Mon, 29 Jan 2018 22:59:52 -0300 Subject: [PATCH] avformat/matroskadec: force full frame parsing of MLP/TrueHD streams There's at least one known file with a TrueHD stream that hasn't been correctly muxed, and requires full frame parsing and repack. Signed-off-by: James Almer --- libavformat/matroskadec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index a45fe09743..cda8df2213 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -2521,7 +2521,9 @@ static int matroska_parse_tracks(AVFormatContext *s) st->codecpar->channels = track->audio.channels; if (!st->codecpar->bits_per_coded_sample) st->codecpar->bits_per_coded_sample = track->audio.bitdepth; - if (st->codecpar->codec_id == AV_CODEC_ID_MP3) + if (st->codecpar->codec_id == AV_CODEC_ID_MP3 || + st->codecpar->codec_id == AV_CODEC_ID_MLP || + st->codecpar->codec_id == AV_CODEC_ID_TRUEHD) st->need_parsing = AVSTREAM_PARSE_FULL; else if (st->codecpar->codec_id != AV_CODEC_ID_AAC) st->need_parsing = AVSTREAM_PARSE_HEADERS;