Merge commit '8fc11abe1fea4f211cc7dbd58a173d1221627d90'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 13 May 2015 20:04:02 +0000 (22:04 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 13 May 2015 20:04:02 +0000 (22:04 +0200)
* commit '8fc11abe1fea4f211cc7dbd58a173d1221627d90':
  mkv: Print unsupported mov tags when found

Conflicts:
libavformat/matroskadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavformat/matroskadec.c

@@@ -1777,26 -1602,18 +1777,32 @@@ static int matroska_parse_tracks(AVForm
                  return ret;
              codec_id         = st->codec->codec_id;
              extradata_offset = FFMIN(track->codec_priv.size, 18);
 +        } else if (!strcmp(track->codec_id, "A_QUICKTIME")
 +                   && (track->codec_priv.size >= 86)
 +                   && (track->codec_priv.data)) {
 +            fourcc = AV_RL32(track->codec_priv.data + 4);
 +            codec_id = ff_codec_get_id(ff_codec_movaudio_tags, fourcc);
 +            if (ff_codec_get_id(ff_codec_movaudio_tags, AV_RL32(track->codec_priv.data))) {
 +                fourcc = AV_RL32(track->codec_priv.data);
 +                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)) {
 -            track->video.fourcc = AV_RL32(track->codec_priv.data);
 -            codec_id            = ff_codec_get_id(ff_codec_movvideo_tags,
 -                                                  track->video.fourcc);
 +            fourcc   = AV_RL32(track->codec_priv.data + 4);
 +            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);
 +            }
 +            if (codec_id == AV_CODEC_ID_NONE && AV_RL32(track->codec_priv.data+4) == AV_RL32("SMI "))
 +                codec_id = AV_CODEC_ID_SVQ3;
+             if (codec_id == AV_CODEC_ID_NONE) {
+                 char buf[32];
 -                av_get_codec_tag_string(buf, sizeof(buf), track->video.fourcc);
++                av_get_codec_tag_string(buf, sizeof(buf), fourcc);
+                 av_log(matroska->ctx, AV_LOG_ERROR,
+                        "mov FourCC not found %s.\n", buf);
+             }
          } else if (codec_id == AV_CODEC_ID_PCM_S16BE) {
              switch (track->audio.bitdepth) {
              case  8: