Skip to content

rtpssrcdemux: fix "data flow before segment event" crash

This crash could happen at any time a RTP and RTCP buffer arrived
simultaneously in ssrcdemux.

The problem was that sticky-event arriving while the rtp and rtcp pads
were being set up could arrive just too late to be included in the initial
forwarding.

The fix checks if the stickies have been sent on the srcpad about to be
pushed on, and if not sends them. It also blocks any stickes from
being forwarded *prior* to this happening, to avoid them arriving on
the srcpad multiple times.

This patch re-purposes the "element-private" of the pad to indicate
if the pad has had initial stickies pushed on it or not.
The previous use was for logging SSRC on latency-queries only,
and by simply using the pad to log with, the SSRC will be present in
the pad-name, so nothing is lost there.

Merge request reports