diff --git a/gstreamer-rtp/src/lib.rs b/gstreamer-rtp/src/lib.rs index 610d17075..8f84702c6 100644 --- a/gstreamer-rtp/src/lib.rs +++ b/gstreamer-rtp/src/lib.rs @@ -3,6 +3,7 @@ #![cfg_attr(feature = "dox", feature(doc_cfg))] #![allow(clippy::manual_range_contains)] #![allow(clippy::non_send_fields_in_send_ty)] +#![allow(clippy::missing_safety_doc)] #![doc = include_str!("../README.md")] pub use ffi; diff --git a/gstreamer-rtp/src/rtp_buffer.rs b/gstreamer-rtp/src/rtp_buffer.rs index f79300941..94ea75847 100644 --- a/gstreamer-rtp/src/rtp_buffer.rs +++ b/gstreamer-rtp/src/rtp_buffer.rs @@ -304,6 +304,29 @@ impl<'a, T> RTPBuffer<'a, T> { } } + #[doc(alias = "get_payload_buffer")] + #[doc(alias = "gst_rtp_buffer_get_payload_buffer")] + pub fn payload_buffer(&self) -> Result { + unsafe { + Option::<_>::from_glib_full(ffi::gst_rtp_buffer_get_payload_buffer( + glib::translate::mut_override(&self.rtp_buffer), + )) + .ok_or_else(|| glib::bool_error!("Failed to get payload buffer")) + } + } + + pub fn buffer(&self) -> Option<&gst::BufferRef> { + unsafe { + let ptr = self.rtp_buffer.buffer; + + if ptr.is_null() { + None + } else { + Some(gst::BufferRef::from_ptr(ptr)) + } + } + } + #[doc(alias = "get_extension")] pub fn is_extension(&self) -> bool { unsafe {