[FFmpeg-devel] [PATCH 001/289 v6] Add a new channel layout API

Marton Balint cus at passwd.hu
Wed Jan 19 22:51:55 EET 2022



On Tue, 18 Jan 2022, James Almer wrote:

> From: Anton Khirnov <anton at khirnov.net>
>
> 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 <vittorio.giovara at gmail.com>
> and James Almer <jamrial at gmail.com>.
> Signed-off-by: Vittorio Giovara <vittorio.giovara at gmail.com>
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
> Changes since last version:
>
> *av_channel_layout_from_string() and av_channel_layout_describe() now support
> a "designation at name" syntax, effectively making both functions reciprocal
> when there are custom names in some or all channels.
> It's the syntax suggested by Marton and is both extensible if required and
> not too ulgy in human readable output if the string is printed verbatim.
>
> *av_channel_layout_index_from_string() and
> av_channel_layout_channel_from_string() also support this syntax now.

I have two suggestions. None of them is actually blocking, but since they 
concern public syntax and API it might be better to decide now.

av_channel_layout_index_from_string() without "@" in the string matches 
both builtin names (designations) and custom names. I suggest for it to 
only match builtin names. If a user wants to match by custom name, "@name" 
may be specified without a designation. This keeps the two namespaces 
separate.

av_channel_layout_channel_from_string() is an API which is not used in the 
codebase. I am not enterely sure about its purpose, so maybe it should be 
removed for now, and only added later, if some code actually needs it.

Thanks,
Marton


More information about the ffmpeg-devel mailing list