[Bug 737127] interleave: interleaving does not respect the channel positions default order

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Sep 23 05:56:20 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=737127
  GStreamer | gst-plugins-good | git

--- Comment #1 from Antonio Ospite <ao2 at ao2.it> 2014-09-23 12:56:16 UTC ---
Created an attachment (id=286870)
 View: https://bugzilla.gnome.org/attachment.cgi?id=286870
 Review: https://bugzilla.gnome.org/review?bug=737127&attachment=286870

interleave samples following the Default Channel Ordering

In order to have a full mapping between channel positions in the audio stream
and loudspeaker positions, the channel-mask alone is not enough: the channels
must be interleaved following some Default Channel Ordering as mentioned in the
WAVEFORMATEXTENSIBLE[1] specification.  

As a Default Channel Ordering we can use the one implied by
GstAudioChannelPosition which follows the ordering defined in SMPTE
2036-2-2008[2].

NOTE that the relative order in the Top Layer is not exactly the same as the
one from the WAVEFORMATEXTENSIBLE[1] specification, is it safe to assume that
users using so may channels are already aware of such discrepancies.

[1]
http://msdn.microsoft.com/en-us/library/windows/hardware/dn653308%28v=vs.85%29.aspx
[2] http://www.itu.int/dms_pub/itu-r/opb/rep/R-REP-BS.2159-2-2011-PDF-E.pdf

I am attaching a proof of the concept of what I mean.

In the final patch I can move the ordering map creation in a dedicated
function, and maybe use qsort instead of the naive bubblesort used for now.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list