From 5476e3d7591e4b128e23ce8940c2920e052e0870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Laignel?= Date: Wed, 20 Mar 2024 19:53:35 +0100 Subject: [PATCH] webrtcsink: prevent video-info error log for audio streams The following error is logged when `webrtcsink` is feeded with an audio stream: > ERROR video-info video-info.c:540:gst_video_info_from_caps: > wrong name 'audio/x-raw', expected video/ or image/ This commit bypasses `VideoInfo::from_caps` for audio streams. Part-of: --- net/webrtc/src/webrtcsink/imp.rs | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/net/webrtc/src/webrtcsink/imp.rs b/net/webrtc/src/webrtcsink/imp.rs index e1c5aca0..07e62ead 100644 --- a/net/webrtc/src/webrtcsink/imp.rs +++ b/net/webrtc/src/webrtcsink/imp.rs @@ -3537,19 +3537,22 @@ impl BaseWebRTCSink { } }); - if let Ok(video_info) = gst_video::VideoInfo::from_caps(e.caps()) { - // update video encoder info used when downscaling/downsampling the input - let stream_name = pad.name().to_string(); + if e.caps().structure(0).unwrap().name().starts_with("video/") { + if let Ok(video_info) = gst_video::VideoInfo::from_caps(e.caps()) { + // update video encoder info used when downscaling/downsampling the input + let stream_name = pad.name().to_string(); - state - .sessions - .values_mut() - .flat_map(|session| session.unwrap_mut().encoders.iter_mut()) - .filter(|encoder| encoder.stream_name == stream_name) - .for_each(|encoder| { - encoder.halved_framerate = video_info.fps().mul(gst::Fraction::new(1, 2)); - encoder.video_info = video_info.clone(); - }); + state + .sessions + .values_mut() + .flat_map(|session| session.unwrap_mut().encoders.iter_mut()) + .filter(|encoder| encoder.stream_name == stream_name) + .for_each(|encoder| { + encoder.halved_framerate = + video_info.fps().mul(gst::Fraction::new(1, 2)); + encoder.video_info = video_info.clone(); + }); + } } }