lavf/mov: skip extradata check in esds for MPEG-1/2 audio
authorGyan Doshi <ffmpeg@gyani.pro>
Thu, 28 Mar 2019 17:29:30 +0000 (22:59 +0530)
committerGyan Doshi <ffmpeg@gyani.pro>
Mon, 1 Apr 2019 17:58:25 +0000 (23:28 +0530)
As per 14496-3 9.D.2.2, it's not defined for these audio object types.

Fixes #7817.

libavformat/isom.c

index 0a4d901..4358dc4 100644 (file)
@@ -534,6 +534,10 @@ FF_ENABLE_DEPRECATION_WARNINGS
     len = ff_mp4_read_descr(fc, pb, &tag);
     if (tag == MP4DecSpecificDescrTag) {
         av_log(fc, AV_LOG_TRACE, "Specific MPEG-4 header len=%d\n", len);
+        /* As per 14496-3:2009 9.D.2.2, No decSpecificInfo is defined
+           for MPEG-1 Audio or MPEG-2 Audio; MPEG-2 AAC excluded. */
+        if (object_type_id == 0x69 || object_type_id == 0x6b)
+            return 0;
         if (!len || (uint64_t)len > (1<<30))
             return AVERROR_INVALIDDATA;
         if ((ret = ff_get_extradata(fc, st->codecpar, pb, len)) < 0)