[FFmpeg-devel] [PATCH v2 8/8] aacdec: add a decoder for AAC USAC (xHE-AAC)

Marton Balint cus at passwd.hu
Sun May 19 22:39:59 EEST 2024



On Sun, 19 May 2024, Lynne via ffmpeg-devel wrote:

> This commit adds a decoder for the frequency-domain part of USAC.
>
[...]

>
> +/* Finish later */
> +static const enum AVChannel usac_ch_pos_to_av[64] = {
> +    [0] = AV_CHAN_FRONT_LEFT,
> +    [1] = AV_CHAN_FRONT_RIGHT,
> +    [2] = AV_CHAN_FRONT_CENTER,
> +    [3] = AV_CHAN_LOW_FREQUENCY,
> +    [4] = AV_CHAN_BACK_LEFT, // unsure
> +    [5] = AV_CHAN_BACK_RIGHT, // unsure
> +    [6] = AV_CHAN_FRONT_LEFT_OF_CENTER,
> +    [7] = AV_CHAN_FRONT_RIGHT_OF_CENTER,
> +    [8] = 0, /* rear surround left is missing */
> +    [9] = 0, /* rear surround right is missing */
> +    [10] = AV_CHAN_BACK_CENTER,
> +    [11] = AV_CHAN_SURROUND_DIRECT_LEFT,
> +    [12] = AV_CHAN_SURROUND_DIRECT_RIGHT,
> +    [13] = AV_CHAN_SIDE_LEFT, // fairly sure
> +    [14] = AV_CHAN_SIDE_RIGHT, // fairly sure
> +    [15] = AV_CHAN_WIDE_LEFT, // somewhat confident
> +    [16] = AV_CHAN_WIDE_RIGHT, // somewhat confident
> +    [17] = AV_CHAN_TOP_FRONT_LEFT,
> +    [18] = AV_CHAN_TOP_FRONT_RIGHT,
> +    [19] = AV_CHAN_TOP_FRONT_CENTER,
> +    [20] = AV_CHAN_TOP_BACK_LEFT,
> +    [21] = AV_CHAN_TOP_BACK_RIGHT,
> +    [22] = AV_CHAN_TOP_BACK_CENTER,
> +    [23] = AV_CHAN_TOP_SIDE_LEFT,
> +    [24] = AV_CHAN_TOP_SIDE_RIGHT,
> +    [25] = AV_CHAN_TOP_CENTER,
> +    [26] = AV_CHAN_LOW_FREQUENCY, // actually LFE2
> +    [27] = AV_CHAN_BOTTOM_FRONT_LEFT,
> +    [28] = AV_CHAN_BOTTOM_FRONT_RIGHT,
> +    [29] = AV_CHAN_BOTTOM_FRONT_CENTER,
> +    [30] = 0, /* top left surround is missing */
> +    [31] = 0, /* top right surround is missing */
> +};

Some comment would be nice about the source of this table (which 
document, which table).

It looks very similar to the ISO channel positons used in mov_chan. I 
think we follow this mapping in most cases:

Left  Surround is SIDE_LEFT
Right Surround is SIDE_RIGHT
Rear Surround Left  is BACK_LEFT
Rear Surround Right is BACK_RIGHT

So in your table [4] and [5] should be SIDE, [8] and [9] should be 
BACK. [26] can be AV_CHAN_LOW_FREQUENCY_2, we do have that.

Yes, Left/Right Surround and Left/Right Side Surround will be the same, 
but those are not present in commonly used layouts at the same time.

Regards,
Marton


More information about the ffmpeg-devel mailing list