summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2018-01-29 22:59:52 -0300
committerJames Almer <jamrial@gmail.com>2018-01-29 23:09:08 -0300
commit63b5d04e331c2580726e8a6936fecc04b815c516 (patch)
tree72245a60e5107fdd0c88b75cac96e049771ab920 /libavformat
parentd4967c04e040b3b2f937cad88599af825147ec94 (diff)
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 <jamrial@gmail.com>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/matroskadec.c4
1 files changed, 3 insertions, 1 deletions
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;