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