1
0
mirror of https://git.ffmpeg.org/ffmpeg.git synced 2026-10-24 02:09:03 +03:00
Files
ffmpeg/libavcodec
Niklas Haas 486f03997c avcodec/aacenc: add option to allow encoding non-PCE 7.1(wide)
PCE is not compatible with all downstream sources. Some browsers, for example,
will refuse to play an AAC file with a PCE channel layout. So there is a
legitimate use case for encoding non-PCE files if required.

However, due to the historical work-around where FFmpeg produced out-of-spec
files that mislabelled 7.1 as 7.1(wide), we should gate this behind a new
option.

I considered tying it to -strict 1 (which also disables the equivalent
work-around in aacdec), but this may lead to users unknowingly opting into
this behavior due to enabling -strict 1 out of habit (or for other reasons).

This way, a user who really knows what they're doing can use
-af aformat=channel_layouts=7.1(wide) -aac_allow_71wide yes to force
producing a spec-compliant non-PCE AAC file.

I decided to keep the option undocumented for now, matching the existing
`aac_pce` option (also undocumented).

The channel IDs were taken by comparing the AAC bitstream channel order:
 FC, FLC, FRC, FL, FR, BL, BR, LFE

Aginst the FFmpeg channel order for 7POINT1_WIDE_BACK:
 0=FL 1=FR 2=FC 3=LFE 4=BL 5=BR 6=FLC 7=FRC

This gives us {2, 6, 7, 0, 1, 4, 5, 3}.

Sponsored-by: nxtedition AB
Signed-off-by: Niklas Haas <git@haasn.dev>
2026-08-31 19:22:59 +02:00
..
2026-06-17 17:34:24 +09:00
…
…
…
…
…
…
2026-07-01 21:05:27 +09:00
2026-07-01 21:05:27 +09:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-07-28 17:54:07 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-06-23 19:15:57 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-07-28 17:54:07 +02:00
2026-04-28 14:31:19 +02:00
…
…
…
…
…
…
…
2026-04-28 12:29:37 +00:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-05-03 16:56:43 +02:00
…
…
2026-08-09 17:26:53 +02:00
…
…
2026-04-28 12:29:37 +00:00
…
…
…
…
…
…
2026-04-28 12:29:37 +00:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-06-03 14:12:50 +09:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-06-23 19:15:57 +02:00
…
…
…
…
…
…
2026-03-10 13:52:19 +01:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-06-23 19:15:57 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-05-03 18:23:03 +02:00
…
…
…
…
2026-07-07 17:35:58 +00:00
2026-07-07 17:35:58 +00:00
…
…
…
…
…
…
…
…
…
2026-06-13 15:55:40 +00:00
…
…
…
…
…
…
…
…
…
…
2026-03-10 13:52:19 +01:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-05-02 21:39:02 +00:00
…
…
…
…
…
…
…
…
…
…
2026-06-23 17:15:02 +02:00
…
2026-07-28 17:54:07 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-07-01 21:05:27 +09:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-03-10 13:52:19 +01:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-03-28 11:25:38 +01:00
2026-03-28 11:25:38 +01:00
2026-03-28 11:25:38 +01:00
…
…
…
…
…
…
2026-05-03 18:22:24 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-03-02 19:01:46 +01:00
…
…
…
…
…
…
…
…
…
…
…
2026-08-13 13:17:59 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-08-09 17:25:23 +02:00
…
2026-08-09 17:25:23 +02:00
2026-08-09 17:25:23 +02:00
2026-08-09 17:25:23 +02:00
2026-08-09 17:25:23 +02:00
2026-08-09 17:25:23 +02:00
…
…
…
…
…
…
…
…
2026-03-10 13:52:18 +01:00
…
…
…
2026-06-23 19:15:57 +02:00
…
2026-04-28 12:29:37 +00:00
…
…
…
…
…
2026-04-28 12:29:37 +00:00
…
…
…
…
…
…
…
…
2026-07-28 17:54:07 +02:00
…
…
…
…
…
…
…
…
…
…
2026-03-10 13:52:19 +01:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-06-23 19:15:57 +02:00
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
2026-03-16 10:24:33 +00:00
…
…
…
…
…
…
…