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

Thilo Borgmann thilo.borgmann
Fri Oct 9 20:12:12 CEST 2009


Alex Converse schrieb:
> On Fri, Oct 9, 2009 at 10:30 AM, Thilo Borgmann
> <thilo.borgmann at googlemail.com> wrote:
>> 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
> 
> However you want to do it is fine as far as I'm concerned. I don't
> want to make refactoring stuff in AAC a prereq for landing this.

Thus if altering aac and may be others is a prereq for moving set
->channels into ff_mpeg4audio_get_config() I might not be able to do this.

So I would suggest to apply the patch as is, if the rest is ok.



More information about the ffmpeg-devel mailing list