I'm running CentOS 7 with pulseaudio. Due to a bug in my monitor firmware, I must send audio over the displayport audio as 24 or 32 bit (not 16bit which causes audio failure on the monitor).

How can I tell what audio resolution is currently in use by Linux? And how can I force it to 24/32 bit?


Can't think of a simple way to do it.

I'd try to use hw or slave ALSA plugin for force the format to 24/32 bit. Test that first directly with ALSA, with Pulseaudio stopped (pasuspender etc., aplay -D). Then use the module-alsa-sink Pulseaudio module to create a Pulseaudio sink for it (pacmd load-module). You may have to modify the module-udev-detect call in /etc/pulse to ignore the old ALSA hardware, if this doesn't happen automatically.

(Very general advice, I'd have to try it out myself for a step-by-step description).

pacmd list-sinks and pacmd list-sink-inputs have a sample spec field that designates bitwidth used, but I am not sure how accurate that is given the various conversions at various places involved.


And how can I force it to 24/32 bit?

In /etc/pulse/daemon.conf set

default-sample-format = s24ne

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.