as noticed in other threads, squeezeplay outputs always in 16bit in linux.
I made a little change in squeezeplay/src/audio/decode/decode_alsa.c to make it output 24bit

I changed the line:
sample_size = luaL_optinteger(L, -1, 16);
sample_size = luaL_optinteger(L, -1, 24);

And now the output is always S24_LE.

What happens to 16bit data? It sounds ok so I think that is padded to 24 bit by squeezeplay or portaudio, is that right?
Why the sample size is "fixed" to 16 bit?

Thank you