[FFmpeg-devel] [PATCH] aacenc: WIP support for PCEs

Rostislav Pehlivanov atomnuker at gmail.com
Sun Sep 24 18:06:36 EEST 2017

On 24 September 2017 at 15:27, pkv.stream <pkv.stream at gmail.com> wrote:

> Hi atomnuker and others
> I am interested in working on this patch by atomnuker who did a great job.
> This could allow encoding to more channels with aac (e.g. ambisonics order
> three = 16 audio channels).
> Here's a report about additions I made to the PCE table for all the basic
> ffmpeg channel layouts (except mixed stereo).
> I have followed atomnuker assumptions for the guess work, notably
> regarding indexes (which seems right, I saw on spec an example with indexes
> running like 0 1 0 so ithe indexing seems to reset , quite probably for
> each group of either, front, side, back or LFE channels in the PCE).
> I have done some testing:
> encoding goes without fuss up to 16 channels. No warning, no error.
> But, ffmpeg aac decoder is throwing errors in aacdec_template.c :
> lines 3119-3124:
>         if (elem_type < TYPE_DSE) {
>             if (!(che=get_che(ac, elem_type, elem_id))) {
>                 av_log(ac->avctx, AV_LOG_ERROR, "channel element %d.%d is
> not allocated\n",
>                        elem_type, elem_id);
>                 err = AVERROR_INVALIDDATA;
>                 goto fail;
> error message is:
> channel element 0.0 is not allocated
> So the get_che function is failing.
Of course it isn't going to work, I explicitly told you 1.) its a wip patch
so no real error reporting and 2.) you need to add a new entry for whatever
messed up channel layout ambisonics use and make sure the signalling
indices are correct. And the latter isn't easy since nothing tells you
what's correct - the spec, a decoder or anything like that.

More information about the ffmpeg-devel mailing list