From 9d13432a90979de8e21bff4641c1da3dbac02584 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 19 Jan 2014 20:13:38 +0100 Subject: [PATCH] avformat/matroskadec: identify SMI as SVQ3 Fixes part of Ticket3256 Signed-off-by: Michael Niedermayer --- libavformat/matroskadec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 19e0e2ed72..f91688b4ad 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -1732,7 +1732,7 @@ static int matroska_read_header(AVFormatContext *s) codec_id = ff_codec_get_id(ff_codec_movaudio_tags, fourcc); } } else if (!strcmp(track->codec_id, "V_QUICKTIME") - && (track->codec_priv.size >= 86) + && (track->codec_priv.size >= 21) && (track->codec_priv.data != NULL)) { fourcc = AV_RL32(track->codec_priv.data + 4); codec_id = ff_codec_get_id(ff_codec_movvideo_tags, fourcc); @@ -1740,6 +1740,8 @@ static int matroska_read_header(AVFormatContext *s) fourcc = AV_RL32(track->codec_priv.data); codec_id = ff_codec_get_id(ff_codec_movvideo_tags, fourcc); } + if (codec_id == AV_CODEC_ID_NONE && AV_RL32(track->codec_priv.data+4) == AV_RL32("SMI ")) + codec_id = AV_CODEC_ID_SVQ3; } else if (codec_id == AV_CODEC_ID_PCM_S16BE) { switch (track->audio.bitdepth) { case 8: codec_id = AV_CODEC_ID_PCM_U8; break;