volume settings and keeping bits

Andrew Gaydenko a at gaydenko.com
Thu Jul 28 11:02:51 PDT 2011

For music playing back I use a player which uses gstreamer as an engine. The player uses an appropriate gst API for setting (software) volume level. Almost all content in my music collection is 16 bit depth. gst forwards a stream to hdsp alsa driver, and then card's spdif out is used to transfer a stream to external DAC, which is set to accept 24 bit stream in accordance with card's bit depth format. DAC chip itself has 20 bit word length (PCM63).

The question is, does gst attenuate samples after converting them into format with more rather 16 bit? The thing is, I'd be happy to know I have those 24 db (at least theoretically, 20 bit DAC - 16 bit content = 4 bit = 24 db) at which I can reduce level in a player without loosing bits.

In other words, which chain is in use

16bit - 24bit - (attenuate up to -24db) - (to 20 bit in DAC), or
16bit - (attenuate up to -24db) - 24bit - (to 20 bit in DAC)


24bit is shown symbolically, probably output format is 32bit in accordance with 'format S32_LE' in alsa config.

More information about the gstreamer-devel mailing list