Hi, I am using GstRtpBin for my application and I have a problem with signals and locks. I need the program to hold back the emission of certain gstrtpbin signals while I am executing some functions. Stopping the execution of the callbacks of those signals when they have already been called doesn&#39;t work because when those callbacks have been called the gstrtpbin code that has emitted them has already acquired the lock for the gstrtpbin object and my concurrent part of the code uses functions like <meta http-equiv="content-type" content="text/html; charset=utf-8">gst_element_get_request_pad that also need to acquire that same lock.<div>

<br></div><div>One solution would be to acquire the lock of the gstrtpbin object myself every time I run that part of the code that is not compatible with the signals. That would hold back the emission of gstrtpbin signals, however as gst object locks are not recursive when I use functions like gst_element_get_request_pad that also acquire the gst lock, my code gets deadlocked by locking the same mutex two times by the same thread. One workaround would be releasing the gst object lock just before any call to such functions but then obviously I would have the risk of a signal emission occurring in between the lock release and the call to the gst function that requires a lock.</div>

<div><br></div><div>Right now I can&#39;t think of any elegant solution to this problem, anyone has any ideas? </div><div><br></div><div>Thanks,</div><div>Toni Silvestre</div>