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

Thilo Borgmann thilo.borgmann
Fri Oct 9 16:30:39 CEST 2009


Thilo Borgmann schrieb:
> Alex Converse schrieb:
>> On Fri, Sep 18, 2009 at 6:42 PM, Baptiste Coudurier
>> <baptiste.coudurier at gmail.com> wrote:
>>> Hi,
>>>
>>> On 09/18/2009 03:35 PM, Thilo Borgmann wrote:
>>>> Alex Converse schrieb:
>>>>> On Sun, Aug 23, 2009 at 3:51 PM, Thilo
>>>>> Borgmann<thilo.borgmann at googlemail.com>  wrote:
>>>>>> Revision 6 attached (rev. 5 skipped...)
>>>>>>
>>>>>> [...]
>>>>>>
>>>>>> 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;
>>>>>>
>>>>>>  extern const int ff_mpeg4audio_sample_rates[16];
>>>>>> Index: libavformat/mov.c
>>>>>> ===================================================================
>>>>>> --- libavformat/mov.c   (revision 19689)
>>>>>> +++ 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;
>>>>>> +                }
>>>>>>                 if (cfg.object_type == 29&&  cfg.sampling_index<  3) //
>>>>>> old mp3on4
>>>>>>                     st->codec->sample_rate =
>>>>>> ff_mpa_freq_tab[cfg.sampling_index];
>>>>>>                 else
>>>>> The rest of this seems OK but Rob and Baptiste are the maintainers here.
>>> Maybe we should always set ->channels in mpeg4audio_get_config, that would
>>> simplify the code everywhere else. What do you think ?
>> In principle that seems fine as long as it doesn't break muxing or
>> decoding files with (those awful) PCEs. In practice this probably
>> means adding yet more PCE code to mpeg4audio.[ch] since it doesn't
>> look like there is any way to adapt ff_copy_pce_data (mpeg4audio.c) or
>> decode_pce (aac.c) to this purpose.
>>
>> I would also accept having this as an inevitable goal and leaving it
>> on a todo list for a while. This whole multichannel business in MPEG 4
>> audio was dreadfully thought out but there is nothing we can do about
>> it now.
> 
> So........ I should move these "st->codec->channels = ..." into
> ff_mpeg4audio_get_config() ?


ping



More information about the ffmpeg-devel mailing list