Re: [pulseaudio-discuss] [PATCH v2 0/3] alsa: Support for only-multichannel devices

2014-08-06 Thread Takashi Sakamoto
Hi David,

I uploaded a series of deb packages for PulseAudio to PPA:
https://launchpad.net/~mocchi/+archive/ubuntu/instruments

Unfortunately, these packages also don't allow my system to handle these
devices. I cannot see 'Multichannel' strings in logs.

It's my glad to get your advices.


Regards

Takashi Sakamoto
o-taka...@sakamocchi.jp

On Aug 6 2014 11:37, Takashi Sakamoto wrote:
> The default.conf surely has the mapping configuration.
> 
> I checked out commit 48edd0a00f455df075efcf1986103e5f507c816f, so they
> must includes all of your patches.
> http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=48edd0a00f455df075efcf1986103e5f507c816f
> 
> In this time, I use utopic (Ubuntu 14.10). I generate deb packages for
> PulseAudio and install them. I suspect that I did wrong operations, thus
> I'll try to upload the packages into my PPA. Then I hope you to check
> them later.
> 
>> If you're sure this is the case, I'll write a patch with some more
>> debugging info that hopefully can help us pinpoint why it's working with
>> my card but not with yours.
> 
> Thank you. Please wait for my next message about PPA.
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH v2 0/3] alsa: Support for only-multichannel devices

2014-08-06 Thread Raymond Yau
>
> Hi David,
>
> I tested this functionality with my two devices below. As a result, the
> fallback did not work well. Please check the attached files.
>
> Echo Audio Audiofile 4 (6ch capture/6ch playback)
> M-Audio FireWire Audiophile (4ch capture/6ch playback)
>

Using 7.9 fragments of size 7168 bytes (10.16ms), buffer size is 56320
bytes (79.82ms)

Seem bug in driver


0.713| 0.003) D: [pulseaudio] alsa-util.c: Managed to open hw:1
( 0.713| 0.000) I: [pulseaudio] alsa-util.c: Disabling tsched mode since
BATCH flag is set
( 0.713| 0.000) D: [pulseaudio] alsa-util.c:
snd_pcm_hw_params_set_format(Signed 16 bit Little Endian) failed: Invalid
argument
( 0.713| 0.000) D: [pulseaudio] alsa-util.c:
snd_pcm_hw_params_set_format(Signed 16 bit Big Endian) failed: Invalid
argument
( 0.713| 0.000) D: [pulseaudio] alsa-util.c:
snd_pcm_hw_params_set_format(Float 32 bit Little Endian) failed: Invalid
argument
( 0.713| 0.000) D: [pulseaudio] alsa-util.c:
snd_pcm_hw_params_set_format(Float 32 bit Big Endian) failed: Invalid
argument
( 0.713| 0.000) D: [pulseaudio] alsa-util.c: Maximum hw buffer size is 92
ms
( 1.154| 0.441) D: [pulseaudio] alsa-util.c: Set buffer size first (to 3528
samples), period size second (to 441 samples).
( 1.154| 0.000) I: [pulseaudio] alsa-util.c: Device hw:1 doesn't support
sample format s16le, changed to s32le. ( 1.167| 0.012) I: [pulseaudio]
alsa-source.c: Successfully opened device hw:1.
( 1.167| 0.000) I: [pulseaudio] alsa-source.c: Selected mapping 'Analog
4-channel Input' (analog-4-channel-input).
( 1.167| 0.000) I: [pulseaudio] alsa-source.c: Cannot enable timer-based
scheduling, falling back to sound IRQ scheduling.
( 1.167| 0.000) I: [pulseaudio] alsa-source.c: Successfully enabled mmap()
mode.
( 1.167| 0.000) I: [pulseaudio] alsa-util.c: Successfully attached to mixer
'hw:1'
( 1.168| 0.000) D: [pulseaudio] core-subscribe.c: Dropped redundant event
due to change event.
( 1.168| 0.000) I: [pulseaudio] source.c: Created source 2
"alsa_input.firewire-0x000d6c03002b7e2e.analog-4-channel-input" with sample
spec s32le 4ch 44100Hz and channel map aux0,aux1,aux2,aux3
( 1.168| 0.000) I: [pulseaudio] source.c: alsa.resolution_bits = "24"
( 1.168| 0.000) I: [pulseaudio] source.c: device.api = "alsa"
( 1.168| 0.000) I: [pulseaudio] source.c: device.class = "sound"
( 1.168| 0.000) I: [pulseaudio] source.c: alsa.class = "generic"
( 1.168| 0.000) I: [pulseaudio] source.c: alsa.subclass = "generic-mix"
( 1.168| 0.000) I: [pulseaudio] source.c: alsa.name = "FW Audiophile PCM"
( 1.168| 0.000) I: [pulseaudio] source.c: alsa.id = "BeBoB"
( 1.168| 0.000) I: [pulseaudio] source.c: alsa.subdevice = "0" ( 1.168|
0.000) I: [pulseaudio] source.c: alsa.subdevice_name = "subdevice #0"
( 1.168| 0.000) I: [pulseaudio] source.c: alsa.device = "0"
( 1.168| 0.000) I: [pulseaudio] source.c: alsa.card = "1"
( 1.168| 0.000) I: [pulseaudio] source.c: alsa.card_name = "FW Audiophile"
( 1.168| 0.000) I: [pulseaudio] source.c: alsa.long_card_name = "M-Audio FW
Audiophile (id:13, rev:1), GUID 000d6c03002b7e2e at fw1.0, S400"
( 1.168| 0.000) I: [pulseaudio] source.c: alsa.driver_name = "snd_bebob"
( 1.168| 0.000) I: [pulseaudio] source.c: device.bus_path =
"pci-:02:01.0"
( 1.168| 0.000) I: [pulseaudio] source.c: sysfs.path =
"/devices/pci:00/:00:1e.0/:02:01.0/fw1/fw1.0/sound/card1"
( 1.168| 0.000) I: [pulseaudio] source.c: udev.id =
"firewire-0x000d6c03002b7e2e" ( 1.168| 0.000) I: [pulseaudio] source.c:
device.bus = "firewire"
( 1.168| 0.000) I: [pulseaudio] source.c: device.vendor.name = "Ricoh Co
Ltd"
( 1.168| 0.000) I: [pulseaudio] source.c: device.product.name = "R5C832
IEEE 1394 Controller"
( 1.168| 0.000) I: [pulseaudio] source.c: device.string = "hw:1"
( 1.168| 0.000) I: [pulseaudio] source.c: device.buffering.buffer_size =
"56320"
( 1.168| 0.000) I: [pulseaudio] source.c: device.buffering.fragment_size =
"7168"
( 1.168| 0.000) I: [pulseaudio] source.c: device.access_mode = "mmap"
( 1.168| 0.000) I: [pulseaudio] source.c: device.profile.name =
"analog-4-channel-input"
( 1.168| 0.000) I: [pulseaudio] source.c: device.profile.description =
"Analog 4-channel Input"
( 1.168| 0.000) I: [pulseaudio] source.c: device.description = "R5C832 IEEE
1394 Controller Analog 4-channel Input" ( 1.168| 0.000) I: [pulseaudio]
source.c: alsa.mixer_name = "FW Audiophile"
( 1.168| 0.000) I: [pulseaudio] source.c: module-udev-detect.discovered =
"1" ( 1.168| 0.000) I: [pulseaudio] source.c: device.icon_name =
"audio-card-firewire"
( 1.168| 0.000) I: [pulseaudio] alsa-source.c: Using 7.9 fragments of size
7168 bytes (10.16ms), buffer size is 56320 bytes (79.82ms)
( 1.168| 0.000) D: [pulseaudio] alsa-source.c: hwbuf_unused=0
( 1.168| 0.000) D: [pulseaudio] alsa-source.c: setting avail_min=1
( 1.168| 0.000) D: [pulseaudio] alsa-util.c: snd_pcm_dump(): ( 1.168|
0.000) D: [pulseaudio] alsa-util.c: Hardware PCM card 1 'FW Audiophile'
device 0 subdevice 0
( 1.168| 0.000) D: [pulseaudio] alsa-util.c: Its setup is:
( 1.168| 0.000) D: 

Re: [pulseaudio-discuss] [PATCH] util: Fix pa_get_binary_name() on Debian/kFreeBSD

2014-08-06 Thread Felipe Sateler
On Mon, Aug 4, 2014 at 10:52 AM, Peter Meerwald  wrote:
>
>> > Debian GNU/kFreeBSD uses a FreeBSD kernel and GLIBC,
>> > it #defines __FreeBSD_kernel__, but not __FreeBSD__ nor __linux__
>> > Debian GNU/kFreeBSD does have a /proc/self/exe
>> >
>> > FreeBSD #defines __FreeBSD__ and __FreeBSD_kernel__
>> >
>> > problem reporte here:
>> > http://lists.freedesktop.org/archives/pulseaudio-discuss/2014-July/020998.html
>> >
>> > Signed-off-by: Peter Meerwald 
>> > ---
>> >  src/pulse/util.c | 2 +-
>> >  1 file changed, 1 insertion(+), 1 deletion(-)
>> >
>> > diff --git a/src/pulse/util.c b/src/pulse/util.c
>> > index 50f90b8..42b160a 100644
>> > --- a/src/pulse/util.c
>> > +++ b/src/pulse/util.c
>> > @@ -193,7 +193,7 @@ char *pa_get_binary_name(char *s, size_t l) {
>> >  }
>> >  #endif
>> >
>> > -#ifdef __linux__
>> > +#if defined(__linux__) || defined(__FreeBSD_kernel__)
>>
>> If FreeBSD does not have /proc/self/exe, but defines
>> __FreeBSD_kernel__ then this check will pass, which I don't think is
>> intended.
>
> on FreeBSD it will call pa_readlink("/proc/self/exe") which will return
> NULL and then continue with the FreeBSD-specific code
>
>> Perhaps the check needs to be defined(__FreeBSD_kernel__) &&
>> !defined(__FreeBSD__)?
>
> would work as well, I prefer simpler #defines;
> defined(__FreeBSD_kernel__) && defined(__GLIBC__) should do as well
>
> one extra readlink() doesn't hurt

I just found out about this possibility[1]:

#include 
[...]
Dl_info DLInfo;
int err = dladdr(&main, &DLInfo);
if (err != 0) {
  // DLInfo.dli_fname has the executable name.
}

This should work on all glibc systems. I can prepare a patch if this
solution is acceptable too.

[1] 
https://www.gnu.org/software/hurd/hurd/translator/procfs/jkoenig/discussion.html#index7h1


-- 

Saludos,
Felipe Sateler
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [RFC] Per-client flat-volumes control

2014-08-06 Thread Tanu Kaskinen
On Wed, 2014-08-06 at 16:42 +0300, Rémi Denis-Courmont wrote:
> Le 2014-08-06 16:10, Tanu Kaskinen a écrit :
> > The answer to your question: no, the normal stream volume and the
> > relative volume are very tightly tied together (and when flat volumes
> > are not in use, they're exactly the same thing). You can't change one
> > without affecting the other, and both are expected to be
> > user-controlled.
> 
> Then I don't really see how and why the PulseAudio daemon would have to 
> care about that new volume.
> 
> The browser can simply divide/multiply the stream volume by its 
> source/sink volume if the flat volume flag is on. You might or might not 
> want to provide libpulse-level helpers for it, but that's pretty much 
> it, AFAICT.

My original motivation for the new relative volume control was on the
server side. When I implemented audio groups, there was a need to form
master-slave relationships between volume controls: audio group volume
controls could be masters for other audio group volume controls, and
also for stream volume controls. Having a master-slave relationship
means that when the master volume changes, the same change is propagated
to slave volume controls (and also the other way around, so the
relationship is more like peer-to-peer, but a hierarchical structure
makes the traversal easier when propagating the changes). I got
frustrated when it turned out to be rather complex to propagate the
volume between audio groups and streams. I expected the operation to be
simple, but since the audio group volume represents the relative volume,
I had to add special casing to the propagation code in case the slave
was a stream volume control. When doing master->slave propagation, I'd
have to check if the slave was a sink input or source output, check
whether the sink or source had flat volume enabled, and if so, remap the
sink/source volume to the stream channel map, then divide the propagated
volume by the sink/source volume, and finally call
pa_control_set_volume() on the slave volume control. When doing
slave->master propagation, similar dance is needed. With a separate
relative control the propagation is very simple.

I'm not sure that the separate relative volume control approach results
in fewer lines of code, but I like it for several other reasons:

 * The volume control code doesn't have to do any special casing
depending on what the control is being used for.
 * The volume controls that share the volume with each other have the
exact same volume instead of stream volume controls being affected by
the sink/source volume.
 * The stream relative volume is visible in "pactl list
volume-controls", which can be nice for debugging. This could be
achieved also by implementing the flat->relative conversion logic in
pactl, but with the separate relative volume controls this feature comes
for free.
 * If the relative volume controls are exposed to clients, implementing
that is much simpler than some kind of libpulse-only helper thing that
would have to make an extra round-trip for getting the sink/source state
and do the volume calculations.

-- 
Tanu

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH 0/3] fix PA test suite failure

2014-08-06 Thread Felipe Sateler
On Wed, Aug 6, 2014 at 5:47 AM, Peter Meerwald  wrote:
> PA's mix-test fails on big endian systems as discovered by Felipe
>
> mix-test was in a rather embarassing state, reorganize to make it more
> logical hopefully
>
> tested on Debian/Wheezy PPC in QEMU

I'll try these patches on the debian build farm as soon as possible,
but I can't today.


-- 

Saludos,
Felipe Sateler
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [RFC] Per-client flat-volumes control

2014-08-06 Thread Rémi Denis-Courmont

Le 2014-08-06 16:10, Tanu Kaskinen a écrit :

The answer to your question: no, the normal stream volume and the
relative volume are very tightly tied together (and when flat volumes
are not in use, they're exactly the same thing). You can't change one
without affecting the other, and both are expected to be
user-controlled.


Then I don't really see how and why the PulseAudio daemon would have to 
care about that new volume.


The browser can simply divide/multiply the stream volume by its 
source/sink volume if the flat volume flag is on. You might or might not 
want to provide libpulse-level helpers for it, but that's pretty much 
it, AFAICT.


--
Rémi Denis-Courmont
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [RFC] Per-client flat-volumes control

2014-08-06 Thread Tanu Kaskinen
On Wed, 2014-08-06 at 15:45 +0300, Rémi Denis-Courmont wrote:
> Le 2014-08-06 11:45, Tanu Kaskinen a écrit :
> > 3) Add a second volume control to streams, one which represents the
> > stream's own volume only, i.e. never flat volume. Applications that 
> > want
> > to avoid flat volume can use that volume control instead of the 
> > primary
> > volume control.
> 
> Looking beyond HTML5, could that also cover per-stream replay gain?
> 
> I mean, can applications both set the normal stream volume (as per user 
> interaction) and the second stream volume (as per something else), and 
> expect things to work?

First of all, some terminology. I don't want to keep talking about "the
second volume"... I'll call the second stream volume "relative volume",
to distinguish it from the normal stream volume that can sometimes be
absolute in relation to the device volume. I've also been using
"relative_volume_control" as a variable name in the code I've written,
but other name ideas are welcome.

The answer to your question: no, the normal stream volume and the
relative volume are very tightly tied together (and when flat volumes
are not in use, they're exactly the same thing). You can't change one
without affecting the other, and both are expected to be
user-controlled.

-- 
Tanu

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [RFC] Per-client flat-volumes control

2014-08-06 Thread Rémi Denis-Courmont

Le 2014-08-06 11:45, Tanu Kaskinen a écrit :

3) Add a second volume control to streams, one which represents the
stream's own volume only, i.e. never flat volume. Applications that 
want
to avoid flat volume can use that volume control instead of the 
primary

volume control.


Looking beyond HTML5, could that also cover per-stream replay gain?

I mean, can applications both set the normal stream volume (as per user 
interaction) and the second stream volume (as per something else), and 
expect things to work?


--
Rémi Denis-Courmont
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] pa_simple_write blocks too long

2014-08-06 Thread Tanu Kaskinen
On Thu, 2014-07-31 at 19:46 +, Stossel, Darrell
(Insight/CSBU/RGS/Tucker) wrote:
> I’ve been tasked with migrating our project from using two different
> sound libraries to use only pulse.
> 
> I’m stuck with 0.9.21 on RHEL6 as the release because too many
> customers are on this version to force a migration.
> 
>  
> 
> With this version, the asynchronous version I’ve found to be too
> unreliable. Asserts get thrown about 5% of the time for conditions
> that should not be true, even when using example code on the pulse
> site.

Can you point out which example code is crashing, and what is the
failing assertion?

> So, I’ve gone to the simple api. Outside of our product, I’ve gotten
> both the record and play versions to work. Inside our product, the
> record part works fine. However, the playback version blocks in
> pa_simple_write (the first write when the buffer is made small, once
> full in a large buffer) with no sound ever being played. I’ve tried
> setting the buffer attributes to different settings with no success.
> Using pacmd, both the sink and the sink input are shown in the running
> state. No other applications are using audio at the same time.

If you do try to play to the same sink with some other application, for
example paplay, while your own application is stuck in
pa_simple_write(), does that other application work? I don't see any
other reason for pa_simple_write() getting stuck on a running sink than
the sink getting stuck. What kind of sink is it? Alsa?

-- 
Tanu


___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] My opinion on Tanu's "second volume control" proposal

2014-08-06 Thread Alexander E. Patrakov

06.08.2014 17:39, I wrote:

06.08.2014 17:11, Tanu Kaskinen wrote:

On Wed, 2014-08-06 at 16:35 +0600, Alexander E. Patrakov wrote:

Tanu proposed:


3) Add a second volume control to streams, one which represents the
stream's own volume only, i.e. never flat volume. Applications that
want
to avoid flat volume can use that volume control instead of the primary
volume control.

Even if proposals 1 and 2 are implemented, I'd still like to implement
proposal 3 too, because it's simple (I need the second volume
control at
server side anyway, and adding it to the client API is just a matter of
adding one field to pa_sink_input_info and pa_source_output_info) and
because it provides some new possibilities for applications: for
example, pavucontrol could have an option to not show flat volumes even
when flat volumes are enabled.


The idea is well supplanted with a use case, but I think that this could
use some more discussion.

The potential problem with "just exporting" the field is that the
proposal specifies only one additional volume factor with no clear
ownership policy, and I am afraid that various agents (the server and
the client) will fight over it. OTOH, especially if we design the API to
avoid "set this extra volume to this value" operation and only allow
relative changes, this may as well be a non-problem.


The ownership policy for the new volume control would be the same as
with the current stream volume, i.e. the user is the owner, and volume
changes not originating from user action are most likely a bad idea. I'm
not sure what kind of fight between agents you're thinking of, but with
this ownership policy I think there shouldn't be any conflicts any more
than there is with the current stream volume - stupid applications can
always fight with the user, but the server will only do what clients ask
it to do.


OK, I was mistakenly under impression that the "volume changes not
originating from user action are most likely a bad idea" policy would
not apply to this second control. But, as it applies, there is indeed no
fighting.


After re-reading, I changed my opinion on the proposal. My new opinion is:

The proposed feature has good justification, independent from the web 
use case, and should thus be implemented. However, when evaluating its 
positioning as a solution to the web browser 100% volume problem, one 
should keep in mind that this positioning relies on the "bad idea" 
mentioned above (because the root of the evil is that the browser 
changes the volume without user interaction). But the same also applies 
to Arun's patch. So, at best, when applied to this problem, both 
proposals are workarounds.


Still, I prefer Tanu's proposal to be implemented, as it is more general 
and has an independent use case.


For a perfect solution to the intra-application mixing problem (aka the 
web browser problem, or DirectSound emulation problem), there has to be 
a place where the "user is the owner" policy does not apply, and 
"application is the owner" policy applies instead. This implies that 
this volume factor should not be exposed in external volume control GUIs.


--
Alexander E. Patrakov
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] My opinion on Tanu's "second volume control" proposal

2014-08-06 Thread Alexander E. Patrakov

06.08.2014 17:11, Tanu Kaskinen wrote:

On Wed, 2014-08-06 at 16:35 +0600, Alexander E. Patrakov wrote:

Tanu proposed:


3) Add a second volume control to streams, one which represents the
stream's own volume only, i.e. never flat volume. Applications that want
to avoid flat volume can use that volume control instead of the primary
volume control.

Even if proposals 1 and 2 are implemented, I'd still like to implement
proposal 3 too, because it's simple (I need the second volume control at
server side anyway, and adding it to the client API is just a matter of
adding one field to pa_sink_input_info and pa_source_output_info) and
because it provides some new possibilities for applications: for
example, pavucontrol could have an option to not show flat volumes even
when flat volumes are enabled.


The idea is well supplanted with a use case, but I think that this could
use some more discussion.

The potential problem with "just exporting" the field is that the
proposal specifies only one additional volume factor with no clear
ownership policy, and I am afraid that various agents (the server and
the client) will fight over it. OTOH, especially if we design the API to
avoid "set this extra volume to this value" operation and only allow
relative changes, this may as well be a non-problem.


The ownership policy for the new volume control would be the same as
with the current stream volume, i.e. the user is the owner, and volume
changes not originating from user action are most likely a bad idea. I'm
not sure what kind of fight between agents you're thinking of, but with
this ownership policy I think there shouldn't be any conflicts any more
than there is with the current stream volume - stupid applications can
always fight with the user, but the server will only do what clients ask
it to do.


OK, I was mistakenly under impression that the "volume changes not 
originating from user action are most likely a bad idea" policy would 
not apply to this second control. But, as it applies, there is indeed no 
fighting.





Maybe, instead of having one extra volume control, we need to be able to
create and destroy additional possibly-invisible volume controls on
as-needed basis, with the final extra gain determined by the product of
their volumes? E.g., one volume can be used for volume groups, one can
be used for ducking when it is in effect, and one for client-specific needs.


We have server-side capability for this already (see
pa_sink_input.volume_factor_items), what's missing is a way for
applications to create their own extra volume controls for cases where
the user-controlled volume is not appropriate. I think this feature can
and should co-exist with the "second volume control" that I proposed.


I agree.

--
Alexander E. Patrakov
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] My opinion on Tanu's "second volume control" proposal

2014-08-06 Thread Tanu Kaskinen
On Wed, 2014-08-06 at 16:35 +0600, Alexander E. Patrakov wrote:
> Tanu proposed:
> 
> > 3) Add a second volume control to streams, one which represents the
> > stream's own volume only, i.e. never flat volume. Applications that want
> > to avoid flat volume can use that volume control instead of the primary
> > volume control.
> >
> > Even if proposals 1 and 2 are implemented, I'd still like to implement
> > proposal 3 too, because it's simple (I need the second volume control at
> > server side anyway, and adding it to the client API is just a matter of
> > adding one field to pa_sink_input_info and pa_source_output_info) and
> > because it provides some new possibilities for applications: for
> > example, pavucontrol could have an option to not show flat volumes even
> > when flat volumes are enabled.
> 
> The idea is well supplanted with a use case, but I think that this could 
> use some more discussion.
> 
> The potential problem with "just exporting" the field is that the 
> proposal specifies only one additional volume factor with no clear 
> ownership policy, and I am afraid that various agents (the server and 
> the client) will fight over it. OTOH, especially if we design the API to 
> avoid "set this extra volume to this value" operation and only allow 
> relative changes, this may as well be a non-problem.

The ownership policy for the new volume control would be the same as
with the current stream volume, i.e. the user is the owner, and volume
changes not originating from user action are most likely a bad idea. I'm
not sure what kind of fight between agents you're thinking of, but with
this ownership policy I think there shouldn't be any conflicts any more
than there is with the current stream volume - stupid applications can
always fight with the user, but the server will only do what clients ask
it to do.

> Maybe, instead of having one extra volume control, we need to be able to 
> create and destroy additional possibly-invisible volume controls on 
> as-needed basis, with the final extra gain determined by the product of 
> their volumes? E.g., one volume can be used for volume groups, one can 
> be used for ducking when it is in effect, and one for client-specific needs.

We have server-side capability for this already (see
pa_sink_input.volume_factor_items), what's missing is a way for
applications to create their own extra volume controls for cases where
the user-controlled volume is not appropriate. I think this feature can
and should co-exist with the "second volume control" that I proposed.

-- 
Tanu

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] My opinion on Tanu's "second volume control" proposal

2014-08-06 Thread Alexander E. Patrakov

Tanu proposed:


3) Add a second volume control to streams, one which represents the
stream's own volume only, i.e. never flat volume. Applications that want
to avoid flat volume can use that volume control instead of the primary
volume control.

Even if proposals 1 and 2 are implemented, I'd still like to implement
proposal 3 too, because it's simple (I need the second volume control at
server side anyway, and adding it to the client API is just a matter of
adding one field to pa_sink_input_info and pa_source_output_info) and
because it provides some new possibilities for applications: for
example, pavucontrol could have an option to not show flat volumes even
when flat volumes are enabled.


The idea is well supplanted with a use case, but I think that this could 
use some more discussion.


The potential problem with "just exporting" the field is that the 
proposal specifies only one additional volume factor with no clear 
ownership policy, and I am afraid that various agents (the server and 
the client) will fight over it. OTOH, especially if we design the API to 
avoid "set this extra volume to this value" operation and only allow 
relative changes, this may as well be a non-problem.


Maybe, instead of having one extra volume control, we need to be able to 
create and destroy additional possibly-invisible volume controls on 
as-needed basis, with the final extra gain determined by the product of 
their volumes? E.g., one volume can be used for volume groups, one can 
be used for ducking when it is in effect, and one for client-specific needs.


--
Alexander E. Patrakov
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [RFC] Per-client flat-volumes control

2014-08-06 Thread Alexander E. Patrakov

06.08.2014 14:45, Tanu Kaskinen wrote:

On Wed, 2014-08-06 at 13:31 +0530, Arun Raghavan wrote:

I guess we're in disagreement there. We can discuss this further,
either in a separate thread, or at GstConf (or both), but I would like
to get some more opinions on getting this patch in soon, since it's a
practical fix that we can use now.


OK, I will go to GstConf.



Ok, so we have two proposals for preventing web apps from having access
to flat volume:

1) Disable flat volume for individual streams.


Please note that Arun's patch does more than just this. It also 
introduces an environment variable that triggers this logic.




2) Introduce substreams that the browser would group under a single tab
stream. Web apps would only have access to the substream volumes, which
would not interact with the flat volume logic.

I have one of my own (I already mentioned this in [1]):

3) Add a second volume control to streams, one which represents the
stream's own volume only, i.e. never flat volume. Applications that want
to avoid flat volume can use that volume control instead of the primary
volume control.


It looks like a good proposal, especially useful for simple cases where 
there is only one stream.



Even if proposals 1 and 2 are implemented, I'd still like to implement
proposal 3 too, because it's simple (I need the second volume control at
server side anyway, and adding it to the client API is just a matter of
adding one field to pa_sink_input_info and pa_source_output_info) and
because it provides some new possibilities for applications: for
example, pavucontrol could have an option to not show flat volumes even
when flat volumes are enabled.


I have an opinion on this, but let's respect Arun's request to discuss 
this in a separate thread.




If proposal 3 is implemented, proposal 1 becomes unnecessary, so I'd
prefer to not merge Arun's patch. The per-stream disabling of flat
volume also makes mixer UIs behave oddly. Alexander mentioned
inconsistency in what is the "desirable" position for different streams,
but I think a bigger problem is that strange things will happen if a
flat volume stream pushes the device volume up. If there's also a
non-flat volume stream playing to the same device, there are two ways to
deal with that: either the non-flat volume stream's volume appears to go
down in the UI (while there's no real change in volume), or
alternatively the non-flat volume stream's volume appears to stay the
same in the UI, while in reality it grows along with the device volume.


I think that I can make an additional (possibly unfeasible) strawman 
proposal, more in line with (1), that partially takes this into account. 
Here it is:


4) Make PA_STREAM_NO_FLAT_VOLUME a client-only flag that is accepted in 
pa_stream_connect_playback() and friends, but not encoded in the 
protocol. The fact that the flag has been specified should be remembered 
by libpulse. Every time the client wants to change the volume, the 
library should query the sink volume, convert the desired volume to 
possibly-flat, and encode the resulting possibly-flat volume into the 
protocol. Also, the library should convert the volume for this stream 
from possibly-flat into non-flat representation on introspections, and 
update the client's idea of the volume when it uses the subscription 
interface to be notified about volume changes (be it from the sink or 
from the sink input). All other mixer applications should see the 
resulting possibly-flat volume.


If this is feasible, then I would rank it above (1), but below (2) and 
(3). And of course, if (3) is implemented, then (4) becomes unneeded.


--
Alexander E. Patrakov
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] [PATCH 0/3] fix PA test suite failure

2014-08-06 Thread Peter Meerwald
PA's mix-test fails on big endian systems as discovered by Felipe

mix-test was in a rather embarassing state, reorganize to make it more
logical hopefully

tested on Debian/Wheezy PPC in QEMU

Peter Meerwald (3):
  tests: Cleanup mix-test
  core: Fix PA_MAYBE_INT16_SWAP() macro
  tests: Fix mix-test on big-endian systems

 src/pulsecore/endianmacros.h |   4 +-
 src/tests/mix-test.c | 231 +++
 2 files changed, 57 insertions(+), 178 deletions(-)

-- 
1.9.1

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] [PATCH 3/3] tests: Fix mix-test on big-endian systems

2014-08-06 Thread Peter Meerwald
the mix test code never worked on big-endian systems

patch saves a lot of duplicate test and uses more logical naming

see
http://lists.freedesktop.org/archives/pulseaudio-discuss/2014-August/021035.html

Signed-off-by: Peter Meerwald 
Reported-by: Felipe Sateler 
---
 src/tests/mix-test.c | 229 ---
 1 file changed, 54 insertions(+), 175 deletions(-)

diff --git a/src/tests/mix-test.c b/src/tests/mix-test.c
index c0cd559..d5bae13 100644
--- a/src/tests/mix-test.c
+++ b/src/tests/mix-test.c
@@ -56,79 +56,37 @@ static const uint8_t ulaw_result[3][10] = {
 { 0x00, 0xff, 0xff, 0x80, 0x91, 0x31, 0x00, 0xe9, 0x12, 0x13 },
 };
 
-/* PA_SAMPLE_S16LE */
-static const uint16_t s16le_result[3][10] = {
+static const uint16_t s16ne_result[3][10] = {
 { 0x, 0x, 0x7fff, 0x8000, 0x9fff, 0x3fff, 0x0001, 0xf000, 0x0020, 
0x0021 },
 { 0x, 0x, 0x7332, 0x8ccd, 0xa998, 0x3998, 0x, 0xf199, 0x001c, 
0x001d },
 { 0x, 0xfffe, 0x7fff, 0x8000, 0x8000, 0x7997, 0x0001, 0xe199, 0x003c, 
0x003e },
 };
 
-/* PA_SAMPLE_S16BE */
-static const uint16_t s16be_result[3][10] = {
-{ 0x, 0x, 0x7fff, 0x8000, 0x9fff, 0x3fff, 0x0001, 0xf000, 0x0020, 
0x0021 },
-{ 0x, 0x, 0x8bff, 0x7300, 0xa8ff, 0x52ff, 0xe600, 0xd700, 0xcc1c, 
0xb31d },
-{ 0x, 0xfeff, 0x0aff, 0xf300, 0x47ff, 0x91fe, 0xe601, 0xc701, 0xcc3c, 
0xb33e },
-};
-
-/* PA_SAMPLE_FLOAT32LE */
-static const float float32le_result[3][10] = {
-{ 0.00, -1.00, 1.00, 4711.00, 0.222000, 0.33, -0.30, 
99.00, -0.555000, -0.123000 },
-{ 0.00, -0.899987, 0.899987, 4239.837402, 0.199797, 0.296996, -0.269996, 
89.098679, -0.499493, -0.110698 },
-{ 0.00, -1.899987, 1.899987, 8950.837891, 0.421797, 0.626996, -0.569996, 
188.098679, -1.054493, -0.233698 },
-};
-
-/* PA_SAMPLE_FLOAT32BE */
-static const float float32be_result[3][10] = {
+static const float float32ne_result[3][10] = {
 { 0.00, -1.00, 1.00, 4711.00, 0.222000, 0.33, -0.30, 
99.00, -0.555000, -0.123000 },
 { 0.00, -0.899987, 0.899987, 4239.837402, 0.199797, 0.296996, -0.269996, 
89.098679, -0.499493, -0.110698 },
 { 0.00, -1.899987, 1.899987, 8950.837891, 0.421797, 0.626996, -0.569996, 
188.098679, -1.054493, -0.233698 },
 };
 
-/* PA_SAMPLE_S32LE */
-static const uint32_t s32le_result[3][10] = {
+static const uint32_t s32ne_result[3][10] = {
 { 0x0001, 0x0002, 0x7fff0003, 0x8004, 0x9fff0005, 0x3fff0006, 
0x00010007, 0xf008, 0x0029, 0x0021000a },
 { 0x, 0x199b, 0x7332199c, 0x8ccd0003, 0xa998d99e, 0x3998999f, 
0xe66c, 0xf199a007, 0x0018, 0x001db32e },
 { 0x0001, 0xfffe199d, 0x7fff, 0x8000, 0x8000, 0x799799a5, 
0x0001e673, 0xe199a00f, 0x003cccd1, 0x003eb338 },
 };
 
-/* PA_SAMPLE_S32BE */
-static const uint32_t s32be_result[3][10] = {
-{ 0x0001, 0x0002, 0x7fff0003, 0x8004, 0x9fff0005, 0x3fff0006, 
0x00010007, 0xf008, 0x0029, 0x0021000a },
-{ 0x0066e600, 0x65b2cd01, 0xf117b402, 0x73989903, 0x0ee48004, 0xb8496705, 
0xe6ca4c06, 0xd7303307, 0xccb21908, 0xb3190009 },
-{ 0x0066e601, 0x64b2ce03, 0x7017b505, 0xf3989907, 0xade38109, 0xf748680b, 
0xe6cb4c0d, 0xc731330f, 0xccd21911, 0xb33a0013 },
-};
-
-/* PA_SAMPLE_S24LE */
-static const uint8_t s24le_result[3][30] = {
-{ 0x00, 0x00, 0x01, 0xff, 0xff, 0x02, 0x7f, 0xff, 0x03, 0x80, 0x00, 0x04, 
0x9f, 0xff, 0x05, 0x3f, 0xff, 0x06, 0x01, 0x00, 0x07, 0xf0, 0x00, 0x08, 0x20, 
0x00, 0x09, 0x21, 0x00, 0x0a },
-{ 0x66, 0xe6, 0x00, 0x31, 0xb3, 0x02, 0x23, 0x99, 0x03, 0x0b, 0x9a, 0x03, 
0x0c, 0x66, 0x05, 0x1c, 0x4c, 0x06, 0xca, 0x4c, 0x06, 0x07, 0x34, 0x07, 0xb2, 
0x19, 0x08, 0x19, 0x00, 0x09 },
-{ 0x66, 0xe6, 0x01, 0x30, 0xb3, 0x05, 0xa2, 0x98, 0x07, 0x8b, 0x9a, 0x07, 
0xab, 0x65, 0x0b, 0x5b, 0x4b, 0x0d, 0xcb, 0x4c, 0x0d, 0xf7, 0x34, 0x0f, 0xd2, 
0x19, 0x11, 0x3a, 0x00, 0x13 },
-};
-
-/* PA_SAMPLE_S24BE */
+/* attention: result is in BE, not NE! */
 static const uint8_t s24be_result[3][30] = {
-{ 0x00, 0x00, 0x01, 0xff, 0xff, 0x02, 0x7f, 0xff, 0x03, 0x80, 0x00, 0x04, 
0x9f, 0xff, 0x05, 0x3f, 0xff, 0x06, 0x01, 0x00, 0x07,
-0xf0, 0x00, 0x08, 0x20, 0x00, 0x09, 0x21, 0x00, 0x0a },
-{ 0x00, 0x00, 0x00, 0xff, 0xff, 0x1b, 0x73, 0x32, 0x1c, 0x8c, 0xcd, 0x03, 
0xa9, 0x98, 0xde, 0x39, 0x98, 0x9f, 0x00, 0xe6, 0x6c,
-0xf1, 0x99, 0xa7, 0x1c, 0xcc, 0xc8, 0x1d, 0xb3, 0x2e },
-{ 0x00, 0x00, 0x01, 0xff, 0xfe, 0x1d, 0x7f, 0xff, 0xff, 0x80, 0x00, 0x00, 
0x80, 0x00, 0x00, 0x79, 0x97, 0xa5, 0x01, 0xe6, 0x73,
-0xe1, 0x99, 0xaf, 0x3c, 0xcc, 0xd1, 0x3e, 0xb3, 0x38 },
+{ 0x00, 0x00, 0x01, 0xff, 0xff, 0x02, 0x7f, 0xff, 0x03, 0x80, 0x00, 0x04, 
0x9f, 0xff, 0x05, 0x3f, 0xff, 0x06, 0x01, 0x00, 0x07, 0xf0, 0x00, 0x08, 0x20, 
0x00, 0x09, 0x21, 0x00, 0x0a },
+{ 0x00, 0x00, 0x00, 0xff, 0xff, 0x1b, 0x73, 0x32, 0x1c, 0x8c, 0xcd, 0x03, 
0xa9, 0x98, 0xde, 0x39, 0x98, 0x9f, 0x00, 0xe6, 0x6c, 0xf1, 0x99, 0xa7, 0x1c, 
0xcc, 0xc8, 0x1d, 0xb3, 0x2e },
+{ 0x00, 0x00, 0x01, 0xff, 0xfe, 0x1d, 0x7f, 0xff, 0xff, 0x

[pulseaudio-discuss] [PATCH 1/3] tests: Cleanup mix-test

2014-08-06 Thread Peter Meerwald
indentation and use of fabsf() for floats

Signed-off-by: Peter Meerwald 
---
 src/tests/mix-test.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/tests/mix-test.c b/src/tests/mix-test.c
index 9e5a0cc..c0cd559 100644
--- a/src/tests/mix-test.c
+++ b/src/tests/mix-test.c
@@ -202,7 +202,7 @@ static void compare_block(const pa_sample_spec *ss, const 
pa_memchunk *chunk, in
 
 for (i = 0; i < chunk->length / pa_frame_size(ss); i++) {
 float uu = ss->format == PA_SAMPLE_FLOAT32NE ? *u : 
PA_FLOAT32_SWAP(*u);
-fail_unless(fabs(uu - *v) <= 1e-6, NULL);
+fail_unless(fabsf(uu - *v) <= 1e-6f, NULL);
 ++u;
 ++v;
 }
@@ -215,7 +215,7 @@ static void compare_block(const pa_sample_spec *ss, const 
pa_memchunk *chunk, in
 
 for (i = 0; i < chunk->length / pa_frame_size(ss); i++) {
 float uu = ss->format == PA_SAMPLE_FLOAT32NE ? *u : 
PA_FLOAT32_SWAP(*u);
-fail_unless(fabs(uu - *v) <= 1e-6, NULL);
+fail_unless(fabsf(uu - *v) <= 1e-6f, NULL);
 ++u;
 ++v;
 }
@@ -385,7 +385,7 @@ static pa_memblock* generate_block(pa_mempool *pool, const 
pa_sample_spec *ss) {
 for (i = 0; i < 10; i++)
 u[i] = PA_FLOAT32_SWAP(float_samples[i]);
 } else
-  memcpy(d, float_samples, sizeof(float_samples));
+memcpy(d, float_samples, sizeof(float_samples));
 
 break;
 }
-- 
1.9.1

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] [PATCH 2/3] core: Fix PA_MAYBE_INT16_SWAP() macro

2014-08-06 Thread Peter Meerwald
PA_MAYBE_INT16_SWAP() should call PA_INT16_SWAP(), not PA_INT32_SWAP

PA_MAYBE_INT16_SWAP() is not used (yet), so no big deal :)

Signed-off-by: Peter Meerwald 
---
 src/pulsecore/endianmacros.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/pulsecore/endianmacros.h b/src/pulsecore/endianmacros.h
index 2b18cf8..4822fc4 100644
--- a/src/pulsecore/endianmacros.h
+++ b/src/pulsecore/endianmacros.h
@@ -82,8 +82,8 @@ static inline float PA_FLOAT32_SWAP(float x) {
 return t.f;
 }
 
-#define PA_MAYBE_INT16_SWAP(c,x) ((c) ? PA_INT32_SWAP(x) : (x))
-#define PA_MAYBE_UINT16_SWAP(c,x) ((c) ? PA_UINT32_SWAP(x) : (x))
+#define PA_MAYBE_INT16_SWAP(c,x) ((c) ? PA_INT16_SWAP(x) : (x))
+#define PA_MAYBE_UINT16_SWAP(c,x) ((c) ? PA_UINT16_SWAP(x) : (x))
 
 #define PA_MAYBE_INT32_SWAP(c,x) ((c) ? PA_INT32_SWAP(x) : (x))
 #define PA_MAYBE_UINT32_SWAP(c,x) ((c) ? PA_UINT32_SWAP(x) : (x))
-- 
1.9.1

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] Slackware 14.1

2014-08-06 Thread terry
   Let me start over:

I first installed pulseaudio and what I *think/assume* were it's
dependencies,

avahi-0.6.31-x86_64-1_SBo
json-c-0.11-x86_64-1_SB
libasyncns-0.8-x86_64-1_SBo
lirc-0.9.0_3.10.17-x86_64-3_SBo
jack-audio-connection-kit-0.124.1-x86_64-1_SBo
pavucontrol-2.0-x86_64-1_SBo
gtkmm3-3.8.1-x86_64-1_SBo
alsa-plugins-1.0.26-x86_64-1_SBo
pulseaudio-5.0-x86_64-1_SBo
  (listed in order they were installed)

(some were listed as optional dependencies, one of which was orc which
previously installed on Jun 17 )
=
So
I got the first set of errors when trying to start it:

>
> /etc/rc.d/rc.pulseaudio start
> E: [pulseaudio] core-util.c: Failed to create secure directory
> (/var/lib/pulse/.config/pulse): No such file or directory
> Starting pulseaudio...
> W: [pulseaudio] authkey.c: Failed to open cookie file
> '/var/lib/pulse/.config/pulse/cookie': No such file or directory
> W: [pulseaudio] authkey.c: Failed to load authorization key
> '/var/lib/pulse/.config/pulse/cookie': No such file or directory
> W: [pulseaudio] authkey.c: Failed to open cookie file
> '/var/lib/pulse/.pulse-cookie': No such file or directory
> W: [pulseaudio] authkey.c: Failed to load authorization key
> '/var/lib/pulse/.pulse-cookie': No such file or directory
> W: [pulseaudio] authkey.c: Failed to open cookie file
> '/var/lib/pulse/.config/pulse/cookie': No such file or directory
> W: [pulseaudio] authkey.c: Failed to load authorization key
> '/var/lib/pulse/.config/pulse/cookie': No such file or directory
> No protocol specified
> E: [pulseaudio] client-conf-x11.c: xcb_connection_has_error() returned true
> E: [autospawn] core-util.c: Failed to create secure directory
> (/var/lib/pulse/.config/pulse): No such file or directory
> W: [autospawn] lock-autospawn.c: Cannot access autospawn lock.
> E: [pulseaudio] main.c: Failed to acquire autospawn lock
>
>
And this is what I got after the stop command:


>
> /etc/rc.d/rc.pulseaudio stop
> E: [pulseaudio] core-util.c: Failed to create secure directory
> (/var/lib/pulse/.config/pulse): No such file or directory
> pulseaudio is not running.
>
>
>
I [took it upon myself to] add root to the pulse group and so now I just
get

 /etc/rc.d/rc.pulseaudio start
Starting pulseaudio...
No protocol specified
E: [pulseaudio] client-conf-x11.c: xcb_connection_has_error() returned true

And when I stop it:

/etc/rc.d/rc.pulseaudio stop
Stopping pulseaudio...Done




-- 
In God we trust.
<><
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] Slackware 14.1

2014-08-06 Thread terry
I'm having a problem getting pulseaudio to work.

/etc/rc.d/rc.pulseaudio start
E: [pulseaudio] core-util.c: Failed to create secure directory
(/var/lib/pulse/.config/pulse): No such file or directory
Starting pulseaudio...
W: [pulseaudio] authkey.c: Failed to open cookie file
'/var/lib/pulse/.config/pulse/cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to load authorization key
'/var/lib/pulse/.config/pulse/cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to open cookie file
'/var/lib/pulse/.pulse-cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to load authorization key
'/var/lib/pulse/.pulse-cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to open cookie file
'/var/lib/pulse/.config/pulse/cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to load authorization key
'/var/lib/pulse/.config/pulse/cookie': No such file or directory
No protocol specified
E: [pulseaudio] client-conf-x11.c: xcb_connection_has_error() returned true
E: [autospawn] core-util.c: Failed to create secure directory
(/var/lib/pulse/.config/pulse): No such file or directory
W: [autospawn] lock-autospawn.c: Cannot access autospawn lock.
E: [pulseaudio] main.c: Failed to acquire autospawn lock

/etc/rc.d/rc.pulseaudio stop
E: [pulseaudio] core-util.c: Failed to create secure directory
(/var/lib/pulse/.config/pulse): No such file or directory
pulseaudio is not running.



-- 
In God we trust.
<><
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] Slackware 14.1

2014-08-06 Thread terry
Starting pulseaudio...
No protocol specified
E: [pulseaudio] client-conf-x11.c: xcb_connection_has_error() returned true



On Tue, Aug 5, 2014 at 10:28 AM, terry  wrote:

> I'm having a problem getting pulseaudio to work.
>
> /etc/rc.d/rc.pulseaudio start
> E: [pulseaudio] core-util.c: Failed to create secure directory
> (/var/lib/pulse/.config/pulse): No such file or directory
> Starting pulseaudio...
> W: [pulseaudio] authkey.c: Failed to open cookie file
> '/var/lib/pulse/.config/pulse/cookie': No such file or directory
> W: [pulseaudio] authkey.c: Failed to load authorization key
> '/var/lib/pulse/.config/pulse/cookie': No such file or directory
> W: [pulseaudio] authkey.c: Failed to open cookie file
> '/var/lib/pulse/.pulse-cookie': No such file or directory
> W: [pulseaudio] authkey.c: Failed to load authorization key
> '/var/lib/pulse/.pulse-cookie': No such file or directory
> W: [pulseaudio] authkey.c: Failed to open cookie file
> '/var/lib/pulse/.config/pulse/cookie': No such file or directory
> W: [pulseaudio] authkey.c: Failed to load authorization key
> '/var/lib/pulse/.config/pulse/cookie': No such file or directory
> No protocol specified
> E: [pulseaudio] client-conf-x11.c: xcb_connection_has_error() returned true
> E: [autospawn] core-util.c: Failed to create secure directory
> (/var/lib/pulse/.config/pulse): No such file or directory
> W: [autospawn] lock-autospawn.c: Cannot access autospawn lock.
> E: [pulseaudio] main.c: Failed to acquire autospawn lock
>
> /etc/rc.d/rc.pulseaudio stop
> E: [pulseaudio] core-util.c: Failed to create secure directory
> (/var/lib/pulse/.config/pulse): No such file or directory
> pulseaudio is not running.
>
>
>
> --
> In God we trust.
> <><
>
>


-- 
In God we trust.
<><
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] Slackware 14.1

2014-08-06 Thread terry
reading /etc/pulse/daemon.conf and I see  "daemonize = no"

(is that supposed to be?)


On Tue, Aug 5, 2014 at 10:28 AM, terry  wrote:

> I'm having a problem getting pulseaudio to work.
>
> /etc/rc.d/rc.pulseaudio start
> E: [pulseaudio] core-util.c: Failed to create secure directory
> (/var/lib/pulse/.config/pulse): No such file or directory
> Starting pulseaudio...
> W: [pulseaudio] authkey.c: Failed to open cookie file
> '/var/lib/pulse/.config/pulse/cookie': No such file or directory
> W: [pulseaudio] authkey.c: Failed to load authorization key
> '/var/lib/pulse/.config/pulse/cookie': No such file or directory
> W: [pulseaudio] authkey.c: Failed to open cookie file
> '/var/lib/pulse/.pulse-cookie': No such file or directory
> W: [pulseaudio] authkey.c: Failed to load authorization key
> '/var/lib/pulse/.pulse-cookie': No such file or directory
> W: [pulseaudio] authkey.c: Failed to open cookie file
> '/var/lib/pulse/.config/pulse/cookie': No such file or directory
> W: [pulseaudio] authkey.c: Failed to load authorization key
> '/var/lib/pulse/.config/pulse/cookie': No such file or directory
> No protocol specified
> E: [pulseaudio] client-conf-x11.c: xcb_connection_has_error() returned true
> E: [autospawn] core-util.c: Failed to create secure directory
> (/var/lib/pulse/.config/pulse): No such file or directory
> W: [autospawn] lock-autospawn.c: Cannot access autospawn lock.
> E: [pulseaudio] main.c: Failed to acquire autospawn lock
>
> /etc/rc.d/rc.pulseaudio stop
> E: [pulseaudio] core-util.c: Failed to create secure directory
> (/var/lib/pulse/.config/pulse): No such file or directory
> pulseaudio is not running.
>
>
>
> --
> In God we trust.
> <><
>
>


-- 
In God we trust.
<><
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [RFC] Per-client flat-volumes control

2014-08-06 Thread Tanu Kaskinen
On Wed, 2014-08-06 at 13:31 +0530, Arun Raghavan wrote:
> I guess we're in disagreement there. We can discuss this further,
> either in a separate thread, or at GstConf (or both), but I would like
> to get some more opinions on getting this patch in soon, since it's a
> practical fix that we can use now.

Ok, so we have two proposals for preventing web apps from having access
to flat volume:

1) Disable flat volume for individual streams.

2) Introduce substreams that the browser would group under a single tab
stream. Web apps would only have access to the substream volumes, which
would not interact with the flat volume logic.

I have one of my own (I already mentioned this in [1]):

3) Add a second volume control to streams, one which represents the
stream's own volume only, i.e. never flat volume. Applications that want
to avoid flat volume can use that volume control instead of the primary
volume control.

Even if proposals 1 and 2 are implemented, I'd still like to implement
proposal 3 too, because it's simple (I need the second volume control at
server side anyway, and adding it to the client API is just a matter of
adding one field to pa_sink_input_info and pa_source_output_info) and
because it provides some new possibilities for applications: for
example, pavucontrol could have an option to not show flat volumes even
when flat volumes are enabled.

If proposal 3 is implemented, proposal 1 becomes unnecessary, so I'd
prefer to not merge Arun's patch. The per-stream disabling of flat
volume also makes mixer UIs behave oddly. Alexander mentioned
inconsistency in what is the "desirable" position for different streams,
but I think a bigger problem is that strange things will happen if a
flat volume stream pushes the device volume up. If there's also a
non-flat volume stream playing to the same device, there are two ways to
deal with that: either the non-flat volume stream's volume appears to go
down in the UI (while there's no real change in volume), or
alternatively the non-flat volume stream's volume appears to stay the
same in the UI, while in reality it grows along with the device volume.

Proposal 2 solves additionally the problem of too many streams in mixer
UIs, so that's not made redundant by proposal 3. If someone is willing
to implement the substream concept, great.

[1] 
http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/19752/focus=20703

-- 
Tanu

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [RFC] Per-client flat-volumes control

2014-08-06 Thread Arun Raghavan
On 6 August 2014 12:10, Alexander E. Patrakov  wrote:
> 06.08.2014 12:15, Arun Raghavan wrote:
>>
>> On 6 August 2014 10:28, Alexander E. Patrakov  wrote:
[...]
>>> Well, I am not sure. The doubt comes out from the possibility of an
>>> incompetent web programmer to create many stupid audio contexts from the
>>> same tab, thus again returning the slider-pollution problem.
>>
>>
>> I think that sort of use should be considered bad behaviour (on any
>> system, creating and not freeing resources will inevitable hit a
>> limit), so trying to deal with that might not make sense.
>
>
> It does make sense. Instead of (or in addition to) the global limit, we
> might introduce a per-group limit or something like that, so that it is hit
> first. But I was talking more about the UI issue, because the limit that is
> _actually_ hit first is the number of UI elements (sliders in pavucontrol)
> that the user is willing to tolerate. I.e. I want to enforce the "one slider
> per tab" rule strictly, even if this means excluding some use cases.

I guess we're in disagreement there. We can discuss this further,
either in a separate thread, or at GstConf (or both), but I would like
to get some more opinions on getting this patch in soon, since it's a
practical fix that we can use now.

-- Arun
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss