|
Hi,
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.
Log:
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, channel-mask=(bitmask)0x0000000000000003;
By disabling the check for endianess in file "ext/alsa/gstalsa.c" function "format_supported"
Listing both BE & LE formats
- if (GST_AUDIO_FORMAT_INFO_ENDIANNESS (finfo) != endianness
- && GST_AUDIO_FORMAT_INFO_ENDIANNESS (finfo) != 0)
- return FALSE;
Log:
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?
Thankyou
|