[FFmpeg-devel] [PATCH] Parsing ALS object type in MPEG-4

Baptiste Coudurier baptiste.coudurier
Tue Nov 10 20:28:40 CET 2009


On 10/11/2009 03:04 AM, Thilo Borgmann wrote:
> Baptiste Coudurier schrieb:
>> On 10/9/09 1:48 PM, Alex Converse wrote:
>>> On Sun, Aug 23, 2009 at 3:51 PM, Thilo Borgmann
>>> <thilo.borgmann at googlemail.com>   wrote:
>>>> Index: libavcodec/mpeg4audio.h
>>>> ===================================================================
>>>> --- libavcodec/mpeg4audio.h     (revision 19689)
>>>> +++ libavcodec/mpeg4audio.h     (working copy)
>>>> @@ -36,6 +36,7 @@
>>>>       int ext_sampling_index;
>>>>       int ext_sample_rate;
>>>>       int ext_chan_config;
>>>> +    int channels;
>>>>    } MPEG4AudioConfig;
>>>
>>> Can we put "channels" directly below "chan_config" without API/ABI
>>> breakage? If so I'd like to try to keep related thing together.
>>
>> We could since this struct is not part of the public API, though since
>> libavformat uses libavcodec, it is not safe.
>>
>
> Patch updated.
>
>
>> This reminds me, I think avcodec_register_all and av_register_all should
>> put requirements for libavcodec and libavutil versions respectively, to
>> avoid shared libraries problems, because soname only contains major
>> version and API changes only update minor version.
>>
 >
> [...]
 >
> Index: libavcodec/mpeg4audio.h
> ===================================================================
> --- libavcodec/mpeg4audio.h	(revision 20011)
> +++ libavcodec/mpeg4audio.h	(working copy)
> @@ -31,6 +31,7 @@
>       int sampling_index;
>       int sample_rate;
>       int chan_config;
> +    int channels;
>       int sbr; //<  -1 implicit, 1 presence
>       int ext_object_type;
>       int ext_sampling_index;

Forgot to change that ?

> Index: libavformat/mov.c
> ===================================================================
> --- libavformat/mov.c	(revision 20011)
> +++ libavformat/mov.c	(working copy)
> @@ -434,9 +434,13 @@
>                   MPEG4AudioConfig cfg;
>                   ff_mpeg4audio_get_config(&cfg, st->codec->extradata,
>                                            st->codec->extradata_size);
> +                if (cfg.chan_config) {
>                   if (cfg.chan_config>  7)
>                       return -1;
>                   st->codec->channels = ff_mpeg4audio_channels[cfg.chan_config];
> +                } else {
> +                    st->codec->channels = cfg.channels;
> +                }

By always setting cfg.channels I wanted to avoid the
if (cfg.chan_config) ...

That's ok though.

-- 
Baptiste COUDURIER
Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
FFmpeg maintainer                                  http://www.ffmpeg.org



More information about the ffmpeg-devel mailing list