I'm having a hard time understand when ALSA does sample rate and format conversion, and when it doesn't.
When I issue the following command:
mplayer -ao alsa filename.mov -v
I get this output:
Building audio filter chain for 48000Hz/2ch/s24le -> 0Hz/0ch/s8... [libaf] Adding filter dummy [dummy] Was reinitialized: 48000Hz/2ch/s24le [dummy] Was reinitialized: 48000Hz/2ch/s24le alsa-init: requested format: 48000 Hz, 2 channels, 11 alsa-init: using ALSA 1.0.8 alsa-init: setup for 1/2 channel(s) alsa-init: using device default alsa-init: pcm opend in blocking mode alsa-init: format s24le are not supported by hardware, trying default alsa-lib: pcm_plug.c:729:(snd_pcm_plug_hw_refine_schange) Unable to find an usable access for 'default' alsa-init: unable to set format: Invalid argument
Sure enough, my device can't handle s24le. It can only handle s16be.
I was under the impression that ALSA can do format and sample rate conversion if necessary, but I guess that's not always the case. I know ALSA has a bunch of plug-ins for that, but I guess they're not used by default.
What do I need to do to tell ALSA to convert s24le to s16be?