[Bug 727757] atdec: Fails to decode multichannel streams
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Thu Jul 3 01:22:03 PDT 2014
https://bugzilla.gnome.org/show_bug.cgi?id=727757
GStreamer | gst-plugins-bad | git
Sebastian Dröge (slomo) <slomo> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #279806|none |needs-work
status| |
--- Comment #11 from Sebastian Dröge (slomo) <slomo at coaxion.net> 2014-07-03 08:21:59 UTC ---
Review of attachment 279806:
--> (https://bugzilla.gnome.org/review?bug=727757&attachment=279806)
So let's summarize these change. What this means is that we check if downstream
wants a specific channel layout. If it does we tell AT about that and it will
produce output with exactly that channel layout in that order? So if we have a
2 channel MP3 but downstream wants 5.1, AT will upmix for us?
::: sys/applemedia/atdec.c
@@ +411,3 @@
+ if (gst_structure_get (s, "channel-mask", GST_TYPE_BITMASK,
+ &channel_mask, NULL)) {
+ gst_audio_channel_positions_from_mask (channels, channel_mask, pos);
The channel mask can have more bits set than the number of channels, even after
fixating the caps. That's a dependency between the channels and channel-mask
fields we currently can't express with our caps.
You have to check for that here, and just drop some bits (ideally on the
correct side, don't drop front left and front right but the less important
channels)
@@ +413,3 @@
+ gst_audio_channel_positions_from_mask (channels, channel_mask, pos);
+ } else {
+ memset (pos, 0, sizeof (GstAudioChannelPosition) * 64);
Note that undefined channel positions is GST_CHANNEL_POSITION_NONE and not 0
--
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