[FFmpeg-devel] [PATCH v4 01/10] channel_layout: add new channel positions supported by xHE-AAC
Marton Balint
cus at passwd.hu
Wed May 29 22:41:50 EEST 2024
On Wed, 29 May 2024, Lynne via ffmpeg-devel wrote:
> On 28/05/2024 23:38, Marton Balint wrote:
>>
>>
>> On Wed, 29 May 2024, Jan Ekström wrote:
>>
>>> On Mon, May 27, 2024 at 10:31 PM Marton Balint <cus at passwd.hu> wrote:
>>>>
>>>>
>>>>
>>>> On Mon, 27 May 2024, Jan Ekström wrote:
>>>>
>>>> > On Mon, May 27, 2024 at 12:37 AM Lynne via ffmpeg-devel
>>>> > <ffmpeg-devel at ffmpeg.org> wrote:
>>>> >>
>>>> >> apichanges will be updated upon merging, as well as a version bump.
>>>> >> ---
>>>> >> libavutil/channel_layout.c | 4 ++++
>>>> >> libavutil/channel_layout.h | 8 ++++++++
>>>> >> 2 files changed, 12 insertions(+)
>>>> >>
>>>> >> diff --git a/libavutil/channel_layout.c b/libavutil/channel_layout.c
>>>> >> index 98839b7250..2d6963b6df 100644
>>>> >> --- a/libavutil/channel_layout.c
>>>> >> +++ b/libavutil/channel_layout.c
>>>> >> @@ -75,6 +75,10 @@ static const struct channel_name
>>>> channel_names[] = {
>>>> >> [AV_CHAN_BOTTOM_FRONT_CENTER ] = { "BFC", "bottom
>>>> front center" },
>>>> >> [AV_CHAN_BOTTOM_FRONT_LEFT ] = { "BFL", "bottom
>>>> front left" },
>>>> >> [AV_CHAN_BOTTOM_FRONT_RIGHT ] = { "BFR", "bottom
>>>> front right" },
>>>> >> + [AV_CHAN_SIDE_SURROUND_LEFT ] = { "SSL", "side
>>>> surround left" },
>>>> >> + [AV_CHAN_SIDE_SURROUND_RIGHT ] = { "SSR", "side
>>>> surround right" },
>>>> >
>>>> > Just as a note, if you want to follow the ISO 23091-3 naming for these
>>>> > (BS.2051/IEC 62574 calls them just SiL, SiR), then it would be Lss,
>>>> > Rss ("Left side surround", "Right side surround"). Just a word order
>>>> > thing. This would then also match the Apple identifier,
>>>> > `kAudioChannelLabel_LeftSideSurround`.
>>>>
>>>> I guess the idea was to be consistent with existing FFMPEG channel word
>>>> order and short names. I kind of prefer that approach, because the other
>>>> channel names will not follow ISO 23091 anyway, so there is not much
>>>> benefit in being consistent with ISO 23091 for these 4 newly added
>>>> channels only, at the cost of not being consistent with existing ffmpeg
>>>> way... So I think the patch is fine as is.
>>>>
>>>
>>> If we explicitly go for a non-standardized names then it probably is
>>> an even better idea to add "///< " comments marking what we actually
>>> based these new enum entries on with regards to matching ISO 23091 and
>>> IEC 62574 / BS.2051 identifiers (even if we leave out the approximate
>>> azimuth and vertical degrees out of it, as that is a whole separate
>>> mess).
>>>
>>> I am planning on attempting to add such for at least some of the enum
>>> values we have for the existing ones, but for these new ones we should
>>> have these from the get-go.
>>
>> Sure, OK, I have no problem with adding comments about the origins of the
>> channel. And we should ask MediaArea to add a new column to their table,
>> the FFmpeg channel names :)
>>
>> Thanks,
>> Marton
>>
>>>
>>> Jan
>>>
>>>> Regards,
>>>> Marton
>>>>
>>>>
>>>> >
>>>> > Also we might want to start adding comments into the enum like "///<
>>>> > +90 degrees, Lss, SiL" to note the matching ISO 23091-3 and BS.2051
>>>> > identifiers that this channel is supposed to match?
>>>> >
>>>> >> + [AV_CHAN_TOP_SURROUND_LEFT ] = { "TTL", "top
>>>> surround left" },
>>>> >> + [AV_CHAN_TOP_SURROUND_RIGHT ] = { "TTR", "top
>>>> surround right" },
>>>> >> };
>>>> >
>>>> > So here the mapping seems to be that ISO 23091-3 calls these Lvs and
>>>> > Rvs (Left, Right vertical surround) and they are mapped against
>>>> > BS.2051/IEC 62574 TpLS and TpRS - except BS.2051 doesn't seem to
>>>> > mention these two, it contains as U+110 Ltr and Rtr. At this point it
>>>> > would be nice if someone actually has access to IEC 62574 :D .
>>>> >
>>>> > as for the enum comment, maybe "///< +110 degrees, +30 degrees
>>>> > vertical, Lvs, TpLS" ?
>>>> >
>>>> > references:
>>>> >
>>>> > BS.2051
>>>> https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.2051-3-202205-I!!PDF-E.pdf
>>>> > ISO 23091-3:
>>>> ISO-IECJTC1-SC29_N19613_Text_of_ISOIEC_23091-3CDAmd1_Information_technology__Coding-independent_code_points__Part_3_Audio__AMENDMENT_1_Headphone_support_SC_29WG_06_N_00045.zip
>>>> > (used to be public on N-documents, but now that site always requires a
>>>> > login :< )
>>>> > ISO 23003-3: USAC spec - contains the same listing as in 23091-3.
>>>> > Some D document from 2021 on setting up audio setups that has a table
>>>> > that attempts to match their names to various actual specifications
>>>> > (including IEC 62574 where it mentions TpLS and TpRS):
>>>> >
>>>> https://www.audiosciencereview.com/forum/index.php?attachments/dolby-atmos-home-entertainment-studio-technical-guidelines-2021-05-pdf.246631/
>>>> > MediaInfo's attempt at matching the different specs:
>>>> > https://mediaarea.net/AudioChannelLayout
>>>> >
>>>> > Jan
>>>> > _______________________________________________
>>>> > ffmpeg-devel mailing list
>>>> > ffmpeg-devel at ffmpeg.org
>>>> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>> >
>>>> > To unsubscribe, visit link above, or email
>>>> > ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>>>> _______________________________________________
>>>> ffmpeg-devel mailing list
>>>> ffmpeg-devel at ffmpeg.org
>>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>>
>>>> To unsubscribe, visit link above, or email
>>>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel at ffmpeg.org
>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>
>>> To unsubscribe, visit link above, or email
>>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>
> So which names should I resubmit with?
>
As far as I understand the current names are fine, you only need to add a
comments to the channel names referencing the origin channel names. E.g:
AV_CHAN_SIDE_SURROUND_LEFT, ///< +90 degrees, Lss, SiL
AV_CHAN_SIDE_SURROUND_RIGHT, ///< -90 degrees, Rss, SiR
AV_CHAN_TOP_SURROUND_LEFT, ///< +110 degrees, Lvs, TpLS
AV_CHAN_TOP_SURROUND_RIGHT, ///< -110 degrees, Rvs, TpRS
Regards,
Marton
More information about the ffmpeg-devel
mailing list