gstreamer_pbutils/auto/
discoverer_info.rs1#![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 {}