diff --git a/gstreamer-base/src/adapter.rs b/gstreamer-base/src/adapter.rs index 0fdfaa394..2e3ecac8f 100644 --- a/gstreamer-base/src/adapter.rs +++ b/gstreamer-base/src/adapter.rs @@ -183,15 +183,15 @@ impl UniqueAdapter { self.0.push(buf); } - pub fn map(&mut self, nbytes: usize) -> Option { + pub fn map(&mut self, nbytes: usize) -> Result { use std::slice; unsafe { let ptr = gst_base_sys::gst_adapter_map(self.0.to_glib_none().0, nbytes); if ptr.is_null() { - None + Err(glib_bool_error!("size bytes are not available")) } else { - Some(UniqueAdapterMap( + Ok(UniqueAdapterMap( self, slice::from_raw_parts(ptr as *const u8, nbytes), )) diff --git a/gstreamer-base/src/functions.rs b/gstreamer-base/src/functions.rs index e2a3186b8..c6f55cfe0 100644 --- a/gstreamer-base/src/functions.rs +++ b/gstreamer-base/src/functions.rs @@ -15,7 +15,7 @@ use std::mem; pub fn type_find_helper_for_data, R: AsRef<[u8]>>( obj: Option<&P>, data: R, -) -> Option<(gst::Caps, gst::TypeFindProbability)> { +) -> Result<(gst::Caps, gst::TypeFindProbability), glib::error::BoolError> { assert_initialized_main_thread!(); unsafe { let mut prob = mem::MaybeUninit::uninit(); @@ -28,9 +28,9 @@ pub fn type_find_helper_for_data, R: AsRef<[u8]>>( prob.as_mut_ptr(), ); if ret.is_null() { - None + Err(glib_bool_error!("No type could be found")) } else { - Some((from_glib_full(ret), from_glib(prob.assume_init()))) + Ok((from_glib_full(ret), from_glib(prob.assume_init()))) } } } @@ -40,7 +40,7 @@ pub fn type_find_helper_for_data_with_extension, R: AsRef<[u obj: Option<&P>, data: R, extension: Option<&str>, -) -> Option<(gst::Caps, gst::TypeFindProbability)> { +) -> Result<(gst::Caps, gst::TypeFindProbability), glib::error::BoolError> { assert_initialized_main_thread!(); unsafe { let mut prob = mem::MaybeUninit::uninit(); @@ -54,9 +54,9 @@ pub fn type_find_helper_for_data_with_extension, R: AsRef<[u prob.as_mut_ptr(), ); if ret.is_null() { - None + Err(glib_bool_error!("No type could be found")) } else { - Some((from_glib_full(ret), from_glib(prob.assume_init()))) + Ok((from_glib_full(ret), from_glib(prob.assume_init()))) } } } @@ -64,7 +64,7 @@ pub fn type_find_helper_for_data_with_extension, R: AsRef<[u pub fn type_find_helper_for_buffer>( obj: Option<&P>, buf: &gst::Buffer, -) -> Option<(gst::Caps, gst::TypeFindProbability)> { +) -> Result<(gst::Caps, gst::TypeFindProbability), glib::error::BoolError> { assert_initialized_main_thread!(); unsafe { let mut prob = mem::MaybeUninit::uninit(); @@ -74,9 +74,9 @@ pub fn type_find_helper_for_buffer>( prob.as_mut_ptr(), ); if ret.is_null() { - None + Err(glib_bool_error!("No type could be found")) } else { - Some((from_glib_full(ret), from_glib(prob.assume_init()))) + Ok((from_glib_full(ret), from_glib(prob.assume_init()))) } } } @@ -86,7 +86,7 @@ pub fn type_find_helper_for_buffer_with_extension>( obj: Option<&P>, buf: &gst::Buffer, extension: Option<&str>, -) -> Option<(gst::Caps, gst::TypeFindProbability)> { +) -> Result<(gst::Caps, gst::TypeFindProbability), glib::error::BoolError> { assert_initialized_main_thread!(); unsafe { let mut prob = mem::MaybeUninit::uninit(); @@ -97,9 +97,9 @@ pub fn type_find_helper_for_buffer_with_extension>( prob.as_mut_ptr(), ); if ret.is_null() { - None + Err(glib_bool_error!("No type could be found")) } else { - Some((from_glib_full(ret), from_glib(prob.assume_init()))) + Ok((from_glib_full(ret), from_glib(prob.assume_init()))) } } } diff --git a/gstreamer-video/src/video_info.rs b/gstreamer-video/src/video_info.rs index ebaa91cf1..88b79a5e0 100644 --- a/gstreamer-video/src/video_info.rs +++ b/gstreamer-video/src/video_info.rs @@ -147,9 +147,9 @@ impl PartialEq for VideoColorimetry { impl Eq for VideoColorimetry {} impl str::FromStr for ::VideoColorimetry { - type Err = (); + type Err = glib::error::BoolError; - fn from_str(s: &str) -> Result { + fn from_str(s: &str) -> Result { assert_initialized_main_thread!(); unsafe { @@ -161,7 +161,7 @@ impl str::FromStr for ::VideoColorimetry { if valid { Ok(VideoColorimetry(colorimetry.assume_init())) } else { - Err(()) + Err(glib_bool_error!("Invalid colorimetry info")) } } } @@ -834,9 +834,9 @@ impl ::VideoFieldOrder { #[cfg(any(feature = "v1_12", feature = "dox"))] impl str::FromStr for ::VideoFieldOrder { - type Err = (); + type Err = glib::error::BoolError; - fn from_str(s: &str) -> Result { + fn from_str(s: &str) -> Result { assert_initialized_main_thread!(); unsafe { @@ -867,9 +867,9 @@ impl ::VideoInterlaceMode { } impl str::FromStr for ::VideoInterlaceMode { - type Err = (); + type Err = glib::error::BoolError; - fn from_str(s: &str) -> Result { + fn from_str(s: &str) -> Result { assert_initialized_main_thread!(); unsafe {