gstreamer_pbutils/auto/
discoverer_info.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#![allow(deprecated)]
6
7use crate::{
8    ffi, DiscovererAudioInfo, DiscovererContainerInfo, DiscovererResult, DiscovererSerializeFlags,
9    DiscovererStreamInfo, DiscovererSubtitleInfo, DiscovererVideoInfo,
10};
11use glib::translate::*;
12
13glib::wrapper! {
14    #[doc(alias = "GstDiscovererInfo")]
15    pub struct DiscovererInfo(Object<ffi::GstDiscovererInfo>);
16
17    match fn {
18        type_ => || ffi::gst_discoverer_info_get_type(),
19    }
20}
21
22impl DiscovererInfo {
23    #[doc(alias = "gst_discoverer_info_copy")]
24    #[must_use]
25    pub fn copy(&self) -> DiscovererInfo {
26        unsafe { from_glib_full(ffi::gst_discoverer_info_copy(self.to_glib_none().0)) }
27    }
28
29    #[doc(alias = "gst_discoverer_info_get_audio_streams")]
30    #[doc(alias = "get_audio_streams")]
31    pub fn audio_streams(&self) -> Vec<DiscovererAudioInfo> {
32        unsafe {
33            FromGlibPtrContainer::from_glib_full(ffi::gst_discoverer_info_get_audio_streams(
34                self.to_glib_none().0,
35            ))
36        }
37    }
38
39    #[doc(alias = "gst_discoverer_info_get_container_streams")]
40    #[doc(alias = "get_container_streams")]
41    pub fn container_streams(&self) -> Vec<DiscovererContainerInfo> {
42        unsafe {
43            FromGlibPtrContainer::from_glib_full(ffi::gst_discoverer_info_get_container_streams(
44                self.to_glib_none().0,
45            ))
46        }
47    }
48
49    #[doc(alias = "gst_discoverer_info_get_duration")]
50    #[doc(alias = "get_duration")]
51    pub fn duration(&self) -> Option<gst::ClockTime> {
52        unsafe { from_glib(ffi::gst_discoverer_info_get_duration(self.to_glib_none().0)) }
53    }
54
55    #[doc(alias = "gst_discoverer_info_get_live")]
56    #[doc(alias = "get_live")]
57    pub fn is_live(&self) -> bool {
58        unsafe { from_glib(ffi::gst_discoverer_info_get_live(self.to_glib_none().0)) }
59    }
60
61    #[doc(alias = "gst_discoverer_info_get_misc")]
62    #[doc(alias = "get_misc")]
63    pub fn misc(&self) -> Option<gst::Structure> {
64        unsafe { from_glib_none(ffi::gst_discoverer_info_get_misc(self.to_glib_none().0)) }
65    }
66
67    #[doc(alias = "gst_discoverer_info_get_missing_elements_installer_details")]
68    #[doc(alias = "get_missing_elements_installer_details")]
69    pub fn missing_elements_installer_details(&self) -> Vec<glib::GString> {
70        unsafe {
71            FromGlibPtrContainer::from_glib_none(
72                ffi::gst_discoverer_info_get_missing_elements_installer_details(
73                    self.to_glib_none().0,
74                ),
75            )
76        }
77    }
78
79    #[doc(alias = "gst_discoverer_info_get_result")]
80    #[doc(alias = "get_result")]
81    pub fn result(&self) -> DiscovererResult {
82        unsafe { from_glib(ffi::gst_discoverer_info_get_result(self.to_glib_none().0)) }
83    }
84
85    #[doc(alias = "gst_discoverer_info_get_seekable")]
86    #[doc(alias = "get_seekable")]
87    pub fn is_seekable(&self) -> bool {
88        unsafe { from_glib(ffi::gst_discoverer_info_get_seekable(self.to_glib_none().0)) }
89    }
90
91    #[doc(alias = "gst_discoverer_info_get_stream_info")]
92    #[doc(alias = "get_stream_info")]
93    pub fn stream_info(&self) -> Option<DiscovererStreamInfo> {
94        unsafe {
95            from_glib_full(ffi::gst_discoverer_info_get_stream_info(
96                self.to_glib_none().0,
97            ))
98        }
99    }
100
101    #[doc(alias = "gst_discoverer_info_get_stream_list")]
102    #[doc(alias = "get_stream_list")]
103    pub fn stream_list(&self) -> Vec<DiscovererStreamInfo> {
104        unsafe {
105            FromGlibPtrContainer::from_glib_full(ffi::gst_discoverer_info_get_stream_list(
106                self.to_glib_none().0,
107            ))
108        }
109    }
110
111    #[doc(alias = "gst_discoverer_info_get_streams")]
112    #[doc(alias = "get_streams")]
113    pub fn streams(&self, streamtype: glib::types::Type) -> Vec<DiscovererStreamInfo> {
114        unsafe {
115            FromGlibPtrContainer::from_glib_full(ffi::gst_discoverer_info_get_streams(
116                self.to_glib_none().0,
117                streamtype.into_glib(),
118            ))
119        }
120    }
121
122    #[doc(alias = "gst_discoverer_info_get_subtitle_streams")]
123    #[doc(alias = "get_subtitle_streams")]
124    pub fn subtitle_streams(&self) -> Vec<DiscovererSubtitleInfo> {
125        unsafe {
126            FromGlibPtrContainer::from_glib_full(ffi::gst_discoverer_info_get_subtitle_streams(
127                self.to_glib_none().0,
128            ))
129        }
130    }
131
132    #[cfg_attr(feature = "v1_20", deprecated = "Since 1.20")]
133    #[allow(deprecated)]
134    #[doc(alias = "gst_discoverer_info_get_tags")]
135    #[doc(alias = "get_tags")]
136    pub fn tags(&self) -> Option<gst::TagList> {
137        unsafe { from_glib_none(ffi::gst_discoverer_info_get_tags(self.to_glib_none().0)) }
138    }
139
140    #[doc(alias = "gst_discoverer_info_get_toc")]
141    #[doc(alias = "get_toc")]
142    pub fn toc(&self) -> Option<gst::Toc> {
143        unsafe { from_glib_none(ffi::gst_discoverer_info_get_toc(self.to_glib_none().0)) }
144    }
145
146    #[doc(alias = "gst_discoverer_info_get_uri")]
147    #[doc(alias = "get_uri")]
148    pub fn uri(&self) -> glib::GString {
149        unsafe { from_glib_none(ffi::gst_discoverer_info_get_uri(self.to_glib_none().0)) }
150    }
151
152    #[doc(alias = "gst_discoverer_info_get_video_streams")]
153    #[doc(alias = "get_video_streams")]
154    pub fn video_streams(&self) -> Vec<DiscovererVideoInfo> {
155        unsafe {
156            FromGlibPtrContainer::from_glib_full(ffi::gst_discoverer_info_get_video_streams(
157                self.to_glib_none().0,
158            ))
159        }
160    }
161
162    #[doc(alias = "gst_discoverer_info_to_variant")]
163    pub fn to_variant(&self, flags: DiscovererSerializeFlags) -> glib::Variant {
164        unsafe {
165            from_glib_full(ffi::gst_discoverer_info_to_variant(
166                self.to_glib_none().0,
167                flags.into_glib(),
168            ))
169        }
170    }
171
172    #[doc(alias = "gst_discoverer_info_from_variant")]
173    pub fn from_variant(variant: &glib::Variant) -> Result<DiscovererInfo, glib::BoolError> {
174        assert_initialized_main_thread!();
175        unsafe {
176            Option::<_>::from_glib_full(ffi::gst_discoverer_info_from_variant(
177                variant.to_glib_none().0,
178            ))
179            .ok_or_else(|| glib::bool_error!("Failed to create DiscovererInfo from Variant"))
180        }
181    }
182}
183
184unsafe impl Send for DiscovererInfo {}
185unsafe impl Sync for DiscovererInfo {}