[Matroska-devel] [Cellar] Channel Positions for Multichannel LPCM Track Inside Matroska

Adrian Wadey via Matroska-devel matroska-devel at lists.matroska.org
Wed May 18 10:21:57 CEST 2016


> -----Original Message-----
> From: Matroska-devel [mailto:matroska-devel-bounces at lists.matroska.org] On
> Behalf Of Steve Lhomme via Matroska-devel
> Sent: 18 May 2016 07:39
> To: Nithin Mathew Kurien <nithinmkurien at gmail.com>
> Cc: Discussion about the current and future development of Matroska
> <matroska-devel at lists.matroska.org>; cellar at ietf.org
> Subject: Re: [Matroska-devel] [Cellar] Channel Positions for Multichannel
> LPCM Track Inside Matroska
> 
> 2016-05-10 11:17 GMT+02:00 Nithin Mathew Kurien <nithinmkurien at gmail.com>:
> > Hi,
> >
> > On Sun, May 8, 2016 at 5:35 PM, Steve Lhomme <slhomme at matroska.org>
> wrote:
> >>
> >> 2016-04-24 17:39 GMT+02:00 Nithin Mathew Kurien
> <nithinmkurien at gmail.com>:
> >> > Hi,
> >> >
> >> > Currently the specification for storing a multichannel LPCM track
> >> > (CodecID
> >> > A_PCM/INT/LIT) inside a Matroska file [1, 2], does not specify a
> >> > way to indicate the channel positions of the track. Due to this,
> >> > players find it difficult to map the channels to the correct
> >> > speaker positions when playing such a track. MakeMKV employs a
> >> > workaround for this problem. It stores the track under the CodecID
> >> > A_MS/ACM, along with a WAVEFORMATEXTENSIBLE structure in
> >> > CodecPrivate. This structure contains a field called dwChannelMask
> >> > which specifies the channel positions [3]. This is identical to the
> >> > way LPCM is stored inside AVI files. The problem with this approach
> >> > is that most players do not recognise the CodecID A_MS/ACM, except
> >> > for a few open-source players like Kodi [4].
> >>
> >> We used to have a field for that but it was never used AFAIK
> >> https://matroska.org/technical/specs/index.html#ChannelPositions
> >>
> >> This is how it used to be, describing each speaker position with an
> >> angle. I don't know there is a standard way to express this. I'd
> >> assume the distance to the center should play a role too.
> >>
> >> https://web.archive.org/web/20071211091532/http://www.matroska.org/te
> >> chnical/specs/channelposition/index.html
> >
> >
> > This notation is appropriate for speaker positions in the horizontal
> > plane, but there is a problem. The LFE channel is omni-directional; so
> > how do we denote whether the LFE channel is present or not, in this
> notation?
> 
> I agree, it's not sufficient. The idea was that it would be universal
> enough to cover mapping from all existing formats (which should be our
> goal). But missing LFE is a problem. Also you're right, there could be
> speakers up and down. So maybe a spherical position (2 angles ?), the type
> of frequency carried (LFE or all or all except LFE) and maybe an optional
> distance ?

Also consider adding optional velocity as systems like Atmos and TiMax move 
sounds around independently of speaker location.

> 
> >> > In the case of a FLAC track (inside either a raw .FLAC file or a
> >> > .MKA file), we can specify an optional
> >> > WAVEFORMATEXTENSIBLE_CHANNEL_MASK tag [5].
> >> > Could
> >> > a similar solution be implemented for LPCM inside Matroska too?
> >> >
> >> > On a related note, the ffmpeg documentation [6] specifies
> >> > additional channel positions which are not found in the Microsoft
> >> > documentation [3], like Wide Left and Wide Right speakers. Are
> >> > these speaker positions recognised by players when reading WAV
> >> > files?
> >>
> >> VLC currently handles 'only' 9 speaker positions out of the 18 MS ones.
> >>
> >> > [1] https://matroska.org/technical/specs/codecid/index.html
> >> > [2] http://haali.su/mkv/codecs.pdf
> >> > [3]
> >> >
> >> > https://msdn.microsoft.com/en-us/library/windows/hardware/dn653308(
> >> > v=vs.85).aspx [4]
> >> > http://www.makemkv.com/forum2/viewtopic.php?f=8&t=2530
> >> > [5]
> >> > https://sourceforge.net/p/mediainfo/discussion/297609/thread/164b4f
> >> > b3/ [6]
> >> > https://ffmpeg.org/doxygen/2.2/channel__layout_8h_source.html
> >> >
> >> > Thanks and regards,
> >> > Nithin
> >> >
> >> > _______________________________________________
> >> > Cellar mailing list
> >> > Cellar at ietf.org
> >> > https://www.ietf.org/mailman/listinfo/cellar
> >> >
> >>
> >>
> >>
> >> --
> >> Steve Lhomme
> >> Matroska association Chairman
> >
> >
> > Thanks and regards,
> > Nithin
> 
> 
> 
> --
> Steve Lhomme
> Matroska association Chairman
> _______________________________________________
> Matroska-devel mailing list
> Matroska-devel at lists.matroska.org
> https://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel
> Read Matroska-Devel on GMane:
> http://dir.gmane.org/gmane.comp.multimedia.matroska.devel


More information about the Matroska-devel mailing list