[pulseaudio-discuss] [RFC] Source Output Volumes

Maarten Bosmans mkbosmans at gmail.com
Fri May 20 02:23:16 PDT 2011


2011/5/20 Colin Guthrie <gmane at colin.guthr.ie>:
> Hello,
>
> As some of you know I've been working on restoring a little more
> symmetry to our API to allow the adjustment of source output (capture
> stream) volumes.
>
> In the past, when stream volumes were added to sink inputs, it was
> thought that this feature wouldn't be overly useful for capture streams
> and while this argument still holds true, there is one feature that has
> since been added to PA that would make it useful - flat volumes.
>
> Flat volumes allow for multiple streams to be connected to the same
> device and when they differ in stream volume, the maximum one is chosen
> and the h/w is set to that, with the difference in volume between the
> streams applied in software. This in theory allows for optimum power
> efficiency where the software stays out of the loop whenever possible.
>
> With flat volumes, adding per-stream volumes to capture streams makes sense.

With these changes, would it still be possible to record audio without
software gain? As it is now, I can record from a source that has its
volume set to 100% and be confident that I'm getting the signal direct
from the soundcard.
Is that still the case with the default source output volume?

Maarten

> It does also simplify client code when they want to adjust their own
> volumes, they don't have to implement their own asymmetry to deal with ours.
>
>
> So I am proud to announce my work to try and achieve this. There are no
> doubt still bugs, so a thorough review is very much appreciated.
>
> I will not post patches to the list (unless screamed for) as some of
> them are necessarily rather large (+400 and +2k lines in the biggest
> patches).
>
> Most of the code is mirrored from the sink or sink input side. There is
> a lot of scope to cut down on code duplication but for the purposes of
> getting this out there I'll leave that for after the next release.
>
> In some cases, applying the patch and comparing e.g. sink.c with
> source.c is a better way of reviewing the changes (while there are still
> several differences it isn't too hard to compare them).
>
> I originally added support for synchronised streams for recording but
> then realised that this makes little sense practically and removed it
> again. I did the removal in a separate commit as it may be easier to
> compare the sink vs. source files before this patch to cut down on
> asymmetry)
>
> Known niggles;
> There are still some strange things with volumes. The flat volume stuff
> doesn't seem to work perfectly as when adjusting a recording stream
> volume down from NORM, the h/w volume does not drop... only when the
> hardware volume has been moved down to 0 and back to NORM does flat
> volume stuff work seem to work properly.
>
> I think there are still a few niggles with volume setting generally (for
> outputs too) as I still have a problem reported earlier that the initial
> volume of things is disconnected to the h/w state and while PA thinks
> it's got 100% it's actually not... I still need to look at that properly.
>
> So without further ado, here is the branch for review:
> http://colin.guthr.ie/git/pulseaudio/log/?h=master-source-volume
> git://colin.guthr.ie/pulseaudio (master-source-volume branch)
>
> For convenience of testing you can also use this patch to pavucontrol:
> http://colin.guthr.ie/git/pavucontrol/log/?h=master-source-volumes
>
> Have fun!
>
> Col
>
>
>
>
>
>
>
>
> --
>
> Colin Guthrie
> gmane(at)colin.guthr.ie
> http://colin.guthr.ie/
>
> Day Job:
>  Tribalogic Limited [http://www.tribalogic.net/]
> Open Source:
>  Mageia Contributor [http://www.mageia.org/]
>  PulseAudio Hacker [http://www.pulseaudio.org/]
>  Trac Hacker [http://trac.edgewall.org/]
>
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at mail.0pointer.de
> https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
>



More information about the pulseaudio-discuss mailing list