Hi This breaks the following (channels are very wrong afterwards)
-i Nero%20032%20kbps%20CBR-HE.mp4 -t 5 -bitexact -y test513.wav file shoukld be here: https://trac.ffmpeg.org/attachment/ticket/513/Nero%20032%20kbps%20CBR-HE.mp4 thx On Wed, May 20, 2026 at 08:27:39PM +0300, James Almer via ffmpeg-cvslog wrote: > This is an automated email from the git hooks/post-receive script. > > Git pushed a commit to branch master > in repository ffmpeg. > > commit c92c6cbf19f23e9569a67fba64f61923073512cc > Author: James Almer <[email protected]> > AuthorDate: Tue May 19 11:14:59 2026 -0300 > Commit: James Almer <[email protected]> > CommitDate: Wed May 20 10:59:01 2026 -0300 > > avcodec/aacenc: fix PCE configs for known native layouts > > Many of the entries were downright wrong, like mistagging LFE elements as > SCE, as well as trying to match the native channel ordering in the PCE > by placing CPE elements before SCE ones in some cases (like with FRONT > elements), which is not spec compliant and results in unparseable streams. > > Remove the three layouts that define top channels. It's not clear how they > should be signaled in PCE. > > Signed-off-by: James Almer <[email protected]> > --- > libavcodec/aacenc.c | 193 > ++++++++++++++++++++++------------------------------ > 1 file changed, 83 insertions(+), 110 deletions(-) > > diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c > index b8df8dc530..7181bffab1 100644 > --- a/libavcodec/aacenc.c > +++ b/libavcodec/aacenc.c > @@ -123,34 +123,34 @@ static const AACPCEInfo aac_pce_configs[] = { > { > .layout = AV_CHANNEL_LAYOUT_SURROUND, > .num_ele = { 2, 0, 0, 0 }, > - .pairing = { { 1, 0 }, }, > + .pairing = { { 0, 1 }, }, > .index = { { 0, 0 }, }, > - .config_map = { 2, TYPE_CPE, TYPE_SCE, }, > - .reorder_map = { 0, 1, 2 }, > + .config_map = { 2, TYPE_SCE, TYPE_CPE }, > + .reorder_map = { 2, 0, 1 }, > }, > { > .layout = AV_CHANNEL_LAYOUT_3POINT1, > .num_ele = { 2, 0, 0, 1 }, > - .pairing = { { 1, 0 }, }, > + .pairing = { { 0, 1 }, }, > .index = { { 0, 0 }, { 0 }, { 0 }, { 0 }, }, > - .config_map = { 3, TYPE_CPE, TYPE_SCE, TYPE_LFE }, > - .reorder_map = { 0, 1, 2, 3 }, > + .config_map = { 3, TYPE_SCE, TYPE_CPE, TYPE_LFE }, > + .reorder_map = { 2, 0, 1, 3 }, > }, > { > .layout = AV_CHANNEL_LAYOUT_4POINT0, > .num_ele = { 2, 0, 1, 0 }, > - .pairing = { { 1, 0 }, { 0 }, { 0 }, }, > + .pairing = { { 0, 1 }, { 0 }, { 0 }, }, > .index = { { 0, 0 }, { 0 }, { 1 } }, > - .config_map = { 3, TYPE_CPE, TYPE_SCE, TYPE_SCE }, > - .reorder_map = { 0, 1, 2, 3 }, > + .config_map = { 3, TYPE_SCE, TYPE_CPE, TYPE_SCE }, > + .reorder_map = { 2, 0, 1, 3 }, > }, > { > .layout = AV_CHANNEL_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 }, > + .num_ele = { 2, 0, 1, 1 }, > + .pairing = { { 0, 1 }, { 0 }, { 0 }, }, > + .index = { { 0, 0 }, { 0 }, { 1 }, { 0 } }, > + .config_map = { 4, TYPE_SCE, TYPE_CPE, TYPE_SCE, TYPE_LFE }, > + .reorder_map = { 2, 0, 1, 4, 3 }, > }, > { > .layout = AV_CHANNEL_LAYOUT_2_2, > @@ -171,157 +171,130 @@ static const AACPCEInfo aac_pce_configs[] = { > { > .layout = AV_CHANNEL_LAYOUT_5POINT0, > .num_ele = { 2, 1, 0, 0 }, > - .pairing = { { 1, 0 }, { 1 }, }, > + .pairing = { { 0, 1 }, { 1 }, }, > .index = { { 0, 0 }, { 1 } }, > - .config_map = { 3, TYPE_CPE, TYPE_SCE, TYPE_CPE }, > - .reorder_map = { 0, 1, 2, 3, 4 }, > + .config_map = { 3, TYPE_SCE, TYPE_CPE, TYPE_CPE }, > + .reorder_map = { 2, 0, 1, 3, 4 }, > }, > { > .layout = AV_CHANNEL_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 }, > + .num_ele = { 2, 1, 0, 1 }, > + .pairing = { { 0, 1 }, { 1 }, }, > + .index = { { 0, 0 }, { 1 }, { 0 }, { 0 }, }, > + .config_map = { 4, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_LFE }, > + .reorder_map = { 2, 0, 1, 4, 5, 3 }, > }, > { > .layout = AV_CHANNEL_LAYOUT_5POINT0_BACK, > .num_ele = { 2, 0, 1, 0 }, > - .pairing = { { 1, 0 }, { 0 }, { 1 } }, > + .pairing = { { 0, 1 }, { 0 }, { 1 } }, > .index = { { 0, 0 }, { 0 }, { 1 } }, > - .config_map = { 3, TYPE_CPE, TYPE_SCE, TYPE_CPE }, > - .reorder_map = { 0, 1, 2, 3, 4 }, > + .config_map = { 3, TYPE_SCE, TYPE_CPE, TYPE_CPE }, > + .reorder_map = { 2, 0, 1, 3, 4 }, > }, > { > .layout = AV_CHANNEL_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 }, > + .num_ele = { 2, 0, 1, 1 }, > + .pairing = { { 0, 1 }, { 0 }, { 1 }, }, > + .index = { { 0, 0 }, { 0 }, { 1 }, { 0 } }, > + .config_map = { 4, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_LFE }, > + .reorder_map = { 2, 0, 1, 4, 5, 3 }, > }, > { > .layout = AV_CHANNEL_LAYOUT_6POINT0, > .num_ele = { 2, 1, 1, 0 }, > - .pairing = { { 1, 0 }, { 1 }, { 0 }, }, > + .pairing = { { 0, 1 }, { 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 }, > + .config_map = { 4, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_SCE }, > + .reorder_map = { 2, 0, 1, 4, 5, 3 }, > }, > { > .layout = AV_CHANNEL_LAYOUT_6POINT0_FRONT, > .num_ele = { 2, 1, 0, 0 }, > .pairing = { { 1, 1 }, { 1 } }, > - .index = { { 1, 0 }, { 2 }, }, > + .index = { { 0, 1 }, { 2 }, }, > .config_map = { 3, TYPE_CPE, TYPE_CPE, TYPE_CPE, }, > .reorder_map = { 0, 1, 2, 3, 4, 5 }, > }, > { > .layout = AV_CHANNEL_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 }, > + .pairing = { { 0, 1 }, { 0 }, { 1, 0 } }, > + .index = { { 0, 0 }, { 0 }, { 1, 1 } }, > + .config_map = { 4, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_SCE }, > + .reorder_map = { 2, 0, 1, 3, 4, 5 }, > }, > { > .layout = AV_CHANNEL_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 }, > + .num_ele = { 2, 1, 1, 1 }, > + .pairing = { { 0, 1 },{ 1 },{ 0 }, }, > + .index = { { 0, 0 },{ 1 },{ 1 },{ 0 } }, > + .config_map = { 5, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_SCE, TYPE_LFE > }, > + .reorder_map = { 2, 0, 1, 5, 6, 4, 3 }, > }, > { > .layout = AV_CHANNEL_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 }, > + .num_ele = { 2, 0, 2, 1 }, > + .pairing = { { 0, 1 },{ 1, 0 },{ 0 }, }, > + .index = { { 0, 0 },{ 0 },{ 1, 1 },{ 0 } }, > + .config_map = { 5, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_SCE, TYPE_LFE > }, > + .reorder_map = { 2, 0, 1, 4, 5, 6, 3 }, > }, > { > .layout = AV_CHANNEL_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 }, > + .num_ele = { 2, 1, 0, 1 }, > + .pairing = { { 1, 1 },{ 1 } }, > + .index = { { 0, 1 },{ 2 },{ 0 },{ 0 } }, > + .config_map = { 4, TYPE_CPE, TYPE_CPE, TYPE_CPE, TYPE_LFE }, > + .reorder_map = { 0, 1, 3, 4, 5, 6, 2 }, > }, > { > .layout = AV_CHANNEL_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 }, > + .num_ele = { 2, 0, 2, 0 }, > + .pairing = { { 0, 1 }, { 0 }, { 1, 1 }, }, > + .index = { { 0, 0 }, { 0 }, { 2, 1 }, }, > + .config_map = { 4, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_CPE }, > + .reorder_map = { 2, 0, 1, 3, 4, 5, 6 }, > }, > { > .layout = AV_CHANNEL_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 }, > + .num_ele = { 3, 1, 0, 0 }, > + .pairing = { { 0, 1, 1 }, { 1 }, }, > + .index = { { 0, 0, 1 }, { 2 }, }, > + .config_map = { 4, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_CPE }, > + .reorder_map = { 2, 0, 1, 3, 4, 5, 6 }, > }, > { > .layout = AV_CHANNEL_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 }, > + .num_ele = { 2, 0, 2, 1 }, > + .pairing = { { 0, 1 }, { 0 }, { 1, 1 }, }, > + .index = { { 0, 0 }, { 0 }, { 2, 1 }, { 0 } }, > + .config_map = { 5, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_CPE, TYPE_LFE > }, > + .reorder_map = { 2, 0, 1, 4, 5, 6, 7, 3 }, > }, > { > .layout = AV_CHANNEL_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 }, > + .num_ele = { 3, 1, 0, 1 }, > + .pairing = { { 0, 1, 1 }, { 1 }, }, > + .index = { { 0, 0, 1 }, { 2 }, }, > + .config_map = { 5, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_CPE, TYPE_LFE > }, > + .reorder_map = { 2, 0, 1, 4, 5, 6, 7, 3 }, > }, > { > .layout = AV_CHANNEL_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 }, > + .num_ele = { 3, 0, 1, 1 }, > + .pairing = { { 0, 1, 1 }, { 0 }, { 1 } }, > + .index = { { 0, 0, 2 }, { 0 }, { 1 }, { 0 } }, > + .config_map = { 5, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_CPE, TYPE_LFE > }, > + .reorder_map = { 2, 0, 1, 4, 5, 6, 7, 3 }, > }, > { > .layout = AV_CHANNEL_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 }, > - }, > - { /* Meant for order 2/mixed ambisonics */ > - .layout = { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 9, > - .u.mask = AV_CH_LAYOUT_OCTAGONAL | AV_CH_TOP_CENTER }, > - .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 }, > - }, > - { /* Meant for order 2/mixed ambisonics */ > - .layout = { .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = 10, > - .u.mask = AV_CH_LAYOUT_6POINT0_FRONT | AV_CH_BACK_CENTER > | > - AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT | > AV_CH_TOP_CENTER }, > - .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_CHANNEL_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 }, > + .num_ele = { 2, 0, 3, 0 }, > + .pairing = { { 0, 1 }, { 0 }, { 1, 1, 0 }, }, > + .index = { { 0, 0 }, { 0 }, { 1, 2, 1 }, }, > + .config_map = { 5, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_CPE, TYPE_SCE > }, > + .reorder_map = { 2, 0, 1, 6, 7, 3, 4, 5 }, > }, > }; > > > _______________________________________________ > ffmpeg-cvslog mailing list -- [email protected] > To unsubscribe send an email to [email protected] > -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws. -- Plato
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
