Alsasink not playing BE PCM in LE Machine

vijaypalaniswamy vijay.palaniswamy at
Thu May 18 05:33:27 UTC 2017

I tried to play BE PCM in LE machine.
But alsasink is not list the BE format even if Alsa deivce has the
capability to play BE PCM.

alsa gstalsasink.c:330:gst_alsasink_getcaps:<alsasink0> returning caps
audio/x-raw, format=(string){ S8, U8, S16LE, U16LE, S24_32LE, U24_32LE,
S32LE, U32LE, S24LE, U24LE, F32LE, F64LE }, layout=(string)interleaved,
rate=(int)[ 4000, 2147483647 ], channels=(int)2,

By disabling the check for endianess in file "ext/alsa/gstalsa.c" function
Listing both BE & LE formats

- if (GST_AUDIO_FORMAT_INFO_ENDIANNESS (finfo) != endianness
-    return FALSE;

GST_CAPS gstutils.c:2847:gst_pad_query_caps:<alsasink0:sink> query returned
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, 2147483647 ]; audio/x-ac3, framed=(boolean)true;
audio/x-eac3, framed=(boolean)true; audio/x-dts, framed=(boolean)true,
block-size=(int){ 512, 1024, 2048 }; audio/mpeg, mpegversion=(int)1,
mpegaudioversion=(int)[ 1, 2 ], parsed=(boolean)true

Alsasink is listing only the native endianess Format.

Is it expected to have only the native endianess formats?


View this message in context:
Sent from the GStreamer-devel mailing list archive at

More information about the gstreamer-devel mailing list