gstreamer_rtsp_server/
rtsp_media.rs1use glib::{prelude::*, translate::*};
4
5use crate::{ffi, RTSPMedia};
6
7mod sealed {
8 pub trait Sealed {}
9 impl<T: super::IsA<super::RTSPMedia>> Sealed for T {}
10}
11
12pub trait RTSPMediaExtManual: sealed::Sealed + IsA<RTSPMedia> + 'static {
13 #[doc(alias = "gst_rtsp_media_take_pipeline")]
18 fn take_pipeline(&self, pipeline: impl IsA<gst::Pipeline>) {
19 unsafe {
20 let pipeline = pipeline.upcast().into_glib_ptr();
21 glib::gobject_ffi::g_object_force_floating(pipeline as *mut _);
23 ffi::gst_rtsp_media_take_pipeline(self.as_ref().to_glib_none().0, pipeline);
24 if glib::gobject_ffi::g_object_is_floating(pipeline as *mut _) != glib::ffi::GFALSE {
25 glib::gobject_ffi::g_object_ref_sink(pipeline as *mut _);
26 }
27 }
28 }
29}
30
31impl<O: IsA<RTSPMedia>> RTSPMediaExtManual for O {}