Skip to content

rtpssrcdemux: Avoid taking streamlock out-of-band

In this change we now protect the internal srcpads list using the stream lock and limit usage of the internal stream lock to preventing data flowing on the other src pad type while creating and signalling the new pad.

This fixes a deadlock with RTPBin shutdown lock. These two locks would end up being taken in two different order, which caused a deadlock. More generally, we should not rely on a streamlock when handling out-of-band data, so as a side effect, we should not take a stream lock when iterating internal links.

Spotted by Håvard Graff (@hgr).

Edited by Nicolas Dufresne

Merge request reports