[FFmpeg-devel] [PATCH 001/244] Add a new channel layout API
Anton Khirnov
anton at khirnov.net
Wed Feb 19 14:56:06 EET 2020
Quoting Marton Balint (2020-02-18 23:54:56)
>
>
> On Tue, 18 Feb 2020, Anton Khirnov wrote:
>
> > Quoting Marton Balint (2020-02-05 19:55:24)
> >>
> >>
> >> On Tue, 7 Jan 2020, Anton Khirnov wrote:
> >>
> >> > Quoting Nicolas George (2019-12-31 16:17:49)
> >> >> Anton Khirnov (12019-12-29):
> >>
> >> >> > I do not agree. Duplicated channels in a layout are expected to be a
> >> >> > fringe thing and how you handle them highly depends on the specific use
> >> >> > case. I expect a typical caller will want to disregard that possibility
> >> >> > and just take the first channel of each semantics.
> >> >> > So I do not believe a dedicated function for this makes sense. We could
> >> >> > always add something later though, if it turns out to be necessary.
> >> >>
> >> >> I think you are making a mistake. I think that as soon as it will be
> >> >> technically possible, we will see cases with duplicated channels. And I
> >> >> know that some filters will do exactly that as soon as they are ported
> >> >> to this new API.
> >>
> >> Quicktime also allows duplicated channels in a single audio track, this is
> >> unfortunately a commonly used feature. So if a new API is introduced to
> >> overcome the limitations of the existing one, supporting this should be
> >> seriously considered.
> >
> > Can you provide a link to more information about this? I'd like to know
> > the specifics about how it's handled by quicktime. And do note that this
> > API does have some ammount of support for duplicated channels (though I
> > still consider streams containing them to be broken).
>
> The 'chan' atom can hold this information:
>
> https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html#//apple_ref/doc/uid/TP40000939-CH205-SW53
>
> It holds an AudioChannelLayout structure as defined in CoreAudioTypes.h:
>
> https://developer.apple.com/documentation/coreaudiotypes/audiochannellayout
> https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10.15.sdk/System/Library/Frameworks/CoreAudioTypes.framework/Versions/A/Headers/CoreAudioBaseTypes.h#L1353
>
> Which can hold an AudioChannelDescription array of channel descriptions
> for each channel:
>
> https://developer.apple.com/documentation/coreaudiotypes/audiochannellayout
> https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10.15.sdk/System/Library/Frameworks/CoreAudioTypes.framework/Versions/A/Headers/CoreAudioBaseTypes.h#L1335
>
> Which can signal the same AudioChannelLabel for every channel in a track
> if needed.
Thanks for the links. As far as I can tell this can be mapped to the
proposed API just fine (except for signalling precise speaker
coordinates, which I don't think anything uses).
--
Anton Khirnov
More information about the ffmpeg-devel
mailing list