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

Marton Balint cus at passwd.hu
Mon Jan 17 22:18:18 EET 2022



On Mon, 17 Jan 2022, James Almer wrote:

>
>
> You're still thinking there's a distinction, when i already told you that 
> there is none. I added the name field because people wanted to give non 
> standard channel names, and maybe also change the standard ones too. It's not 
> a label to go alongside a designation, it's *a* name.
> There are about 20 channels that have a standard name from waveformat and 
> extensions, while the rest lack one. You can obviously have a non standard 
> speaker setup with 50 channels, and all those extra speakers can surely have 
> a name based on their position (Say, RTFC, to refer to "right of top front 
> center"), so the field lets you give it to them if that's convenient for you 
> and you want a pretty print output of the layout without seeing things like 
> USR49. That's it.

OK, but shouldn't the user be able to specify if it means a builtin name 
or a custom name when specifying a channel name?

That is why I suggested some additinal syntax for custom names 
in av_channel_layout_index_from_string() and 
av_channel_layout_channel_from_string(). Like "FL" is a builtin name, 
"@name" is a custom name.

>
> Yes, av_channel_layout_from_string() will not be able to parse the output of 
> av_channel_layout_from_describe() if you gave channels a custom name, since 
> they are specifically from that other layout. There's no way around that, as 
> we can't make describe() output some string that from_string() can interpret 
> for those because then describe() will be useless for printing the layout for 
> human readability purposes.
> It is in fact a good reason to either remove the name field or stop making 
> these helpers look at it, since describe() is meant to create strings 
> from_string() can parse.
>
> I personally would do just that and keep the opaque fields alone. Otherwise 
> I'll make the helpers stop looking at it, since after your request, non 
> standard channels can be addressed as USR#, so you can create layout from 
> strings with them just fine.

Removing the custom names is fine with me. Maybe it's a compromise nobody 
is particularly happy about.

Regards,
Marton


More information about the ffmpeg-devel mailing list