summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-01-19 20:13:38 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-01-19 20:13:38 +0100
commit9d13432a90979de8e21bff4641c1da3dbac02584 (patch)
tree35cc23303919c15fbf7797a828972e1b5e204b52
parent48218580e1ecc6687386e63d1f20c03482f69939 (diff)
avformat/matroskadec: identify SMI as SVQ3
Fixes part of Ticket3256 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavformat/matroskadec.c4
1 files changed, 3 insertions, 1 deletions
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;