Re: How to proper handle surround sound setups

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Christian F.K. Schaller wrote:
> We have a long discussion today in the GStreamer community about how to
> correctly handle surround sound setups.
> 
> The ideal solution we are looking for is a situation where the user do
> not need to configure anything, things just work in an optimal fashion
> depending on their hardware. We are not sure however what exactly is the
> status of a lot of things both in theory and in practice. So I am
> sending out this email to you.
> 
> GStreamer currently queries the alsadevice for its capabilities and
> tries to negotiate an optimal path through its playback pipeline with a
> little quality loss as possible.
> 
> This means that if the soundcard reports supporting surround sound and
> you are playing a multichannel file then GStreamer will output surround
> sound by default in most cases.
> 
> The discussion started as it seems my ICH4 laptop mistakenly reporting
> supporting surround sound on the PCM device, while its only supports
> surround sound indirectly through its s/pdif output(is this a known
> bug?).

Many laptops do weird things with their sound chips.  It's possible that
yours has a 5.1-capable codec, but has not connected all outputs.

> I thus started arguing that we should default to stereo due to this and
> only do surround sound if the users selects it on the application level
> as even if the user truly has a surround capable system they don't
> necessarily have more than two stereo speakers connected.

Yes, that can be the case.

> The debate then turned to whether connected speakers connected can be
> autodetected or not. Some people reported that their Mac's and Vista
> systems did detect at least some speaker detection, but I was not able
> to clarify if the systems could actually tell you that you have for
> instance LF, center and LR + a woofer connected and so on.

Many modern AC'97 and HDA codecs could detect whether speakers are
connected (or if a shared jack is connected to a mic or a line-out), but
this is only usable with vendor-specific drivers because every
motherboard vendor uses different routings for the output and detection
pins.

ALSA currently dosn't bother to try to implement this.

> The other alternative we are looking at which might simplify things for
> us is to use the virtual devices which expose the different surround
> scenarios like using for instance:
> 
> defaults.pcm.surround51.device for surround51 output.

The device name for this is "surround51" (but it's better to use
"plug:surround51" because this virtual device doesn't have the sample
format converter that "default" has enabled by default).

> In this scenario we use the stereo device by default which would then
> only report back support for stereo and thus negotiate correctly to
> stereo with all elements.

ALSA's "default" device usually reports that it supports any number of
channels.

You should use "default" for stereo streams and "plug:surround51" for
surround streams.

> Users can then through the applications choose the 5.1 audio device at
> which point we would change to the 5.1 device like the one above. Our
> worry the by the playback autoplugger which as you know is rarely the
> casere though is what happens with stereo output as we of course do
> not want that upmixed.

Doesn't the part of GStreamer that chooses the device name know the
number of channels that the stream will have?


Regards,
Clemens

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux