openwebrtc
openwebrtc copied to clipboard
Unable set new source with owr_media_session_set_send_source()
I would like to replace the source being sent. Setting NULL stops sending. But OWR complains when I set a new source.
(WebKitWebProcess:9952): GStreamer-CRITICAL **: Element rtpbin already has a pad named send_rtp_sink_1, the behaviour of gst_element_get_request_pad() for existing pads is undefined!
(WebKitWebProcess:9952): GStreamer-CRITICAL **: gst_ghost_pad_new: assertion '!gst_pad_is_linked (target)' failed
(WebKitWebProcess:9952): GStreamer-CRITICAL **: gst_pad_set_active: assertion 'GST_IS_PAD (pad)' failed
(WebKitWebProcess:9952): GStreamer-CRITICAL **: gst_element_add_pad: assertion 'GST_IS_PAD (pad)' failed
** (WebKitWebProcess:9952): WARNING **: (/home/eadaber/repos/WebKit/WebKitBuild/DependenciesGTK/Source/openwebrtc/transport/owr_transport_agent.c:1430):link_rtpbin_to_send_output_bin: runtime check failed: (linked_ok)
Ping me for more info. Thanks
Sometimes I also get a lot of these (when replacing the source)
==== Error message start ====
Error in element srtp-encoder.
Error: GStreamer encountered a general supporting library error.
Debugging info: /home/eadaber/repos/WebKit/WebKitBuild/DependenciesGTK/Source/gst-plugins-bad/ext/srtp/gstsrtpenc.c(1058): gst_srtp_enc_process_buffer (): /GstPipeline:transport-agent-1/GstBin:transport_bin_1/GstBin:send-output-bin-1/GstDtlsSrtpEnc:dtls_srtp_rtp_encoder_1/GstSrtpEnc:srtp-encoder:
Unable to protect buffer (protect failed) code 10
==== Error message stop ====
Yes, some changes are needed in the transport agent for this to work. Dynamically changing the pipeline layout while in PLAYING state isn't trivial.