[pulseaudio-discuss] module-role-cork and mp3s

Mikhail Morfikov mmorfikov at gmail.com
Fri Aug 14 01:51:56 PDT 2015


-----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
>>>>> pulseaudio-discuss at lists.freedesktop.org
>>>>> 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
>>> pulseaudio-discuss at lists.freedesktop.org
>>> 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
> pulseaudio-discuss at lists.freedesktop.org
> 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 .
-----BEGIN PGP SIGNATURE-----

iQIcBAEBCgAGBQJVzawlAAoJEM0EaBB3G2Ugac0P/An4uch6TAj7dAHg5yNW9mEr
p689NjYKWDp1G1X2ZGuWWprPPO385GgBujr/qEhcBYxq1tKH31bCRqT1Y1+pl+XV
WhKu8BbMl2/UuIVhHS08LQWJ+bp5tNkFQwEBFMunyyotPHfjQ5Bpd4Egc6ayNNq3
kVzapxXUPMvyTLgdwV5KkGWRCOp5mJUDZmupvg2LW8wqZtliGdSQ1ggSXMOSBBXW
WC0VbJWjP+iralSBVI8Er8/WQssMrn4TxzxOWwszv9rW/8Yu/ChIMKcLm9OMCUMR
MovtTMlj9ICdVGGsBaQSjicM5IJkAFXH+MhZUfyju4+MEVwsgwS8oGmQNJkmmIzy
mVGcNSTmGpf2qIz0hFa1Mma3Kk72UYx2mDjcKrAlMNKNH9hqiS9d1cS1bTncQsdH
vz3RVRrYc4/ZtfVSOvworNCatc2DlwHoPXLtD1Y+O6xagjIncuwy4KpkHpmaRdvf
MGFE1ppv96UoD9Jqrbg6rSd0LZddvxDMMY+d378wX7KF+FfHBhq2Gy9LYfoFhBA1
Dj+hrkHpzZEL1cJLGGzkgUAI0XCVkBblV9VxuTT+hX9irXn3pXIMIP60hAQMxE2O
hLIsh6zmo0S8Yk/BFSEVvSqiUPoHD/KAigibrk++zTjnjDYWt/T2iAiy9rKUL0rA
Bouyb0jc3HhpPpZ6Oska
=XtYb
-----END PGP SIGNATURE-----


More information about the pulseaudio-discuss mailing list