Hi all, I have the issue when webrtcbin hangs when I remove it from pipeline and move to NULL state. I log I see it hangs when it's switching to READY state. What I do: My pipeline looks like this: videosource -> tee -> queue -> rtppay -> capsfilter -> webrtcbin audiosource -> tee -> queue -> opusenc -> rtppay -> capsfilter -> webrtcbin 1. I block tee src pad for video and audio branch 2. I unlink all elements for both video and audio branches starting from tee (via unlink_many call for tee, queue, rtppay, capfilter, webrtc) 3. I remove unlinked elements and set state to NULL (I start from queues and end by webrtcbin) 4. All elements are removed and switched to NULL successfully. But webrtcbin is removed with no error but when it switches to NULL state it hangs My log is below: on_server_message: BYE [CAMERA_DEBUG] iterate pipeline [CAMERA_DEBUG] element: webrtc[transportreceivebin1] [CAMERA_DEBUG] element: transportreceivebin1[funnel9] [CAMERA_DEBUG] element: transportreceivebin1[funnel8] [CAMERA_DEBUG] element: transportreceivebin1[funnel7] [CAMERA_DEBUG] element: transportreceivebin1[nicesrc3] [CAMERA_DEBUG] element: transportreceivebin1[capsfilter5] [CAMERA_DEBUG] element: transportreceivebin1[queue7] [CAMERA_DEBUG] element: transportreceivebin1[dtlssrtpdec3] [CAMERA_DEBUG] element: dtlssrtpdec3[srtpdec3] [CAMERA_DEBUG] element: dtlssrtpdec3[dtlsdec3] [CAMERA_DEBUG] element: dtlssrtpdec3[dtlssrtpdemux3] [CAMERA_DEBUG] element: transportreceivebin1[nicesrc2] [CAMERA_DEBUG] element: transportreceivebin1[capsfilter4] [CAMERA_DEBUG] element: transportreceivebin1[queue6] [CAMERA_DEBUG] element: transportreceivebin1[dtlssrtpdec2] [CAMERA_DEBUG] element: dtlssrtpdec2[srtpdec2] [CAMERA_DEBUG] element: dtlssrtpdec2[dtlsdec2] [CAMERA_DEBUG] element: dtlssrtpdec2[dtlssrtpdemux2] [CAMERA_DEBUG] element: webrtc[transportsendbin1] [CAMERA_DEBUG] element: transportsendbin1[nicesink3] [CAMERA_DEBUG] element: transportsendbin1[dtlssrtpenc3] [CAMERA_DEBUG] element: dtlssrtpenc3[funnel6] [CAMERA_DEBUG] element: dtlssrtpenc3[srtpenc3] [CAMERA_DEBUG] element: dtlssrtpenc3[dtlsenc3] [CAMERA_DEBUG] element: transportsendbin1[nicesink2] [CAMERA_DEBUG] element: transportsendbin1[dtlssrtpenc2] [CAMERA_DEBUG] element: dtlssrtpenc2[clocksync_0] [CAMERA_DEBUG] element: dtlssrtpenc2[funnel5] [CAMERA_DEBUG] element: dtlssrtpenc2[srtpenc2] [CAMERA_DEBUG] element: dtlssrtpenc2[dtlsenc2] [CAMERA_DEBUG] element: transportsendbin1[outputselector1] [CAMERA_DEBUG] element: webrtc[transportreceivebin0] [CAMERA_DEBUG] element: transportreceivebin0[funnel4] [CAMERA_DEBUG] element: transportreceivebin0[funnel3] [CAMERA_DEBUG] element: transportreceivebin0[funnel2] [CAMERA_DEBUG] element: transportreceivebin0[nicesrc1] [CAMERA_DEBUG] element: transportreceivebin0[capsfilter3] [CAMERA_DEBUG] element: transportreceivebin0[queue5] [CAMERA_DEBUG] element: transportreceivebin0[dtlssrtpdec1] [CAMERA_DEBUG] element: dtlssrtpdec1[srtpdec1] [CAMERA_DEBUG] element: dtlssrtpdec1[dtlsdec1] [CAMERA_DEBUG] element: dtlssrtpdec1[dtlssrtpdemux1] [CAMERA_DEBUG] element: transportreceivebin0[nicesrc0] [CAMERA_DEBUG] element: transportreceivebin0[capsfilter2] [CAMERA_DEBUG] element: transportreceivebin0[queue4] [CAMERA_DEBUG] element: transportreceivebin0[dtlssrtpdec0] [CAMERA_DEBUG] element: dtlssrtpdec0[srtpdec0] [CAMERA_DEBUG] element: dtlssrtpdec0[dtlsdec0] [CAMERA_DEBUG] element: dtlssrtpdec0[dtlssrtpdemux0] [CAMERA_DEBUG] element: webrtc[transportsendbin0] [CAMERA_DEBUG] element: transportsendbin0[nicesink1] [CAMERA_DEBUG] element: transportsendbin0[dtlssrtpenc1] [CAMERA_DEBUG] element: dtlssrtpenc1[funnel1] [CAMERA_DEBUG] element: dtlssrtpenc1[srtpenc1] [CAMERA_DEBUG] element: dtlssrtpenc1[dtlsenc1] [CAMERA_DEBUG] element: transportsendbin0[nicesink0] [CAMERA_DEBUG] element: transportsendbin0[dtlssrtpenc0] [CAMERA_DEBUG] element: dtlssrtpenc0[clocksync_0] [CAMERA_DEBUG] element: dtlssrtpenc0[funnel0] [CAMERA_DEBUG] element: dtlssrtpenc0[srtpenc0] [CAMERA_DEBUG] element: dtlssrtpenc0[dtlsenc0] [CAMERA_DEBUG] element: transportsendbin0[outputselector0] [CAMERA_DEBUG] element: webrtc[rtpbin] [CAMERA_DEBUG] element: rtpbin[rtpptdemux1] [CAMERA_DEBUG] element: rtpbin[rtpjitterbuffer1] [CAMERA_DEBUG] element: rtpbin[rtpptdemux0] [CAMERA_DEBUG] element: rtpbin[rtpjitterbuffer0] [CAMERA_DEBUG] element: rtpbin[rtpstorage1] [CAMERA_DEBUG] element: rtpbin[rtpssrcdemux1] [CAMERA_DEBUG] element: rtpbin[rtpsession1] [CAMERA_DEBUG] element: rtpbin[rtpstorage0] [CAMERA_DEBUG] element: rtpbin[rtpssrcdemux0] [CAMERA_DEBUG] element: rtpbin[rtpsession0] [CAMERA_DEBUG] restart webrtc async [CAMERA_DEBUG] webrtcbin sink pad: sink_0 0:00:24.226477004 2600 0x30d6b20 LOG webrtcbin gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1354:_check_if_negotiation_is_needed:<webrtc> checking if negotiation is needed 0:00:24.226687545 2600 0x30d6b20 LOG webrtcbin gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1504:_check_if_negotiation_is_needed:<webrtc> no negotiation needed 0:00:24.228415793 2600 0x3199bb0 INFO webrtcbin gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:5640:on_rtpbin_sender_ssrc_active:<webrtc> session 0 ssrc 1503644076 sender ssrc active 0:00:24.228859750 2600 0x3199bb0 INFO webrtcbin gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:5624:on_rtpbin_timeout:<webrtc> session 0 ssrc 1503644076 timeout [CAMERA_DEBUG] webrtcbin sink pad: sink_1 0:00:24.229811082 2600 0x30d6b20 LOG webrtcbin gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1354:_check_if_negotiation_is_needed:<webrtc> checking if negotiation is needed 0:00:24.230393290 2600 0x30d6b20 LOG webrtcbin gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:1504:_check_if_negotiation_is_needed:<webrtc> no negotiation needed [CAMERA_DEBUG] block tee pads [CAMERA_DEBUG] block pad with name: src_1 [CAMERA_DEBUG] block pad with name: src_2 [CAMERA_DEBUG] unlink incomming audio [CAMERA_DEBUG] unlink video branch [CAMERA_DEBUG] unlink audio branch [CAMERA_DEBUG] remove element: videoqueue [CAMERA_DEBUG] set state NULL for element: videoqueue 0:00:24.236387073 2600 0x3103290 INFO webrtcbin gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:5640:on_rtpbin_sender_ssrc_active:<webrtc> session 1 ssrc 1609958542 sender ssrc active 0:00:24.236876739 2600 0x3103290 INFO webrtcbin gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:5624:on_rtpbin_timeout:<webrtc> session 1 ssrc 1609958542 timeout 0:00:24.237587780 2600 0x3199bb0 INFO webrtcbin gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:5632:on_rtpbin_new_sender_ssrc:<webrtc> session 0 ssrc 1503644076 new sender ssrc 0:00:24.238524487 2600 0x3199bb0 INFO webrtcbin gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:5640:on_rtpbin_sender_ssrc_active:<webrtc> session 0 ssrc 1503644076 sender ssrc active [CAMERA_DEBUG] remove element: vrtp [CAMERA_DEBUG] set state NULL for element: vrtp [CAMERA_DEBUG] remove element: vrtpcaps [CAMERA_DEBUG] set state NULL for element: vrtpcaps [CAMERA_DEBUG] remove element: audioqueue [CAMERA_DEBUG] set state NULL for element: audioqueue [CAMERA_DEBUG] remove element: aconvert [CAMERA_DEBUG] set state NULL for element: aconvert [CAMERA_DEBUG] remove element: opusenc [CAMERA_DEBUG] set state NULL for element: opusenc [CAMERA_DEBUG] remove element: artp [CAMERA_DEBUG] set state NULL for element: artp [CAMERA_DEBUG] remove element: artpcaps [CAMERA_DEBUG] set state NULL for element: artpcaps [CAMERA_DEBUG] remove element: decodebin1 [CAMERA_DEBUG] set state NULL for element: decodebin1 [CAMERA_DEBUG] remove element: queue8 [CAMERA_DEBUG] set state NULL for element: queue8 [CAMERA_DEBUG] remove element: audioconvert0 [CAMERA_DEBUG] set state NULL for element: audioconvert0 [CAMERA_DEBUG] remove element: audioresample0 [CAMERA_DEBUG] set state NULL for element: audioresample0 [CAMERA_DEBUG] remove element: autoaudiosink0 [CAMERA_DEBUG] set state NULL for element: autoaudiosink0 0:00:24.391078814 2600 0x3103290 INFO webrtcbin gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:5632:on_rtpbin_new_sender_ssrc:<webrtc> session 1 ssrc 1609958542 new sender ssrc <=== [tvv777/get/discovery]: [] ===> [tvv777/get/discovery/response/0]: [type=doorbell_zrt_t30 device_id=tvv777 ip=192.168.1.14 state=1 ] [CAMERA_DEBUG] remove element: webrtc [CAMERA_DEBUG] set state NULL for element: webrtc 0:00:24.490655175 2600 0x30d6b20 DEBUG webrtcbin gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:5737:gst_webrtc_bin_change_state: changing state: PLAYING => PAUSED 0:00:24.490904258 2600 0x30d6b20 DEBUG webrtctransportsendbin gst-plugins-bad-1.18.2/ext/webrtc/transportsendbin.c:195:transport_send_bin_change_state:<transportsendbin1> changing state: PLAYING => PAUSED 0:00:24.491645632 2600 0x30d6b20 DEBUG webrtctransportsendbin gst-plugins-bad-1.18.2/ext/webrtc/transportsendbin.c:195:transport_send_bin_change_state:<transportsendbin0> changing state: PLAYING => PAUSED 0:00:24.492981046 2600 0x30d6b20 DEBUG webrtctransportreceivebin gst-plugins-bad-1.18.2/ext/webrtc/transportreceivebin.c:236:transport_receive_bin_change_state: changing state: PLAYING => PAUSED 0:00:24.493846087 2600 0x30d6b20 DEBUG webrtctransportreceivebin gst-plugins-bad-1.18.2/ext/webrtc/transportreceivebin.c:236:transport_receive_bin_change_state: changing state: PLAYING => PAUSED 0:00:24.494728002 2600 0x30d6b20 DEBUG webrtcbin gst-plugins-bad-1.18.2/ext/webrtc/gstwebrtcbin.c:5737:gst_webrtc_bin_change_state: changing state: PAUSED => READY ================ Here it hangs ================================ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |