gstreamer/auto/
functions.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, Bin, ClockTime, DebugGraphDetails, DebugLevel, Element, StackTraceFlags};
7use glib::{prelude::*, translate::*};
8
9#[doc(alias = "gst_debug_add_ring_buffer_logger")]
10pub fn debug_add_ring_buffer_logger(max_size_per_thread: u32, thread_timeout: u32) {
11    skip_assert_initialized!();
12    unsafe {
13        ffi::gst_debug_add_ring_buffer_logger(max_size_per_thread, thread_timeout);
14    }
15}
16
17#[doc(alias = "gst_debug_bin_to_dot_data")]
18pub fn debug_bin_to_dot_data(bin: &impl IsA<Bin>, details: DebugGraphDetails) -> glib::GString {
19    skip_assert_initialized!();
20    unsafe {
21        from_glib_full(ffi::gst_debug_bin_to_dot_data(
22            bin.as_ref().to_glib_none().0,
23            details.into_glib(),
24        ))
25    }
26}
27
28#[doc(alias = "gst_debug_bin_to_dot_file")]
29pub fn debug_bin_to_dot_file(
30    bin: &impl IsA<Bin>,
31    details: DebugGraphDetails,
32    file_name: impl AsRef<std::path::Path>,
33) {
34    skip_assert_initialized!();
35    unsafe {
36        ffi::gst_debug_bin_to_dot_file(
37            bin.as_ref().to_glib_none().0,
38            details.into_glib(),
39            file_name.as_ref().to_glib_none().0,
40        );
41    }
42}
43
44#[doc(alias = "gst_debug_bin_to_dot_file_with_ts")]
45pub fn debug_bin_to_dot_file_with_ts(
46    bin: &impl IsA<Bin>,
47    details: DebugGraphDetails,
48    file_name: impl AsRef<std::path::Path>,
49) {
50    skip_assert_initialized!();
51    unsafe {
52        ffi::gst_debug_bin_to_dot_file_with_ts(
53            bin.as_ref().to_glib_none().0,
54            details.into_glib(),
55            file_name.as_ref().to_glib_none().0,
56        );
57    }
58}
59
60#[doc(alias = "gst_debug_get_default_threshold")]
61pub fn debug_get_default_threshold() -> DebugLevel {
62    skip_assert_initialized!();
63    unsafe { from_glib(ffi::gst_debug_get_default_threshold()) }
64}
65
66#[doc(alias = "gst_debug_get_stack_trace")]
67pub fn debug_get_stack_trace(flags: StackTraceFlags) -> Result<glib::GString, glib::BoolError> {
68    skip_assert_initialized!();
69    unsafe {
70        Option::<_>::from_glib_full(ffi::gst_debug_get_stack_trace(flags.into_glib()))
71            .ok_or_else(|| glib::bool_error!("Failed to get stack trace"))
72    }
73}
74
75#[doc(alias = "gst_debug_is_active")]
76pub fn debug_is_active() -> bool {
77    skip_assert_initialized!();
78    unsafe { from_glib(ffi::gst_debug_is_active()) }
79}
80
81#[doc(alias = "gst_debug_is_colored")]
82pub fn debug_is_colored() -> bool {
83    skip_assert_initialized!();
84    unsafe { from_glib(ffi::gst_debug_is_colored()) }
85}
86
87#[doc(alias = "gst_debug_print_stack_trace")]
88pub fn debug_print_stack_trace() {
89    skip_assert_initialized!();
90    unsafe {
91        ffi::gst_debug_print_stack_trace();
92    }
93}
94
95#[doc(alias = "gst_debug_remove_ring_buffer_logger")]
96pub fn debug_remove_ring_buffer_logger() {
97    skip_assert_initialized!();
98    unsafe {
99        ffi::gst_debug_remove_ring_buffer_logger();
100    }
101}
102
103#[doc(alias = "gst_debug_ring_buffer_logger_get_logs")]
104pub fn debug_ring_buffer_logger_get_logs() -> Vec<glib::GString> {
105    skip_assert_initialized!();
106    unsafe { FromGlibPtrContainer::from_glib_full(ffi::gst_debug_ring_buffer_logger_get_logs()) }
107}
108
109#[doc(alias = "gst_debug_set_active")]
110pub fn debug_set_active(active: bool) {
111    skip_assert_initialized!();
112    unsafe {
113        ffi::gst_debug_set_active(active.into_glib());
114    }
115}
116
117#[doc(alias = "gst_debug_set_colored")]
118pub fn debug_set_colored(colored: bool) {
119    skip_assert_initialized!();
120    unsafe {
121        ffi::gst_debug_set_colored(colored.into_glib());
122    }
123}
124
125#[doc(alias = "gst_debug_set_default_threshold")]
126pub fn debug_set_default_threshold(level: DebugLevel) {
127    skip_assert_initialized!();
128    unsafe {
129        ffi::gst_debug_set_default_threshold(level.into_glib());
130    }
131}
132
133#[doc(alias = "gst_debug_set_threshold_for_name")]
134pub fn debug_set_threshold_for_name(name: &str, level: DebugLevel) {
135    skip_assert_initialized!();
136    unsafe {
137        ffi::gst_debug_set_threshold_for_name(name.to_glib_none().0, level.into_glib());
138    }
139}
140
141#[doc(alias = "gst_debug_set_threshold_from_string")]
142pub fn debug_set_threshold_from_string(list: &str, reset: bool) {
143    skip_assert_initialized!();
144    unsafe {
145        ffi::gst_debug_set_threshold_from_string(list.to_glib_none().0, reset.into_glib());
146    }
147}
148
149#[doc(alias = "gst_debug_unset_threshold_for_name")]
150pub fn debug_unset_threshold_for_name(name: &str) {
151    skip_assert_initialized!();
152    unsafe {
153        ffi::gst_debug_unset_threshold_for_name(name.to_glib_none().0);
154    }
155}
156
157#[doc(alias = "gst_get_main_executable_path")]
158#[doc(alias = "get_main_executable_path")]
159pub fn main_executable_path() -> Result<glib::GString, glib::BoolError> {
160    assert_initialized_main_thread!();
161    unsafe {
162        Option::<_>::from_glib_none(ffi::gst_get_main_executable_path())
163            .ok_or_else(|| glib::bool_error!("Failed to get main executable path"))
164    }
165}
166
167#[doc(alias = "gst_parse_bin_from_description")]
168pub fn parse_bin_from_description(
169    bin_description: &str,
170    ghost_unlinked_pads: bool,
171) -> Result<Bin, glib::Error> {
172    assert_initialized_main_thread!();
173    unsafe {
174        let mut error = std::ptr::null_mut();
175        let ret = ffi::gst_parse_bin_from_description(
176            bin_description.to_glib_none().0,
177            ghost_unlinked_pads.into_glib(),
178            &mut error,
179        );
180        if error.is_null() {
181            Ok(from_glib_none(ret))
182        } else {
183            Err(from_glib_full(error))
184        }
185    }
186}
187
188#[doc(alias = "gst_parse_launch")]
189pub fn parse_launch(pipeline_description: &str) -> Result<Element, glib::Error> {
190    assert_initialized_main_thread!();
191    unsafe {
192        let mut error = std::ptr::null_mut();
193        let ret = ffi::gst_parse_launch(pipeline_description.to_glib_none().0, &mut error);
194        if error.is_null() {
195            Ok(from_glib_none(ret))
196        } else {
197            Err(from_glib_full(error))
198        }
199    }
200}
201
202#[doc(alias = "gst_parse_launchv")]
203pub fn parse_launchv(argv: &[&str]) -> Result<Element, glib::Error> {
204    assert_initialized_main_thread!();
205    unsafe {
206        let mut error = std::ptr::null_mut();
207        let ret = ffi::gst_parse_launchv(argv.to_glib_none().0, &mut error);
208        if error.is_null() {
209            Ok(from_glib_none(ret))
210        } else {
211            Err(from_glib_full(error))
212        }
213    }
214}
215
216#[doc(alias = "gst_update_registry")]
217pub fn update_registry() -> Result<(), glib::error::BoolError> {
218    assert_initialized_main_thread!();
219    unsafe {
220        glib::result_from_gboolean!(ffi::gst_update_registry(), "Failed to update the registry")
221    }
222}
223
224#[doc(alias = "gst_util_get_timestamp")]
225pub fn util_get_timestamp() -> ClockTime {
226    skip_assert_initialized!();
227    unsafe { try_from_glib(ffi::gst_util_get_timestamp()).expect("mandatory glib value is None") }
228}
229
230#[doc(alias = "gst_version")]
231pub fn version() -> (u32, u32, u32, u32) {
232    skip_assert_initialized!();
233    unsafe {
234        let mut major = std::mem::MaybeUninit::uninit();
235        let mut minor = std::mem::MaybeUninit::uninit();
236        let mut micro = std::mem::MaybeUninit::uninit();
237        let mut nano = std::mem::MaybeUninit::uninit();
238        ffi::gst_version(
239            major.as_mut_ptr(),
240            minor.as_mut_ptr(),
241            micro.as_mut_ptr(),
242            nano.as_mut_ptr(),
243        );
244        (
245            major.assume_init(),
246            minor.assume_init(),
247            micro.assume_init(),
248            nano.assume_init(),
249        )
250    }
251}
252
253#[doc(alias = "gst_version_string")]
254pub fn version_string() -> glib::GString {
255    skip_assert_initialized!();
256    unsafe { from_glib_full(ffi::gst_version_string()) }
257}