[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