Message ID | 9bb7d16c-124b-21ef-3006-68f812623145@gmail.com |
---|---|
State | Superseded |
Headers | show |
On Mon, Oct 02, 2017 at 12:52:53AM +0200, pkv.stream wrote: > Le 02/10/2017 à 12:43 AM, Carl Eugen Hoyos a écrit : > >2017-10-02 0:40 GMT+02:00 pkv.stream <pkv.stream@gmail.com>: > >>Hi atomnuker, > >> > >>got your PCE working; > >the patch you attached contains tabs, they cannot be committed > >to the FFmpeg repository, please remove them. > >(Or one tab.) > > thanks for pointing out. > Removed the offending tab. > > > > >Thank you, Carl Eugen > >_______________________________________________ > >ffmpeg-devel mailing list > >ffmpeg-devel@ffmpeg.org > >http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > > aacenc.h | 239 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- > 1 file changed, 233 insertions(+), 6 deletions(-) > 929275fe34af4d0048bac2be928957288cb75ddd 0001-avcodec-aacenc-PCE-for-all-ffmpeg-usual-layouts.patch > From 647fb61708bc1279f9dc17c679052a778dce5fbb Mon Sep 17 00:00:00 2001 > From: pkviet <pkv.stream@gmail.com> > Date: Sun, 24 Sep 2017 16:11:17 +0200 > Subject: [PATCH] avcodec/aacenc: PCE for all ffmpeg usual layouts this seems not to apply cleanly here, did i miss something ? Applying: avcodec/aacenc: PCE for all ffmpeg usual layouts error: sha1 information is lacking or useless (libavcodec/aacenc.h). error: could not build fake ancestor Patch failed at 0001 avcodec/aacenc: PCE for all ffmpeg usual layouts The copy of the patch that failed is found in: .git/rebase-apply/patch [...]
Le 02/10/2017 à 7:23 PM, Michael Niedermayer a écrit : > On Mon, Oct 02, 2017 at 12:52:53AM +0200, pkv.stream wrote: >> Le 02/10/2017 à 12:43 AM, Carl Eugen Hoyos a écrit : >>> 2017-10-02 0:40 GMT+02:00 pkv.stream <pkv.stream@gmail.com>: >>>> Hi atomnuker, >>>> >>>> got your PCE working; >>> the patch you attached contains tabs, they cannot be committed >>> to the FFmpeg repository, please remove them. >>> (Or one tab.) >> thanks for pointing out. >> Removed the offending tab. >> >>> Thank you, Carl Eugen >>> _______________________________________________ >>> ffmpeg-devel mailing list >>> ffmpeg-devel@ffmpeg.org >>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> aacenc.h | 239 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- >> 1 file changed, 233 insertions(+), 6 deletions(-) >> 929275fe34af4d0048bac2be928957288cb75ddd 0001-avcodec-aacenc-PCE-for-all-ffmpeg-usual-layouts.patch >> From 647fb61708bc1279f9dc17c679052a778dce5fbb Mon Sep 17 00:00:00 2001 >> From: pkviet <pkv.stream@gmail.com> >> Date: Sun, 24 Sep 2017 16:11:17 +0200 >> Subject: [PATCH] avcodec/aacenc: PCE for all ffmpeg usual layouts > this seems not to apply cleanly here, did i miss something ? Hi Michael this needs to be applied after the initial patch by atomnuker which he did not apply since this required work. What i submitted was not aimed at being pushed since there is probably still work to do. Depending on what he wants to do with his patch, I'll resubmit a working patch later, properly rebased. Sorry about the mess. regards > > Applying: avcodec/aacenc: PCE for all ffmpeg usual layouts > error: sha1 information is lacking or useless (libavcodec/aacenc.h). > error: could not build fake ancestor > Patch failed at 0001 avcodec/aacenc: PCE for all ffmpeg usual layouts > The copy of the patch that failed is found in: .git/rebase-apply/patch > > > [...] > > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
On 2 October 2017 at 18:43, pkv.stream <pkv.stream@gmail.com> wrote: > Le 02/10/2017 à 7:23 PM, Michael Niedermayer a écrit : > >> On Mon, Oct 02, 2017 at 12:52:53AM +0200, pkv.stream wrote: >> >>> Le 02/10/2017 à 12:43 AM, Carl Eugen Hoyos a écrit : >>> >>>> 2017-10-02 0:40 GMT+02:00 pkv.stream <pkv.stream@gmail.com>: >>>> >>>>> Hi atomnuker, >>>>> >>>>> got your PCE working; >>>>> >>>> the patch you attached contains tabs, they cannot be committed >>>> to the FFmpeg repository, please remove them. >>>> (Or one tab.) >>>> >>> thanks for pointing out. >>> Removed the offending tab. >>> >>> Thank you, Carl Eugen >>>> _______________________________________________ >>>> ffmpeg-devel mailing list >>>> ffmpeg-devel@ffmpeg.org >>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>>> >>> >>> aacenc.h | 239 ++++++++++++++++++++++++++++++ >>> +++++++++++++++++++++++++++++++-- >>> 1 file changed, 233 insertions(+), 6 deletions(-) >>> 929275fe34af4d0048bac2be928957288cb75ddd 0001-avcodec-aacenc-PCE-for-al >>> l-ffmpeg-usual-layouts.patch >>> From 647fb61708bc1279f9dc17c679052a778dce5fbb Mon Sep 17 00:00:00 2001 >>> From: pkviet <pkv.stream@gmail.com> >>> Date: Sun, 24 Sep 2017 16:11:17 +0200 >>> Subject: [PATCH] avcodec/aacenc: PCE for all ffmpeg usual layouts >>> >> this seems not to apply cleanly here, did i miss something ? >> > > Hi Michael > this needs to be applied after the initial patch by atomnuker which he did > not apply since this required work. > What i submitted was not aimed at being pushed since there is probably > still work to do. > Depending on what he wants to do with his patch, I'll resubmit a working > patch later, properly rebased. > Sorry about the mess. > regards > > >> Applying: avcodec/aacenc: PCE for all ffmpeg usual layouts >> error: sha1 information is lacking or useless (libavcodec/aacenc.h). >> error: could not build fake ancestor >> Patch failed at 0001 avcodec/aacenc: PCE for all ffmpeg usual layouts >> The copy of the patch that failed is found in: .git/rebase-apply/patch >> >> >> [...] >> >> >> >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > Give me a few hours and I'll test it and submit a v2 of my patch with your improvements.
Le 02/10/2017 à 8:39 PM, Rostislav Pehlivanov a écrit : > On 2 October 2017 at 18:43, pkv.stream <pkv.stream@gmail.com> wrote: > >> Le 02/10/2017 à 7:23 PM, Michael Niedermayer a écrit : >> >>> On Mon, Oct 02, 2017 at 12:52:53AM +0200, pkv.stream wrote: >>> >>>> Le 02/10/2017 à 12:43 AM, Carl Eugen Hoyos a écrit : >>>> >>>>> 2017-10-02 0:40 GMT+02:00 pkv.stream <pkv.stream@gmail.com>: >>>>> >>>>>> Hi atomnuker, >>>>>> >>>>>> got your PCE working; >>>>>> >>>>> the patch you attached contains tabs, they cannot be committed >>>>> to the FFmpeg repository, please remove them. >>>>> (Or one tab.) >>>>> >>>> thanks for pointing out. >>>> Removed the offending tab. >>>> >>>> Thank you, Carl Eugen >>>>> _______________________________________________ >>>>> ffmpeg-devel mailing list >>>>> ffmpeg-devel@ffmpeg.org >>>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>>>> >>>> aacenc.h | 239 ++++++++++++++++++++++++++++++ >>>> +++++++++++++++++++++++++++++++-- >>>> 1 file changed, 233 insertions(+), 6 deletions(-) >>>> 929275fe34af4d0048bac2be928957288cb75ddd 0001-avcodec-aacenc-PCE-for-al >>>> l-ffmpeg-usual-layouts.patch >>>> From 647fb61708bc1279f9dc17c679052a778dce5fbb Mon Sep 17 00:00:00 2001 >>>> From: pkviet <pkv.stream@gmail.com> >>>> Date: Sun, 24 Sep 2017 16:11:17 +0200 >>>> Subject: [PATCH] avcodec/aacenc: PCE for all ffmpeg usual layouts >>>> >>> this seems not to apply cleanly here, did i miss something ? >>> >> Hi Michael >> this needs to be applied after the initial patch by atomnuker which he did >> not apply since this required work. >> What i submitted was not aimed at being pushed since there is probably >> still work to do. >> Depending on what he wants to do with his patch, I'll resubmit a working >> patch later, properly rebased. >> Sorry about the mess. >> regards >> >> >>> Applying: avcodec/aacenc: PCE for all ffmpeg usual layouts >>> error: sha1 information is lacking or useless (libavcodec/aacenc.h). >>> error: could not build fake ancestor >>> Patch failed at 0001 avcodec/aacenc: PCE for all ffmpeg usual layouts >>> The copy of the patch that failed is found in: .git/rebase-apply/patch >>> >>> >>> [...] >>> >>> >>> >>> _______________________________________________ >>> ffmpeg-devel mailing list >>> ffmpeg-devel@ffmpeg.org >>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>> >> >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> > > Give me a few hours and I'll test it and submit a v2 of my patch with your > improvements. > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel Hi any updates ? regards
On 18 October 2017 at 11:05, pkv.stream <pkv.stream@gmail.com> wrote: > Le 02/10/2017 à 8:39 PM, Rostislav Pehlivanov a écrit : > >> On 2 October 2017 at 18:43, pkv.stream <pkv.stream@gmail.com> wrote: >> >> Le 02/10/2017 à 7:23 PM, Michael Niedermayer a écrit : >>> >>> On Mon, Oct 02, 2017 at 12:52:53AM +0200, pkv.stream wrote: >>>> >>>> Le 02/10/2017 à 12:43 AM, Carl Eugen Hoyos a écrit : >>>>> >>>>> 2017-10-02 0:40 GMT+02:00 pkv.stream <pkv.stream@gmail.com>: >>>>>> >>>>>> Hi atomnuker, >>>>>>> >>>>>>> got your PCE working; >>>>>>> >>>>>>> the patch you attached contains tabs, they cannot be committed >>>>>> to the FFmpeg repository, please remove them. >>>>>> (Or one tab.) >>>>>> >>>>>> thanks for pointing out. >>>>> Removed the offending tab. >>>>> >>>>> Thank you, Carl Eugen >>>>> >>>>>> _______________________________________________ >>>>>> ffmpeg-devel mailing list >>>>>> ffmpeg-devel@ffmpeg.org >>>>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>>>>> >>>>>> aacenc.h | 239 ++++++++++++++++++++++++++++++ >>>>> +++++++++++++++++++++++++++++++-- >>>>> 1 file changed, 233 insertions(+), 6 deletions(-) >>>>> 929275fe34af4d0048bac2be928957288cb75ddd >>>>> 0001-avcodec-aacenc-PCE-for-al >>>>> l-ffmpeg-usual-layouts.patch >>>>> From 647fb61708bc1279f9dc17c679052a778dce5fbb Mon Sep 17 00:00:00 >>>>> 2001 >>>>> From: pkviet <pkv.stream@gmail.com> >>>>> Date: Sun, 24 Sep 2017 16:11:17 +0200 >>>>> Subject: [PATCH] avcodec/aacenc: PCE for all ffmpeg usual layouts >>>>> >>>>> this seems not to apply cleanly here, did i miss something ? >>>> >>>> Hi Michael >>> this needs to be applied after the initial patch by atomnuker which he >>> did >>> not apply since this required work. >>> What i submitted was not aimed at being pushed since there is probably >>> still work to do. >>> Depending on what he wants to do with his patch, I'll resubmit a working >>> patch later, properly rebased. >>> Sorry about the mess. >>> regards >>> >>> >>> Applying: avcodec/aacenc: PCE for all ffmpeg usual layouts >>>> error: sha1 information is lacking or useless (libavcodec/aacenc.h). >>>> error: could not build fake ancestor >>>> Patch failed at 0001 avcodec/aacenc: PCE for all ffmpeg usual layouts >>>> The copy of the patch that failed is found in: .git/rebase-apply/patch >>>> >>>> >>>> [...] >>>> >>>> >>>> >>>> _______________________________________________ >>>> ffmpeg-devel mailing list >>>> ffmpeg-devel@ffmpeg.org >>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>>> >>>> >>> _______________________________________________ >>> ffmpeg-devel mailing list >>> ffmpeg-devel@ffmpeg.org >>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>> >>> >> Give me a few hours and I'll test it and submit a v2 of my patch with your >> improvements. >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> > > Hi > > any updates ? > > regards > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > Hi, Very sorry it took me this long but I finally got motivated and got around to checking your patch I have to say I'm impressed, everything works perfectly, decodes fine and the mappings were all fine. This is a big feature which many people have requested and complained the encoder lacks support for. I've done some minor changes to the code on the encoder side (an INFO print instead of a warning), to the comments (just alignment) and for the ambisonic layouts (made them use the defines) and I've pushed it. Thanks a lot
On 9 November 2017 at 08:01, pkv.stream <pkv.stream@gmail.com> wrote: > Le 09/11/2017 à 4:43 AM, Rostislav Pehlivanov a écrit : > >> On 18 October 2017 at 11:05, pkv.stream <pkv.stream@gmail.com> wrote: >> >> Le 02/10/2017 à 8:39 PM, Rostislav Pehlivanov a écrit : >>> >>> On 2 October 2017 at 18:43, pkv.stream <pkv.stream@gmail.com> wrote: >>>> >>>> Le 02/10/2017 à 7:23 PM, Michael Niedermayer a écrit : >>>> >>>>> On Mon, Oct 02, 2017 at 12:52:53AM +0200, pkv.stream wrote: >>>>> >>>>>> Le 02/10/2017 à 12:43 AM, Carl Eugen Hoyos a écrit : >>>>>> >>>>>>> 2017-10-02 0:40 GMT+02:00 pkv.stream <pkv.stream@gmail.com>: >>>>>>> >>>>>>>> Hi atomnuker, >>>>>>>> >>>>>>>>> got your PCE working; >>>>>>>>> >>>>>>>>> the patch you attached contains tabs, they cannot be committed >>>>>>>>> >>>>>>>> to the FFmpeg repository, please remove them. >>>>>>>> (Or one tab.) >>>>>>>> >>>>>>>> thanks for pointing out. >>>>>>>> >>>>>>> Removed the offending tab. >>>>>>> >>>>>>> Thank you, Carl Eugen >>>>>>> >>>>>>> _______________________________________________ >>>>>>>> ffmpeg-devel mailing list >>>>>>>> ffmpeg-devel@ffmpeg.org >>>>>>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>>>>>>> >>>>>>>> aacenc.h | 239 ++++++++++++++++++++++++++++++ >>>>>>>> >>>>>>> +++++++++++++++++++++++++++++++-- >>>>>>> 1 file changed, 233 insertions(+), 6 deletions(-) >>>>>>> 929275fe34af4d0048bac2be928957288cb75ddd >>>>>>> 0001-avcodec-aacenc-PCE-for-al >>>>>>> l-ffmpeg-usual-layouts.patch >>>>>>> From 647fb61708bc1279f9dc17c679052a778dce5fbb Mon Sep 17 00:00:00 >>>>>>> 2001 >>>>>>> From: pkviet <pkv.stream@gmail.com> >>>>>>> Date: Sun, 24 Sep 2017 16:11:17 +0200 >>>>>>> Subject: [PATCH] avcodec/aacenc: PCE for all ffmpeg usual layouts >>>>>>> >>>>>>> this seems not to apply cleanly here, did i miss something ? >>>>>>> >>>>>> Hi Michael >>>>>> >>>>> this needs to be applied after the initial patch by atomnuker which he >>>>> did >>>>> not apply since this required work. >>>>> What i submitted was not aimed at being pushed since there is probably >>>>> still work to do. >>>>> Depending on what he wants to do with his patch, I'll resubmit a >>>>> working >>>>> patch later, properly rebased. >>>>> Sorry about the mess. >>>>> regards >>>>> >>>>> >>>>> Applying: avcodec/aacenc: PCE for all ffmpeg usual layouts >>>>> >>>>>> error: sha1 information is lacking or useless (libavcodec/aacenc.h). >>>>>> error: could not build fake ancestor >>>>>> Patch failed at 0001 avcodec/aacenc: PCE for all ffmpeg usual layouts >>>>>> The copy of the patch that failed is found in: .git/rebase-apply/patch >>>>>> >>>>>> >>>>>> [...] >>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> ffmpeg-devel mailing list >>>>>> ffmpeg-devel@ffmpeg.org >>>>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>> ffmpeg-devel mailing list >>>>> ffmpeg-devel@ffmpeg.org >>>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>>>> >>>>> >>>>> Give me a few hours and I'll test it and submit a v2 of my patch with >>>> your >>>> improvements. >>>> _______________________________________________ >>>> ffmpeg-devel mailing list >>>> ffmpeg-devel@ffmpeg.org >>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>>> >>>> Hi >>> >>> any updates ? >>> >>> regards >>> >>> >>> _______________________________________________ >>> ffmpeg-devel mailing list >>> ffmpeg-devel@ffmpeg.org >>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>> >>> >> Hi, >> Very sorry it took me this long but I finally got motivated and got around >> to checking your patch >> >> I have to say I'm impressed, everything works perfectly, decodes fine and >> the mappings were all fine. This is a big feature which many people have >> requested and complained the encoder lacks support for. >> >> I've done some minor changes to the code on the encoder side (an INFO >> print >> instead of a warning), to the comments (just alignment) and for the >> ambisonic layouts (made them use the defines) and I've pushed it. >> >> Thanks a lot >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> > > Hi atomnuker, > > that's wonderful; > > there are two things also: > > 1) there are changes to make to the list of channel layouts not requiring > PCE > > ==> AV_CH_LAYOUT_5POINT0 to AV_CH_LAYOUT_5POINT0_BACK since the previous > is 5.0(side) while the latter is 5.0 which is what is in spec (table 1.19 > ISO/IEC 14496-3:200X(E) or table 42 ISO/IEC 13818-7:2004(E) ) > > see patch in attachment (can't be applied directly due to rebasing issues > from your initial patch) > > Checked the spec, you're right, fixed. > 2) for everything to work I had to also apply the patch from here: > > http://ffmpeg.org/pipermail/ffmpeg-devel/2017-October/217357.html > > If you ffmpeg -loglevel debug , you will see that on non-default channel > layouts, there is an auto insertion of a resampler filter : the > channel_layout option is not passed correctly in the chain. > > for instance: ffmpeg -channel_layout octagonal -i input.wav -c:a aac > -channel_layout octagonal out.mkv will matrix the input from octagonal to > 7.1 before the encoding. > > Check ticket 6706 for details of the issue. > > I am not knowledgeable enough to be sure my fix is correct; it's working > for sure, but I've had very few feedback (only Michael and Moritz about > styling issues). > Pining Michael to take a look at it.
> Hi atomnuker, > > that's wonderful; > > there are two things also: > > 1) there are changes to make to the list of channel layouts not requiring > PCE > > ==> AV_CH_LAYOUT_5POINT0 to AV_CH_LAYOUT_5POINT0_BACK since the previous > is 5.0(side) while the latter is 5.0 which is what is in spec (table 1.19 > ISO/IEC 14496-3:200X(E) or table 42 ISO/IEC 13818-7:2004(E) ) > > see patch in attachment (can't be applied directly due to rebasing issues > from your initial patch) > > Checked the spec, you're right, fixed. Great, you're right also about side being better than back in the commit message. > 2) for everything to work I had to also apply the patch from here: > > http://ffmpeg.org/pipermail/ffmpeg-devel/2017-October/217357.html > > If you ffmpeg -loglevel debug , you will see that on non-default channel > layouts, there is an auto insertion of a resampler filter : the > channel_layout option is not passed correctly in the chain. > > for instance: ffmpeg -channel_layout octagonal -i input.wav -c:a aac > -channel_layout octagonal out.mkv will matrix the input from octagonal to > 7.1 before the encoding. > > Check ticket 6706 for details of the issue. > > I am not knowledgeable enough to be sure my fix is correct; it's working > for sure, but I've had very few feedback (only Michael and Moritz about > styling issues). > Pining Michael to take a look at it. Discussing this with Michael. My patch fails when there is down or upmixing. I think there are at least two bugs hiding one behind another within the filter chain. It's a pity because this cripples your PCE implementation to ffmpeg default channel layouts only (2.1 4.0 5.0 5.1 6.1 7.1 hexadecagonal), where 4.0 5.0 5.1 7.1 do not require PCE anyway. I'll try to find a solution but senior dev help might be needed because this is quite convoluted. Best
diff --git a/libavcodec/aacenc.h b/libavcodec/aacenc.h index 346d989..31afd04 100644 --- a/libavcodec/aacenc.h +++ b/libavcodec/aacenc.h @@ -99,6 +99,33 @@ typedef struct AACPCEInfo { uint8_t reorder_map[16]; ///< maps channels from lavc to aac order } AACPCEInfo; +/** + *List of PCE (Program Configuration Element) for the channel layouts listed in channel_layout.h + * + *For those wishing in the future to add other layouts: + * - num_ele: number of elements in each group of front, side, back, lfe channels; + * (an element is of type SCE (single channel) , CPE (channel pair) for the first 3 groups; + * and is LFE for LFE group). + * - pairing: 0 for an SCE element or 1 for a CPE; does not apply to LFE group + * - index: there are three independent indices for SCE, CPE and LFE; + * they are incremented irrespective of the group to which the element belongs; + * they are not reset when going from one group to another + * + * Example: for 7.0 channel layout, + * .pairing = { { 1, 0 }, { 1 }, { 1 }, }, (3 CPE and 1 SCE in front group) + * .index = { { 0, 0 }, { 1 }, { 2 }, }, index is 0 for the single SCE + * but goes from 0 to 2 for the CPEs . + * + * The index order impacts the channel ordering. But is otherwise arbitrary + * (the sequence could have been 2, 0, 1 instead of 0, 1, 2). + * Spec allows discontinuous indices, e.g. if one has a total of two SCE, SCE.0 SCE.15 is OK per spec; + * BUT it won't be decoded by ffmpeg aac decoder which at this time requires that indices fully cover some range starting from 0. + * (SCE.1 SCE.0 is OK but not SCE.0 SCE.15). + * + * - config_map: total number of elements and their types. Beware, the way the types are ordered impacts the final channel ordering. + * - reorder_map: reorders the channels. + * + */ static const AACPCEInfo aac_pce_configs[] = { { .layout = AV_CH_LAYOUT_MONO, @@ -117,20 +144,220 @@ static const AACPCEInfo aac_pce_configs[] = { .reorder_map = { 0, 1 }, }, { + .layout = AV_CH_LAYOUT_2POINT1, + .num_ele = { 1, 0, 0, 1 }, + .pairing = { { 1 }, }, + .index = { { 0 },{ 0 },{ 0 },{ 0 } }, + .config_map = { 2, TYPE_CPE, TYPE_LFE }, + .reorder_map = { 0, 1, 2 }, + }, + { + .layout = AV_CH_LAYOUT_2_1, + .num_ele = { 1, 0, 1, 0 }, + .pairing = { { 1 },{ 0 },{ 0 } }, + .index = { { 0 },{ 0 },{ 0 }, }, + .config_map = { 2, TYPE_CPE, TYPE_SCE }, + .reorder_map = { 0, 1, 2 }, + }, + { .layout = AV_CH_LAYOUT_SURROUND, .num_ele = { 2, 0, 0, 0 }, .pairing = { { 1, 0 }, }, - .index = { { 0, 1 }, }, - .config_map = { 2, TYPE_SCE, TYPE_CPE }, - .reorder_map = { 2, 0, 1 }, + .index = { { 0, 0 }, }, + .config_map = { 2, TYPE_CPE, TYPE_SCE, }, + .reorder_map = { 0, 1, 2 }, + }, + { + .layout = AV_CH_LAYOUT_3POINT1, + .num_ele = { 2, 0, 0, 1 }, + .pairing = { { 1, 0 }, }, + .index = { { 0, 0 }, { 0 }, { 0 }, { 0 }, }, + .config_map = { 3, TYPE_CPE, TYPE_SCE, TYPE_LFE }, + .reorder_map = { 0, 1, 2, 3 }, }, { .layout = AV_CH_LAYOUT_4POINT0, .num_ele = { 2, 0, 1, 0 }, .pairing = { { 1, 0 }, { 0 }, { 0 }, }, - .index = { { 0, 1 }, { 0 }, { 0 } }, - .config_map = { 3, TYPE_SCE, TYPE_CPE, TYPE_SCE }, - .reorder_map = { 2, 0, 1, 3 }, + .index = { { 0, 0 }, { 0 }, { 1 } }, + .config_map = { 3, TYPE_CPE, TYPE_SCE, TYPE_SCE }, + .reorder_map = { 0, 1, 2, 3 }, + }, + { + .layout = AV_CH_LAYOUT_4POINT1, + .num_ele = { 2, 1, 1, 0 }, + .pairing = { { 1, 0 }, { 0 }, { 0 }, }, + .index = { { 0, 0 }, { 1 }, { 2 }, { 0 } }, + .config_map = { 4, TYPE_CPE, TYPE_SCE, TYPE_SCE, TYPE_SCE }, + .reorder_map = { 0, 1, 2, 3, 4 }, + }, + { + .layout = AV_CH_LAYOUT_2_2, + .num_ele = { 1, 1, 0, 0 }, + .pairing = { { 1 }, { 1 }, }, + .index = { { 0 }, { 1 }, }, + .config_map = { 2, TYPE_CPE, TYPE_CPE }, + .reorder_map = { 0, 1, 2, 3 }, + }, + { + .layout = AV_CH_LAYOUT_QUAD, + .num_ele = { 1, 0, 1, 0 }, + .pairing = { { 1 }, { 0 }, { 1 }, }, + .index = { { 0 }, { 0 }, { 1 } }, + .config_map = { 2, TYPE_CPE, TYPE_CPE }, + .reorder_map = { 0, 1, 2, 3 }, + }, + { + .layout = AV_CH_LAYOUT_5POINT0, + .num_ele = { 2, 1, 0, 0 }, + .pairing = { { 1, 0 }, { 1 }, }, + .index = { { 0, 0 }, { 1 } }, + .config_map = { 3, TYPE_CPE, TYPE_SCE, TYPE_CPE }, + .reorder_map = { 0, 1, 2, 3, 4 }, + }, + { + .layout = AV_CH_LAYOUT_5POINT1, + .num_ele = { 2, 1, 1, 0 }, + .pairing = { { 1, 0 }, { 0 }, { 1 }, }, + .index = { { 0, 0 }, { 1 }, { 1 } }, + .config_map = { 4, TYPE_CPE, TYPE_SCE, TYPE_SCE, TYPE_CPE }, + .reorder_map = { 0, 1, 2, 3, 4, 5 }, + }, + { + .layout = AV_CH_LAYOUT_5POINT0_BACK, + .num_ele = { 2, 0, 1, 0 }, + .pairing = { { 1, 0 }, { 0 }, { 1 } }, + .index = { { 0, 0 }, { 0 }, { 1 } }, + .config_map = { 3, TYPE_CPE, TYPE_SCE, TYPE_CPE }, + .reorder_map = { 0, 1, 2, 3, 4 }, + }, + { + .layout = AV_CH_LAYOUT_5POINT1_BACK, + .num_ele = { 2, 1, 1, 0 }, + .pairing = { { 1, 0 }, { 0 }, { 1 }, }, + .index = { { 0, 0 }, { 1 }, { 1 } }, + .config_map = { 4, TYPE_CPE, TYPE_SCE, TYPE_SCE, TYPE_CPE }, + .reorder_map = { 0, 1, 2, 3, 4, 5 }, + }, + { + .layout = AV_CH_LAYOUT_6POINT0, + .num_ele = { 2, 1, 1, 0 }, + .pairing = { { 1, 0 }, { 1 }, { 0 }, }, + .index = { { 0, 0 }, { 1 }, { 1 } }, + .config_map = { 4, TYPE_CPE, TYPE_SCE, TYPE_CPE, TYPE_SCE }, + .reorder_map = { 0, 1, 2, 3, 4, 5 }, + }, + { + .layout = AV_CH_LAYOUT_6POINT0_FRONT, + .num_ele = { 2, 1, 0, 0 }, + .pairing = { { 1, 1 }, { 1 } }, + .index = { { 1, 0 }, { 2 }, }, + .config_map = { 3, TYPE_CPE, TYPE_CPE, TYPE_CPE, }, + .reorder_map = { 0, 1, 2, 3, 4, 5 }, + }, + { + .layout = AV_CH_LAYOUT_HEXAGONAL, + .num_ele = { 2, 0, 2, 0 }, + .pairing = { { 1, 0 },{ 0 },{ 1, 0 }, }, + .index = { { 0, 0 },{ 0 },{ 1, 1 } }, + .config_map = { 4, TYPE_CPE, TYPE_SCE, TYPE_CPE, TYPE_SCE, }, + .reorder_map = { 0, 1, 2, 3, 4, 5 }, + }, + { + .layout = AV_CH_LAYOUT_6POINT1, + .num_ele = { 2, 1, 2, 0 }, + .pairing = { { 1, 0 },{ 0 },{ 1, 0 }, }, + .index = { { 0, 0 },{ 1 },{ 1, 2 } }, + .config_map = { 5, TYPE_CPE, TYPE_SCE, TYPE_SCE, TYPE_CPE, TYPE_SCE }, + .reorder_map = { 0, 1, 2, 3, 4, 5, 6 }, + }, + { + .layout = AV_CH_LAYOUT_6POINT1_BACK, + .num_ele = { 2, 1, 2, 0 }, + .pairing = { { 1, 0 }, { 0 }, { 1, 0 }, }, + .index = { { 0, 0 }, { 1 }, { 1, 2 } }, + .config_map = { 5, TYPE_CPE, TYPE_SCE, TYPE_SCE, TYPE_CPE, TYPE_SCE }, + .reorder_map = { 0, 1, 2, 3, 4, 5, 6 }, + }, + { + .layout = AV_CH_LAYOUT_6POINT1_FRONT, + .num_ele = { 2, 1, 2, 0 }, + .pairing = { { 1, 0 }, { 0 }, { 1, 0 }, }, + .index = { { 0, 0 }, { 1 }, { 1, 2 } }, + .config_map = { 5, TYPE_CPE, TYPE_SCE, TYPE_SCE, TYPE_CPE, TYPE_SCE }, + .reorder_map = { 0, 1, 2, 3, 4, 5, 6 }, + }, + { + .layout = AV_CH_LAYOUT_7POINT0, + .num_ele = { 2, 1, 1, 0 }, + .pairing = { { 1, 0 }, { 1 }, { 1 }, }, + .index = { { 0, 0 }, { 1 }, { 2 }, }, + .config_map = { 4, TYPE_CPE, TYPE_SCE, TYPE_CPE, TYPE_CPE }, + .reorder_map = { 0, 1, 2, 3, 4, 5, 6 }, + }, + { + .layout = AV_CH_LAYOUT_7POINT0_FRONT, + .num_ele = { 2, 1, 1, 0 }, + .pairing = { { 1, 0 }, { 1 }, { 1 }, }, + .index = { { 0, 0 }, { 1 }, { 2 }, }, + .config_map = { 4, TYPE_CPE, TYPE_SCE, TYPE_CPE, TYPE_CPE }, + .reorder_map = { 0, 1, 2, 3, 4, 5, 6 }, + }, + { + .layout = AV_CH_LAYOUT_7POINT1, + .num_ele = { 2, 1, 2, 0 }, + .pairing = { { 1, 0 }, { 0 }, { 1, 1 }, }, + .index = { { 0, 0 }, { 1 }, { 1, 2 }, { 0 } }, + .config_map = { 5, TYPE_CPE, TYPE_SCE, TYPE_SCE, TYPE_CPE, TYPE_CPE }, + .reorder_map = { 0, 1, 2, 3, 4, 5, 6, 7 }, + }, + { + .layout = AV_CH_LAYOUT_7POINT1_WIDE, + .num_ele = { 2, 1, 2, 0 }, + .pairing = { { 1, 0 }, { 0 },{ 1, 1 }, }, + .index = { { 0, 0 }, { 1 }, { 1, 2 }, { 0 } }, + .config_map = { 5, TYPE_CPE, TYPE_SCE, TYPE_SCE, TYPE_CPE, TYPE_CPE }, + .reorder_map = { 0, 1, 2, 3, 4, 5, 6, 7 }, + }, + { + .layout = AV_CH_LAYOUT_7POINT1_WIDE_BACK, + .num_ele = { 2, 1, 2, 0 }, + .pairing = { { 1, 0 }, { 0 }, { 1, 1 }, }, + .index = { { 0, 0 }, { 1 }, { 1, 2 }, { 0 } }, + .config_map = { 5, TYPE_CPE, TYPE_SCE, TYPE_SCE, TYPE_CPE, TYPE_CPE }, + .reorder_map = { 0, 1, 2, 3, 4, 5, 6, 7 }, + }, + { + .layout = AV_CH_LAYOUT_OCTAGONAL, + .num_ele = { 2, 1, 2, 0 }, + .pairing = { { 1, 0 }, { 1 }, { 1, 0 }, }, + .index = { { 0, 0 }, { 1 }, { 2, 1 } }, + .config_map = { 5, TYPE_CPE, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_SCE }, + .reorder_map = { 0, 1, 2, 3, 4, 5, 6, 7 }, + }, + { + .layout = 0x00000f37, //FL+FR+FC+BL+BR+BC+SL+SR+TC + .num_ele = { 2, 2, 2, 0 }, + .pairing = { { 1, 0 }, { 1, 0 }, { 1, 0 }, }, + .index = { { 0, 0 }, { 1, 1 }, { 2, 2 } }, + .config_map = { 6, TYPE_CPE, TYPE_SCE, TYPE_CPE, TYPE_SCE, TYPE_CPE, TYPE_SCE }, + .reorder_map = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }, + }, + { + .layout = 0x00000ff3, //FL+FR+BL+BR+FLC+FRC+BC+SL+SR+TC + .num_ele = { 2, 2, 2, 0 }, + .pairing = { { 1, 1 }, { 1, 0 }, { 1, 0 }, }, + .index = { { 0, 1 }, { 2, 0 }, { 3, 1 } }, + .config_map = { 6, TYPE_CPE, TYPE_CPE, TYPE_CPE, TYPE_SCE, TYPE_CPE, TYPE_SCE }, + .reorder_map = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, + }, + { + .layout = AV_CH_LAYOUT_HEXADECAGONAL, + .num_ele = { 4, 2, 4, 0 }, + .pairing = { { 1, 0, 1, 0 }, { 1, 1 }, { 1, 0, 1, 0 }, }, + .index = { { 0, 0, 1, 1 }, { 2, 3 }, { 4, 2, 5, 3 } }, + .config_map = { 10, TYPE_CPE, TYPE_SCE, TYPE_CPE, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_CPE, TYPE_SCE, TYPE_CPE, TYPE_SCE }, + .reorder_map = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, }, };