diff mbox

[FFmpeg-devel] lavf/mov: skip extradata check in esds for MPEG-1/2 audio

Message ID e957f76c-506a-18f8-e021-bc8f835d2745@gyani.pro
State Accepted
Commit 8eca42e6320ebfc682a1309bb40d019b41a9dfd5
Headers show

Commit Message

Gyan Doshi March 28, 2019, 5:34 p.m. UTC
From 7e10e1c58e69137487ff0da85caf1c350b3262ae Mon Sep 17 00:00:00 2001
From: Gyan Doshi <ffmpeg@gyani.pro>
Date: Thu, 28 Mar 2019 22:59:30 +0530
Subject: [PATCH] lavf/mov: skip extradata check in esds for MPEG-1/2 audio

As per 14496-3 9.D.2.2, it's not defined for these audio object types.

Fixes #7817.
---
 libavformat/isom.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Gyan Doshi April 1, 2019, 4:52 a.m. UTC | #1
On 28-03-2019 11:04 PM, Gyan wrote:
>
> 0001-lavf-mov-skip-extradata-check-in-esds-for-MPEG-1-2-a.patch
>
>  From 7e10e1c58e69137487ff0da85caf1c350b3262ae Mon Sep 17 00:00:00 2001
> From: Gyan Doshi<ffmpeg@gyani.pro>
> Date: Thu, 28 Mar 2019 22:59:30 +0530
> Subject: [PATCH] lavf/mov: skip extradata check in esds for MPEG-1/2 audio
>
> As per 14496-3 9.D.2.2, it's not defined for these audio object types.
>
> Fixes #7817.
> ---
>   libavformat/isom.c | 4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/libavformat/isom.c b/libavformat/isom.c
> index 0a4d901be5..4358dc4a6a 100644
> --- a/libavformat/isom.c
> +++ b/libavformat/isom.c
> @@ -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)
> -- 2.19.2

Will push soon.

Gyan
Gyan Doshi April 1, 2019, 5:59 p.m. UTC | #2
On 01-04-2019 10:22 AM, Gyan wrote:
>
>
> On 28-03-2019 11:04 PM, Gyan wrote:
>>
>> 0001-lavf-mov-skip-extradata-check-in-esds-for-MPEG-1-2-a.patch
>>
>>  From 7e10e1c58e69137487ff0da85caf1c350b3262ae Mon Sep 17 00:00:00 2001
>> From: Gyan Doshi<ffmpeg@gyani.pro>
>> Date: Thu, 28 Mar 2019 22:59:30 +0530
>> Subject: [PATCH] lavf/mov: skip extradata check in esds for MPEG-1/2 
>> audio
>>
>> As per 14496-3 9.D.2.2, it's not defined for these audio object types.
>>
>> Fixes #7817.
>> ---
>>   libavformat/isom.c | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/libavformat/isom.c b/libavformat/isom.c
>> index 0a4d901be5..4358dc4a6a 100644
>> --- a/libavformat/isom.c
>> +++ b/libavformat/isom.c
>> @@ -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)
>> -- 2.19.2
>
> Will push soon.

Pushed as 8eca42e6320ebfc682a1309bb40d019b41a9dfd5

Gyan
diff mbox

Patch

diff --git a/libavformat/isom.c b/libavformat/isom.c
index 0a4d901be5..4358dc4a6a 100644
--- a/libavformat/isom.c
+++ b/libavformat/isom.c
@@ -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)