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

Georg Chini georg at chini.tk
Fri Aug 14 02:46:59 PDT 2015


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
>>>>>> 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 .
Thanks for letting me know. I will look into this and hope to send another
series of patches some time this weekend.

Regards
              Georg


More information about the pulseaudio-discuss mailing list