1
votes

Does anyone know, if this is the default PCM-format on the most Android (ARM) devices?

2 channels
16 bit
Little Endian

The underlying "tinyalsa" can handle

SNDRV_PCM_FORMAT_S32_LE
SNDRV_PCM_FORMAT_S8
SNDRV_PCM_FORMAT_S24_LE
SNDRV_PCM_FORMAT_S16_LE

but I cannot think of that Android uses different configurations (?).

Little Endian is sure on ARM-devices.

And what about the 2 channels? I found no way to get mono-audio played, so I think it's always converted into 2 channels.

Are there devices with multichannel-support?

I'm pretty new to this stuff.

Thanks in advance for your help!

1

1 Answers

1
votes

In general I'd say 16 bit little endian, yes. The number of channels depend on what the application requests. Though some devices will run some / all output threads in a stereo configuration, similar to what you found in your tests. Typically this will be mixed back to mono by the analogue codec or DSP if you're outputting to a mono sink (e.g. many devices only have a single loudspeaker).

The underlying "tinyalsa" can handle

As far as multichannel support goes, it would be down-mixed to stereo if written to a mono/stereo sink (i.e. on the internal loudspeaker or a 3.5mm headset), possibly with the help of a virtualizer effect that creates a fake sense of surround. True surround sound would be limited to sinks that support it, i.e. HDMI/MHL, and possibly USB. It should be noted that some devices down-mix to stereo even in the HDMI/MHL case.