Re: Bug: Hardware that does not support s32le - sndiod -dd shows s16le

From: Alexandre Ratchov <alex_at_caoua.org>
Date: Fri, 22 Sep 2017 11:57:00 +0200
On Wed, Sep 20, 2017 at 03:18:46PM +0000, Edward Wandasiewicz wrote:
>
> mplayer shows
> 
> AO: [alsa] 48000Hz 2ch s32le (4 bytes per sample)
> [Mixer] No hardware mixing, inserting volume filter.
> 
> but the output from
> 
> $ sndiod -dd -f rsnd/1 shows
> 
> snd0: 48000Hz, s16le, play 0:1, rec 0:1, 8 blocks of 1024 frames
> aucat0: 48000Hz, s16le, play 0:1, 9 blocks of 1024 frames
> snd0: device started
> 
> with
> 
> $ sudo ps -ax | grep aucat
>  1690 pts/0    S+     0:00 aucat -r 48000 -e s32le -c 0:1 -f snd/0 -i -
> 
> Question: Should the output of sndiod -dd show a message indicating
> s32le not supported by hardware, changing to s16le
> 

sndiod uses whatever the hardware supports regardless what the client
asks for. By default it does all the processing in 16-bits, so this is
what it tries to use first.

Then, no matter what the clients ask for, it will convert everything
to it's native format and sample-rate.

> In both instances, even though the debug message shows s16le, the
> stream output sounds different from both .asoundrc config files, and I
> would expect them both to sound the same, as they both attempt to use
> s32le.

If the '-e s32le' is missing in the first case, then aucat will
misinterpret the data and play garbage. This would explain the
difference.
Received on Fri Sep 22 2017 - 11:57:00 CEST

This archive was generated by hypermail 2.3.0 : Tue Aug 09 2022 - 16:23:47 CEST