[pulseaudio-discuss] Conditional up/down mixing

Colin Guthrie gmane at colin.guthr.ie
Mon Jan 4 16:57:40 PST 2010


'Twas brillig, and Lennart Poettering at 04/01/10 22:48 did gyre and gimble:
> On Mon, 28.12.09 14:49, Colin Guthrie (gmane at colin.guthr.ie) wrote:
> 
>> Hi,
>>
>> I could have sworn this was asked about on the ML recently but perhaps
>> it was just IRC as I cannot for the life of me find the message :s
>>
>> Anyway, someone was asking about their 5.1 capable card and how they
>> would prefer that stereo streams were not upmixed as their sound
>> receiver does a better job of upmixing (e.g. Dolby ProLogic or similar
>> gubbins).
>>
>> I was thinking about this today and I think this is a pretty common
>> setup. I think I may actually have need to do that in my own setup now
>> I've finally gotten around to configuring it up in a vaguely working way!
>>
>> So what I was thinking was some way to defining the mixing profile (via
>> simple module argument) that simply lists (comma separated) the channel
>> counts that are permitted for remixing.
>>
>> The remix = yes/no still works too but inverses the logic of the
>> remix_profile argument.
>>
>> e.g. remix="yes" remix_profile="2" means it will *not* remix 2 channel
>> sound to the sinks channel count.
>>
>> whereas remix="no" remix_profile="1,3,4,5,6,7,8,9,10"  means much the
>> same thing, but only as far as 10 channels.
> 
> Isn't it a bit ugly if one config options completely reverses its
> meaning depending on another one?

Depends on your definition of "ugly" I guess. The reason I was thinking
it would be good is to save specifying all the various values... But
this is only a suggested syntax so if it's considered ugly, it doesn't
have to make the grade!

>> Obviously remix_profile is fully optional and remix= works as currently
>> if specified on it's own.
>>
>> I've not analised how the code works to see how much hassle this would
>> be to implement, but if this sounds like a vaguely sensible idea, I'll
>> look at cooking up a patch.
> 
> Hmm, IUC the use case for this is that mono→stereo upmixing should
> always be done while stereo→5.1 and mono→5.1 upmixing should not be
> attempted, right?  And that this means that if you play a mono stream
> you need to upmix it to stereo on a 5.1 device right?
> 
> That use case complicates things considerably sincei its not just
> about saying remixing yes/no, but about saying: if remixing from "A"
> to "B" is requested actually do "A" to "C", with "A" != "B" and "B" !=
> "C", if you follow.

Yeah I guess the main use case is "mono->stereo upmixing only" which
isn't really covered. I figured that if something is mono it can be
upmixed internally to 5.1 as we're unlikely to care about the e.g.
ProLogic upmixing for a mono stream, but a 2, 3 or 4 channel we are. I
guess it's possible that a mono to stereo upmix is desired on a 5.1 card
so perhaps a more complex syntax hear would be better.

e.g. from:to (where to <= channels).

Of course the channel map itself becomes problematic when to <
channels... nothing is going to be particularly clean here, which is why
I kinda ignored the whole to < channels case before :s

Col

-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
  Mandriva Linux Contributor [http://www.mandriva.com/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]




More information about the pulseaudio-discuss mailing list