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, GLContext};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10 #[doc(alias = "GstGLUpload")]
11 pub struct GLUpload(Object<ffi::GstGLUpload, ffi::GstGLUploadClass>) @extends gst::Object;
12
13 match fn {
14 type_ => || ffi::gst_gl_upload_get_type(),
15 }
16}
17
18impl GLUpload {
19 #[doc(alias = "gst_gl_upload_new")]
20 pub fn new(context: &impl IsA<GLContext>) -> GLUpload {
21 skip_assert_initialized!();
22 unsafe { from_glib_full(ffi::gst_gl_upload_new(context.as_ref().to_glib_none().0)) }
23 }
24
25 #[cfg(feature = "v1_24")]
26 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
27 #[doc(alias = "gst_gl_upload_fixate_caps")]
28 pub fn fixate_caps(
29 &self,
30 direction: gst::PadDirection,
31 caps: &gst::Caps,
32 othercaps: gst::Caps,
33 ) -> gst::Caps {
34 unsafe {
35 from_glib_full(ffi::gst_gl_upload_fixate_caps(
36 self.to_glib_none().0,
37 direction.into_glib(),
38 caps.to_glib_none().0,
39 othercaps.into_glib_ptr(),
40 ))
41 }
42 }
43
44 #[doc(alias = "gst_gl_upload_get_caps")]
45 #[doc(alias = "get_caps")]
46 pub fn caps(&self) -> (gst::Caps, gst::Caps) {
47 unsafe {
48 let mut in_caps = std::ptr::null_mut();
49 let mut out_caps = std::ptr::null_mut();
50 ffi::gst_gl_upload_get_caps(self.to_glib_none().0, &mut in_caps, &mut out_caps);
51 (from_glib_full(in_caps), from_glib_full(out_caps))
52 }
53 }
54
55 #[doc(alias = "gst_gl_upload_set_caps")]
56 pub fn set_caps(
57 &self,
58 in_caps: &gst::Caps,
59 out_caps: &gst::Caps,
60 ) -> Result<(), glib::error::BoolError> {
61 unsafe {
62 glib::result_from_gboolean!(
63 ffi::gst_gl_upload_set_caps(
64 self.to_glib_none().0,
65 in_caps.to_glib_none().0,
66 out_caps.to_glib_none().0
67 ),
68 "Failed to set caps"
69 )
70 }
71 }
72
73 #[doc(alias = "gst_gl_upload_set_context")]
74 pub fn set_context(&self, context: &impl IsA<GLContext>) {
75 unsafe {
76 ffi::gst_gl_upload_set_context(
77 self.to_glib_none().0,
78 context.as_ref().to_glib_none().0,
79 );
80 }
81 }
82
83 #[doc(alias = "gst_gl_upload_transform_caps")]
84 pub fn transform_caps(
85 &self,
86 context: &impl IsA<GLContext>,
87 direction: gst::PadDirection,
88 caps: &gst::Caps,
89 filter: &gst::Caps,
90 ) -> gst::Caps {
91 unsafe {
92 from_glib_full(ffi::gst_gl_upload_transform_caps(
93 self.to_glib_none().0,
94 context.as_ref().to_glib_none().0,
95 direction.into_glib(),
96 caps.to_glib_none().0,
97 filter.to_glib_none().0,
98 ))
99 }
100 }
101
102 #[doc(alias = "gst_gl_upload_get_input_template_caps")]
103 #[doc(alias = "get_input_template_caps")]
104 pub fn input_template_caps() -> gst::Caps {
105 assert_initialized_main_thread!();
106 unsafe { from_glib_full(ffi::gst_gl_upload_get_input_template_caps()) }
107 }
108}
109
110unsafe impl Send for GLUpload {}
111unsafe impl Sync for GLUpload {}
112