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 >