17.08.2014 10:50, Tanu Kaskinen wrote:
On Fri, 2014-08-08 at 16:33 +0600, Alexander E. Patrakov wrote:
Hello.

[Note: the whole e-mail is purely theoretical. I still don't have any
surround-sound system in my room. A salesman told me that I should buy
5.1 speakers, not 7.1, because the TV is centered on the long side of
the room, and thus not enough space exists behind the listening area. I
agree with this argument - so will not be able to test what I am talking
about anyway.]

I tried to play surround-sound files using various players and look how
PulseAudio remixes things, and found some strange results.

First, let's start with a simple third-party 5.1 AC3 file:

http://distribution.bbb3d.renderfarming.net/audio/bbb3d_sunflower_soundtrack_surround.ac3

If you play it using ffplay, vlc, or with anything gstreamer-based, this
will yield the following channel map:

front-left,front-right,front-center,lfe,rear-left,rear-right (Surround 5.1).

If you use "mpv --channels 6", then it will yield this instead:

front-left,front-right,front-center,lfe,side-left,side-right

Now let's see what happens in PulseAudio when a user has 5.1 speakers.

With ffplay, vlc, and anything gstreamer-based, each channel's sound
comes to the correct speaker. With mpv, rear-left and rear-right
channels get remixed from other channels (if remixing is enabled), which
is bad. If remixing is disabled, then rear speakers stay silent, and the
sound in the corresponding channels gets lost. Obviously, the ffplay
result is correct here.

It's not obvious to me. It appears that there are different opinions
about how to assign channels in 5.1 and 7.1 setups. According to
http://en.wikipedia.org/wiki/Surround_sound there are two 5.1
"standards" and three 7.1 "standards". Dolby thinks that 5.1 should use
the side channels, and AC-3 is a Dolby format, so to me it sounds more
likely that mpv is correct here.

I think that this non-obviousness and other "disagreements" come from the fact that you used Dolby "standard" in your e-mail as a source of truth, while I used the existing (inconsistent) PulseAudio conventions.

Given that, in the end, you propose a sensible solution that achieves what's needed, I see no point in discussing the "disagreements" further. They don't really exist.

How should PulseAudio deal with this nomenclature mess?

To make audio with the Dolby channel arrangement work better, we could
change the default device channel map to use the side channels for 5.1,
but that will then be worse for audio that uses a non-Dolby channel
arrangement. I have no idea what's the most common "standard".

Perhaps we should add special casing to the remapping code so that if
the source channel map is 5.1 with rear channels and the target channel
map is 5.1 with side channels or vice versa, we don't do any remixing,
but copy rear to side or vice versa.

If consistent behaviour for 5.1 -> 7.1 remapping is desired, we could
always feed the rear or side channels of the source to the side channels
of the target (or to the rear channels of the target, if that's how the
user prefers to have it).

+1 to all of the above.

--
Alexander E. Patrakov
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to