On 14.08.2015 11:46, Georg Chini wrote:
On 14.08.2015 10:51, Mikhail Morfikov wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
On 2015-08-14 10:18, Georg Chini wrote:
On 14.08.2015 09:33, Mikhail Morfikov wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
On 2015-08-14 01:14, Georg Chini wrote:
On 13.08.2015 23:29, Mikhail Morfikov wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
On 2015-08-13 18:49, Georg Chini wrote:
On 13.08.2015 14:58, Tanu Kaskinen wrote:
On Thu, 2015-08-13 at 10:50 +0200, Mikhail Morfikov wrote:
I have two streams one phone and one video/audio, and when I
set the
following:
load-module module-role-ducking trigger_roles=phone
ducking_roles=music,video volume=60%
and I start playing an mp3, the volume is lowered to 60% and
that's
fine. Each time a new mp3 is being played the volume doesn't
change,
which is also a good thing.
There's another module module-role-cork and when it's enabled
(also
commenting out the line above), it acts a little bit strange.
When I
start the phone stream, the mp3 is muted, and that's expected,
but
when
another mp3 starts to play, the sound appears.
Should that happen?
Ideally that shouldn't happen, but currently we have a bit limited
support for managing corking. Currently applications are
required to
cooperate when we want to cork them. module-role-cork sends a cork
request to an application, and the application will then obey that
request (or not, but in your case not obeying the request is
not the
problem). To make this work on new streams too,
module-role-cork should
send the cork request also when a new stream appears, which it
currently doesn't do. It could very well do that, so patches
welcome!
Sending a cork request after a new stream has appeared isn't quite
optimal, since the beginning of the stream may already hit the
speakers
before the corking happens, but that would still be better than
the
current behaviour.
It would be good to have "server-side corking" that wouldn't
require
cooperation from applications. That's a bit more complicated to
implement.
Hi,
you could try if my patches
http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/23189
solve the problem because the patches combine module-role-cork
and module-role-ducking (and I believe they should mute/cork a
stream
when it appears).
Regards
Georg
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
I've tested the patches, but nothing has changed.
That's strange because with the patches both modules share the
same code. So I would have expected that they behave equally.
Can you check if there is any difference between the two cases by
running pulseaudio with debugging? There should be a line in the
log each time the module interacts with a stream.
Georg
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
I've compared the debug logs in both cases (with and without patches)
and checked whether they're different in any point. There are 3
occurrences of stream-interaction.c in the log with patches:
D: [pulseaudio] stream-interaction.c: Using role 'phone' as trigger
role.
D: [pulseaudio] stream-interaction.c: Using roles 'music' and
'video' as cork roles.
...
D: [pulseaudio] stream-interaction.c: Found a 'phone' stream that
corks/mutes a 'video' stream.
And there's also:
D: [pulseaudio] sink-input.c: The mute of sink input 0 changed from
no to yes.
And that's it. I can provide you with the full logs if you needed
them.
I was rather thinking about a comparison between module-role-cork
and module-role-ducking with the patches because they behave
differently
even though the code is exactly the same. I would expect, that when you
compare the log messages there should be no difference except that it
says "cork" for one module and "duck" for the other.
One reason I can think of why there is a problem with role-cork but
not with
role-ducking is that the new stream might still be corked when the
sink_input
is put. So role-cork sees the stream as corked and does nothing but the
application uncorks the stream at a later time.
Regards
Georg
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
I hadn't tested module-role-ducking with patches before, but it looks
like that
both modules act in the same way with patches. I mean, when I use:
load-module module-role-ducking trigger_roles=phone
ducking_roles=music,video volume=60%
it lowers the volume to 60% when TS3 starts to capture, but when
another mp3
is being played, the volume backs to 100%. Something like "unmute" in
the case
of module-role-cork .
Thanks for letting me know. I will look into this and hope to send
another
series of patches some time this weekend.
Hi Mikhail,
the problem was exactly what I described above. I just posted a patch on top
of my previous series. See also comments in the patch. Could you please
test?
Expected result would be that module-role-ducking acts correctly while with
module-role-cork a new stream is only muted.
I could cork a stream when it changes its state to uncork, but this
would mean
that you can no longer uncork a stream manually if it was corked by
module-role-cork.
@Tanu: Is there something like a "cork counter" in PA which keeps track of
multiple corks for the same stream and only releases the cork if the counter
goes to zero? If not should something like that be added?
Regards
Georg
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss