diff --git a/gstreamer/src/caps.rs b/gstreamer/src/caps.rs index e04da52ca..7c6c81d9a 100644 --- a/gstreamer/src/caps.rs +++ b/gstreamer/src/caps.rs @@ -128,6 +128,10 @@ impl CapsRef { } pub fn get_structure(&self, idx: u32) -> Option<&StructureRef> { + if idx >= self.get_size() { + return None; + } + unsafe { let structure = ffi::gst_caps_get_structure(self.as_ptr(), idx); if structure.is_null() { @@ -141,6 +145,10 @@ impl CapsRef { } pub fn get_mut_structure(&mut self, idx: u32) -> Option<&mut StructureRef> { + if idx >= self.get_size() { + return None; + } + unsafe { let structure = ffi::gst_caps_get_structure(self.as_ptr(), idx); if structure.is_null() {