diff options
-rw-r--r-- | net/webrtc/src/webrtcsink/imp.rs | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/net/webrtc/src/webrtcsink/imp.rs b/net/webrtc/src/webrtcsink/imp.rs index e8846cf7e..8d88b413c 100644 --- a/net/webrtc/src/webrtcsink/imp.rs +++ b/net/webrtc/src/webrtcsink/imp.rs @@ -1479,9 +1479,15 @@ impl BaseWebRTCSink { let ssrc = BaseWebRTCSink::generate_ssrc(element, webrtc_pads); let media_idx = webrtc_pads.len() as i32; - let pad = webrtcbin - .request_pad_simple(&format!("sink_{}", media_idx)) - .unwrap(); + let Some(pad) = webrtcbin.request_pad_simple(&format!("sink_{}", media_idx)) else { + gst::error!(CAT, obj: element, "Failed to request pad from webrtcbin"); + gst::element_error!( + element, + gst::StreamError::Failed, + ["Failed to request pad from webrtcbin"] + ); + return; + }; let transceiver = pad.property::<gst_webrtc::WebRTCRTPTransceiver>("transceiver"); @@ -1574,9 +1580,15 @@ impl BaseWebRTCSink { payloader_caps ); - let pad = webrtcbin - .request_pad_simple(&format!("sink_{}", media_idx)) - .unwrap(); + let Some(pad) = webrtcbin.request_pad_simple(&format!("sink_{}", media_idx)) else { + gst::error!(CAT, obj: element, "Failed to request pad from webrtcbin"); + gst::element_error!( + element, + gst::StreamError::Failed, + ["Failed to request pad from webrtcbin"] + ); + return; + }; let transceiver = pad.property::<gst_webrtc::WebRTCRTPTransceiver>("transceiver"); |