Currently it would seem that one has to choose between stereo or surround output, e.g. an hdmi 2.0 sink or an hdmi 5.1 sink.
This means that either multichannel content such as DVD-A, movies or other video content will be downmixed to stereo or that stereo content will be outputted as multichannel (with several 'silent' channels or upmixed, depending on the 'enable-remixing' setting). The behaviour prevents receivers from upmixing the signal to surround themselves with arguably better algorithms such as DPL2, Neo:6 or Logic-7.
Therefore, I would like to request a feature to have detection for the max number of channels in the active source(s) and use the appropriate sink in the right mode. This will allow audio to be passed through 'natively' and leave the processing up to the receiver.
Technically 'passthrough' modes are quite different from this and will be supported in the 1.0 version of PA. This means that you can keep your receiver set in a stereo mode, but when you have content that the receiver can decode natively (e.g. ac3) then it will be passed verbatim to the receiver. This will sadly mean that only that single stream can be played, but that's the trade-off for passthrough!
However, when dealing with analog content, it may make sense to automatically pick the right profile. However, this is a very complicated thing. e.g. on some h/w enabling 5.1 output will disable input. There also is simply not the metadata available to do this just now. We do not know from looking at profiles how many channels there are on the sink or sinks created by activating that profile.
So there are both conceptual and logistical problems with this approach. I think it might make more sense to simply allow disabling of upmixing when attaching at 2ch stream to a 6ch sink. That way you'd keep things in 6ch profile all the time but let the receiver do the upmixing itself. WDYT?
I wansn't really talking about passthrough, although that would in some cases indeed solve, or rather, work around the problem. Multichannel FLAC albums still won't play, however.
The solution you propose is exactly what I need: be able to send 2 channel content as a 2 channel stream to a >2 channel sink.
Would be nice if we could only deactivate up-mixing of stereo sources.
Even though doing "enable-remixing=no" disables stereo up-mixing, it will also disable many wanted features such as mono up-mixing and remapping of strange channel maps like "front-left-of-center" and "front-right-of-center" to something meaningful for your 5.1/7.1 setup.
(In reply to comment #3)
> Would be nice if we could only deactivate up-mixing of stereo sources.
> Even though doing "enable-remixing=no" disables stereo up-mixing, it will
> also disable many wanted features such as mono up-mixing and remapping of
> strange channel maps like "front-left-of-center" and "front-right-of-center"
> to something meaningful for your 5.1/7.1 setup.
I would appreciate something like this, as I don't want upmixing of stereo content when I'm using my 5.1 system but do want both downmixing of 5.1 content and upmixing of mono content when I use headphones.
It seems to me that an ideal solution would only downmix or upmix any channels in a source which do not correspond directly to output channels. For instance, mono sources would only be upmixed when there is no center channel, 7.1 content would have its rear channels downmixed into the surround channels for a 5.1 output, 5.1 would be downmixed for a stereo output, but stereo would not be remixed at all for anything but a mono output.
In other words, map input channels directly to output channels whenever there is a reasonable match, but downmix to ensure all channels are heard and upmix to maintain positioning (e.g. of mono) where necessary.
It's almost as if the profile selection feature should allow one to select more than one profile (and then PulseAudio should select from the most appropriate one), provided that all profiles are compatible with each other.
This doesn't solve the problem of automatic profile switching, but using remixing-use-all-sink-channels = true and keeping a multi-channel profile enabled should partially address the problem?
-- GitLab Migration Automatic Message --
This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.
You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/117.