[Bug 691370] caps intersection is broken for channel-layout / bitmasks

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sat Feb 28 17:18:12 PST 2015


--- Comment #13 from Ilya Konstantinov <ilya.konstantinov at gmail.com> ---
To clarify, my concern is about the caps that osxaudiosink should return. I
understand a fake 64-channel device might be a non-issue. Here's a real-life
scenario with a 5.1 Audio Unit. The resulting osxaudiosink caps will be:

audio/x-raw, format=(string)F32LE, layout=(string)interleaved, rate=(int)96000,
channels=(int)5, channel-mask=(bitmask)0x000000000000003e;

audio/x-raw, format=(string){ S8, U8, S16LE, S16BE, U16LE, U16BE, S24_32LE,
S24_32BE, U24_32LE, U24_32BE, S32LE, S32BE, U32LE, U32BE, S24LE, S24BE, U24LE,
U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, F32LE, F32BE,
F64LE, F64BE }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ],
channels=(int)[ 1, 5 ], channel-mask=(bitmask)0x000000000000003e

(First preferred caps, then template caps.)

In the template caps, I'm allowing [ 1, 5] channels, and I want channel-mask to
indicate that I'm willing to take any of the channels in a 5.1 configuration.
However, unless I want to add structures of all possible subsets of
channel-mask, it's impossible.

Another option is to omit channel-mask entirely (from the template-caps), and
fail gst_osx_audio_ring_buffer_acquire. This is similar to the check done in
gst_audio_get_channel_reorder_map. As much as I could understand, that's my
only option at the moment.

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