[Bug 766707] alsasrc format=S16BE results in Internal data flow error

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Jun 28 11:41:14 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=766707

Tim-Philipp Müller <t.i.m at zen.co.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |t.i.m at zen.co.uk

--- Comment #11 from Tim-Philipp Müller <t.i.m at zen.co.uk> ---
As Sebastian said, gst-inspect-1.0 shows all formats that alsasrc can
theoretically support, the formats actually support by a specific device will
depend on the driver and hardware and be a subset of what you see in
gst-inspect-1.0.

This is what is detected as supported formats for the "default" device:

gstalsasrc.c:320:gst_alsasrc_getcaps:<alsasrc0> returning caps
audio/x-raw, format=(string){ S16LE, S32LE }, layout=(string)interleaved,
rate=(int)[ 4000, 192000 ], channels=(int)2,
channel-mask=(bitmask)0x0000000000000003;
audio/x-raw, format=(string){ S16LE, S32LE }, layout=(string)interleaved,
rate=(int)[ 4000, 192000 ], channels=(int)1;

(snipped 3-6 channels structures)

Now I don't know what the "default" device maps to exactly, but this shows that
ALSA only advertises little endian formats to us.

You can try different devices that will do similar things like arecord by going
through internal alsa conversion layers. Something like device=plughw:XYZ might
do the trick (see arecord -L for list).

On my laptop this shows BE formats:

  GST_DEBUG=*alsa*:6 gst-launch-1.0 alsasrc device=plughw:CARD=PCH,DEV=0
num-buffers=1 ! fakesink 2>&1 | grep getcaps

while

  GST_DEBUG=*alsa*:6 gst-launch-1.0 alsasrc device=default num-buffers=1 !
fakesink 2>&1 | grep getcaps

does not.

-- 
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