PR #23313 opened by James Almer (jamrial) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23313 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23313.patch
Most parsers outright dislike anything being signaled as SIDE, as they expect layouts to follow how ordering is pre-defined in non-0 channel_config values, where only 22.2 layout uses it to signal some height channels. >From 9cf25b582c00eb7bf3a790ef9571449690294896 Mon Sep 17 00:00:00 2001 From: James Almer <[email protected]> Date: Tue, 2 Jun 2026 12:08:44 -0300 Subject: [PATCH 1/2] avcodec/aacenc: fix signaled channel pairing for 6.1 PCE layout Signed-off-by: James Almer <[email protected]> --- libavcodec/aacenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c index 210eff215a..2c8965095c 100644 --- a/libavcodec/aacenc.c +++ b/libavcodec/aacenc.c @@ -235,7 +235,7 @@ static const AACPCEInfo aac_pce_configs[] = { { .layout = AV_CHANNEL_LAYOUT_6POINT1_BACK, .num_ele = { 2, 0, 2, 1 }, - .pairing = { { 0, 1 },{ 1, 0 },{ 0 }, }, + .pairing = { { 0, 1 },{ 0 },{ 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 }, -- 2.52.0 >From f3fc0a6c05d06810fcc42eaaac15d82726f0e5d5 Mon Sep 17 00:00:00 2001 From: James Almer <[email protected]> Date: Tue, 2 Jun 2026 12:07:06 -0300 Subject: [PATCH 2/2] avcodec/aacenc: don't write SIDE position elements Most parsers outright dislike anything being signaled as SIDE, as they expect layouts to follow how ordering is pre-defined in non-0 channel_config values. Signed-off-by: James Almer <[email protected]> --- libavcodec/aacenc.c | 56 ++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c index 2c8965095c..0d0dcb5126 100644 --- a/libavcodec/aacenc.c +++ b/libavcodec/aacenc.c @@ -154,9 +154,9 @@ static const AACPCEInfo aac_pce_configs[] = { }, { .layout = AV_CHANNEL_LAYOUT_2_2, - .num_ele = { 1, 1, 0, 0 }, - .pairing = { { 1 }, { 1 }, }, - .index = { { 0 }, { 1 }, }, + .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 }, }, @@ -170,17 +170,17 @@ static const AACPCEInfo aac_pce_configs[] = { }, { .layout = AV_CHANNEL_LAYOUT_5POINT0, - .num_ele = { 2, 1, 0, 0 }, - .pairing = { { 0, 1 }, { 1 }, }, - .index = { { 0, 0 }, { 1 } }, + .num_ele = { 2, 0, 1, 0 }, + .pairing = { { 0, 1 }, { 0 }, { 1 } }, + .index = { { 0, 0 }, { 0 }, { 1 } }, .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, 0, 1 }, - .pairing = { { 0, 1 }, { 1 }, }, - .index = { { 0, 0 }, { 1 }, { 0 }, { 0 }, }, + .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 }, }, @@ -202,17 +202,17 @@ static const AACPCEInfo aac_pce_configs[] = { }, { .layout = AV_CHANNEL_LAYOUT_6POINT0, - .num_ele = { 2, 1, 1, 0 }, - .pairing = { { 0, 1 }, { 1 }, { 0 }, }, - .index = { { 0, 0 }, { 1 }, { 1 } }, + .num_ele = { 2, 0, 2, 0 }, + .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, 4, 5, 3 }, }, { .layout = AV_CHANNEL_LAYOUT_6POINT0_FRONT, - .num_ele = { 2, 1, 0, 0 }, - .pairing = { { 1, 1 }, { 1 } }, - .index = { { 0, 1 }, { 2 }, }, + .num_ele = { 2, 0, 1, 0 }, + .pairing = { { 1, 1 }, { 0 }, { 1 } }, + .index = { { 0, 1 }, { 0 }, { 2 }, }, .config_map = { 3, TYPE_CPE, TYPE_CPE, TYPE_CPE, }, .reorder_map = { 0, 1, 2, 3, 4, 5 }, }, @@ -226,9 +226,9 @@ static const AACPCEInfo aac_pce_configs[] = { }, { .layout = AV_CHANNEL_LAYOUT_6POINT1, - .num_ele = { 2, 1, 1, 1 }, - .pairing = { { 0, 1 },{ 1 },{ 0 }, }, - .index = { { 0, 0 },{ 1 },{ 1 },{ 0 } }, + .num_ele = { 2, 0, 2, 1 }, + .pairing = { { 0, 1 }, { 0 }, { 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, 5, 6, 4, 3 }, }, @@ -242,10 +242,10 @@ static const AACPCEInfo aac_pce_configs[] = { }, { .layout = AV_CHANNEL_LAYOUT_6POINT1_FRONT, - .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 }, + .num_ele = { 2, 0, 1, 1 }, + .pairing = { { 1, 1 }, { 0 }, { 1 }, { 0 }, }, + .index = { { 0, 1 }, { 0 }, { 2 }, { 0 }, }, + .config_map = { 3, TYPE_CPE, TYPE_CPE, TYPE_CPE, TYPE_LFE, }, .reorder_map = { 0, 1, 3, 4, 5, 6, 2 }, }, { @@ -258,9 +258,9 @@ static const AACPCEInfo aac_pce_configs[] = { }, { .layout = AV_CHANNEL_LAYOUT_7POINT0_FRONT, - .num_ele = { 3, 1, 0, 0 }, - .pairing = { { 0, 1, 1 }, { 1 }, }, - .index = { { 0, 0, 1 }, { 2 }, }, + .num_ele = { 3, 0, 1, 0 }, + .pairing = { { 0, 1, 1 }, { 0 }, { 1 }, }, + .index = { { 0, 0, 1 }, { 0 }, { 2 }, }, .config_map = { 4, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_CPE }, .reorder_map = { 2, 0, 1, 3, 4, 5, 6 }, }, @@ -274,9 +274,9 @@ static const AACPCEInfo aac_pce_configs[] = { }, { .layout = AV_CHANNEL_LAYOUT_7POINT1_WIDE, - .num_ele = { 3, 1, 0, 1 }, - .pairing = { { 0, 1, 1 }, { 1 }, }, - .index = { { 0, 0, 1 }, { 2 }, }, + .num_ele = { 3, 0, 1, 1 }, + .pairing = { { 0, 1, 1 }, { 0 }, { 1 }, { 0 }, }, + .index = { { 0, 0, 1 }, { 0 }, { 2 }, { 0 }, }, .config_map = { 5, TYPE_SCE, TYPE_CPE, TYPE_CPE, TYPE_CPE, TYPE_LFE }, .reorder_map = { 2, 0, 1, 4, 5, 6, 7, 3 }, }, -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
