avformat/matroskadec: support SVQ3 as generated by mkvtoolnix-6.6.0

Fixes part of Ticket3256

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 5800b08572)

Conflicts:
	libavformat/matroskadec.c
This commit is contained in:
Michael Niedermayer
2014-01-19 18:35:33 +01:00
committed by Carl Eugen Hoyos
parent 9060c10c65
commit 8ee704c392

View File

@@ -1634,8 +1634,12 @@ static int matroska_read_header(AVFormatContext *s)
} else if (!strcmp(track->codec_id, "V_QUICKTIME") } else if (!strcmp(track->codec_id, "V_QUICKTIME")
&& (track->codec_priv.size >= 86) && (track->codec_priv.size >= 86)
&& (track->codec_priv.data != NULL)) { && (track->codec_priv.data != NULL)) {
fourcc = AV_RL32(track->codec_priv.data); fourcc = AV_RL32(track->codec_priv.data + 4);
codec_id = ff_codec_get_id(ff_codec_movvideo_tags, fourcc); codec_id = ff_codec_get_id(ff_codec_movvideo_tags, fourcc);
if (ff_codec_get_id(ff_codec_movvideo_tags, AV_RL32(track->codec_priv.data))) {
fourcc = AV_RL32(track->codec_priv.data);
codec_id = ff_codec_get_id(ff_codec_movvideo_tags, fourcc);
}
} else if (codec_id == AV_CODEC_ID_ALAC && track->codec_priv.size && track->codec_priv.size < INT_MAX-12) { } else if (codec_id == AV_CODEC_ID_ALAC && track->codec_priv.size && track->codec_priv.size < INT_MAX-12) {
/* Only ALAC's magic cookie is stored in Matroska's track headers. /* Only ALAC's magic cookie is stored in Matroska's track headers.
Create the "atom size", "tag", and "tag version" fields the Create the "atom size", "tag", and "tag version" fields the