Bidirectional rtpbin audio transcoding

Sebastian Dröge sebastian at centricular.com
Tue Nov 17 03:42:31 PST 2015


On Mo, 2015-11-16 at 14:22 +0100, Okrslar Ales wrote:
> Hello !
> 
> We're strugling using rtpbin (two of them) in a bidirectional server
> side audio transcoding pipeline: (simplified here)
> 
>    udpsrc  -> rtpbin_1  -> rtpdepay_x -> decode_x  -> encode_y ->
> rtppay_y    -> rtpbin_2 -> udpsink
>    udpsink <- rtpbin_1 <- rtppay_x     <- encode_x  <- decode_y <-
> rtpdepay_y <- rtpbin_2 <- udpsrc
> 
> This is all encapsulated in a single pipeline. When the pipeline
> receives incoming RTP stream, a warning appears:
> GStreamer-WARNING **: loop detected in the graph of bin
> 'transcoding_pipeline_0'!!
> 
> The pipeline works as expected, but when we try to tear it down,
> starting by setting it to NULL state, the driving thread dead-locks
> on a gstreamer mutex.
> Do we follow a valid approach to the transcoding of audio RTP  ? 

As the warning tells you, you're creating a loop in the pipeline graph.
That's not supported and will lead to deadlocks and other interesting
problems.

To solve this loop, you could for example use elements from the inter
plugin or build something similar yourself with an appsrc and appsink.
This would be to connect the two rtpbins with each other, which is
where currently the loop is.

-- 
Sebastian Dröge, Centricular Ltd · http://www.centricular.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 949 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20151117/37f7dcc9/attachment.sig>


More information about the gstreamer-devel mailing list