gstreamer_rtsp_server/auto/
rtsp_session_media.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
4// DO NOT EDIT
5
6use crate::{ffi, RTSPMedia, RTSPStreamTransport};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10    #[doc(alias = "GstRTSPSessionMedia")]
11    pub struct RTSPSessionMedia(Object<ffi::GstRTSPSessionMedia, ffi::GstRTSPSessionMediaClass>);
12
13    match fn {
14        type_ => || ffi::gst_rtsp_session_media_get_type(),
15    }
16}
17
18impl RTSPSessionMedia {
19    pub const NONE: Option<&'static RTSPSessionMedia> = None;
20
21    #[doc(alias = "gst_rtsp_session_media_new")]
22    pub fn new(path: &str, media: impl IsA<RTSPMedia>) -> RTSPSessionMedia {
23        skip_assert_initialized!();
24        unsafe {
25            from_glib_full(ffi::gst_rtsp_session_media_new(
26                path.to_glib_none().0,
27                media.upcast().into_glib_ptr(),
28            ))
29        }
30    }
31}
32
33unsafe impl Send for RTSPSessionMedia {}
34unsafe impl Sync for RTSPSessionMedia {}
35
36pub trait RTSPSessionMediaExt: IsA<RTSPSessionMedia> + 'static {
37    //#[doc(alias = "gst_rtsp_session_media_alloc_channels")]
38    //fn alloc_channels(&self, range: /*Ignored*/gst_rtsp::RTSPRange) -> bool {
39    //    unsafe { TODO: call ffi:gst_rtsp_session_media_alloc_channels() }
40    //}
41
42    #[doc(alias = "gst_rtsp_session_media_get_base_time")]
43    #[doc(alias = "get_base_time")]
44    fn base_time(&self) -> Option<gst::ClockTime> {
45        unsafe {
46            from_glib(ffi::gst_rtsp_session_media_get_base_time(
47                self.as_ref().to_glib_none().0,
48            ))
49        }
50    }
51
52    #[doc(alias = "gst_rtsp_session_media_get_media")]
53    #[doc(alias = "get_media")]
54    fn media(&self) -> Option<RTSPMedia> {
55        unsafe {
56            from_glib_none(ffi::gst_rtsp_session_media_get_media(
57                self.as_ref().to_glib_none().0,
58            ))
59        }
60    }
61
62    #[doc(alias = "gst_rtsp_session_media_get_rtpinfo")]
63    #[doc(alias = "get_rtpinfo")]
64    fn rtpinfo(&self) -> Option<glib::GString> {
65        unsafe {
66            from_glib_full(ffi::gst_rtsp_session_media_get_rtpinfo(
67                self.as_ref().to_glib_none().0,
68            ))
69        }
70    }
71
72    //#[doc(alias = "gst_rtsp_session_media_get_rtsp_state")]
73    //#[doc(alias = "get_rtsp_state")]
74    //fn rtsp_state(&self) -> /*Ignored*/gst_rtsp::RTSPState {
75    //    unsafe { TODO: call ffi:gst_rtsp_session_media_get_rtsp_state() }
76    //}
77
78    #[doc(alias = "gst_rtsp_session_media_get_transport")]
79    #[doc(alias = "get_transport")]
80    fn transport(&self, idx: u32) -> Option<RTSPStreamTransport> {
81        unsafe {
82            from_glib_none(ffi::gst_rtsp_session_media_get_transport(
83                self.as_ref().to_glib_none().0,
84                idx,
85            ))
86        }
87    }
88
89    #[doc(alias = "gst_rtsp_session_media_get_transports")]
90    #[doc(alias = "get_transports")]
91    fn transports(&self) -> Vec<RTSPStreamTransport> {
92        unsafe {
93            FromGlibPtrContainer::from_glib_full(ffi::gst_rtsp_session_media_get_transports(
94                self.as_ref().to_glib_none().0,
95            ))
96        }
97    }
98
99    #[doc(alias = "gst_rtsp_session_media_matches")]
100    fn matches(&self, path: &str) -> Option<i32> {
101        unsafe {
102            let mut matched = std::mem::MaybeUninit::uninit();
103            let ret = from_glib(ffi::gst_rtsp_session_media_matches(
104                self.as_ref().to_glib_none().0,
105                path.to_glib_none().0,
106                matched.as_mut_ptr(),
107            ));
108            if ret {
109                Some(matched.assume_init())
110            } else {
111                None
112            }
113        }
114    }
115
116    //#[doc(alias = "gst_rtsp_session_media_set_rtsp_state")]
117    //fn set_rtsp_state(&self, state: /*Ignored*/gst_rtsp::RTSPState) {
118    //    unsafe { TODO: call ffi:gst_rtsp_session_media_set_rtsp_state() }
119    //}
120
121    #[doc(alias = "gst_rtsp_session_media_set_state")]
122    fn set_state(&self, state: gst::State) -> Result<(), glib::error::BoolError> {
123        unsafe {
124            glib::result_from_gboolean!(
125                ffi::gst_rtsp_session_media_set_state(
126                    self.as_ref().to_glib_none().0,
127                    state.into_glib()
128                ),
129                "Failed to set state of session media"
130            )
131        }
132    }
133
134    //#[doc(alias = "gst_rtsp_session_media_set_transport")]
135    //fn set_transport(&self, stream: &impl IsA<RTSPStream>, tr: /*Ignored*/gst_rtsp::RTSPTransport) -> RTSPStreamTransport {
136    //    unsafe { TODO: call ffi:gst_rtsp_session_media_set_transport() }
137    //}
138}
139
140impl<O: IsA<RTSPSessionMedia>> RTSPSessionMediaExt for O {}