On Mon, Jan 24, 2022 at 05:46:56PM -0300, James Almer wrote: > From: Anton Khirnov > > The new API is more extensible and allows for custom layouts. > More accurate information is exported, eg for decoders that do not > set a channel layout, lavc will not make one up for them. > > Deprecate the old API working with just uint64_t bitmasks. > > Expanded and completed by Vittorio Giovara > and James Almer . > Signed-off-by: Vittorio Giovara > Signed-off-by: James Almer > --- > Changes since last version: > > *Both av_channel_layout_describe() and av_channel_layout_from_string() now > support a "2 channels (FL+LFE)" syntax, to signal native (usually > non-standard) or custom order layouts. > *a single decimal value is now interpreted as a mask by > av_channel_layout_from_string(), same as a single hexadecimal value. > *De-duplicated code by simplifying av_channel_layout_channel_from_string(). > > The entire set can still be found in > https://github.com/jamrial/FFmpeg/commits/channel_layout4 > > libavutil/channel_layout.c | 661 +++++++++++++++++++++++++++++++++---- > libavutil/channel_layout.h | 551 +++++++++++++++++++++++++++++-- > libavutil/version.h | 1 + > 3 files changed, 1110 insertions(+), 103 deletions(-) didnt bisect but this ./ffmpeg -i ~/tickets/3542/out.mov -channel_layout stereo -acodec pcm_s16be file.mov fails after the patchset but not before [graph_0_in_0_0 @ 0x5642d659ec40] filter context - fmt: s16 r: 44100 layout: 3 ch: 2, incoming frame - fmt: s16 r: 44100 layout: 60000000 ch: 2 pts_time: 0 [graph_0_in_0_0 @ 0x5642d659ec40] Changing audio frame properties on the fly is not supported. Error while filtering: Invalid argument Failed to inject frame into filter network: Invalid argument Error while processing the decoded data for stream #0:0 Conversion failed! [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB The bravest are surely those who have the clearest vision of what is before them, glory and danger alike, and yet notwithstanding go out to meet it. -- Thucydides