lib.rs 11 KB
Newer Older
Sebastian Dröge's avatar
Sebastian Dröge committed
1 2
// This file was generated by gir (https://github.com/gtk-rs/gir @ d1e88f9)
// from gir-files (https://github.com/gtk-rs/gir-files @ 63dd366)
Sebastian Dröge's avatar
Sebastian Dröge committed
3 4
// DO NOT EDIT

5
#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
6 7 8 9 10
#![allow(
    clippy::approx_constant,
    clippy::type_complexity,
    clippy::unreadable_literal
)]
Sebastian Dröge's avatar
Sebastian Dröge committed
11 12 13

extern crate glib_sys as glib;
extern crate gstreamer_base_sys as gst_base;
14 15
extern crate gstreamer_sys as gst;
extern crate libc;
Sebastian Dröge's avatar
Sebastian Dröge committed
16 17

#[allow(unused_imports)]
18 19 20 21
use libc::{
    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
    intptr_t, size_t, ssize_t, time_t, uintptr_t, FILE,
};
Sebastian Dröge's avatar
Sebastian Dröge committed
22 23

#[allow(unused_imports)]
24
use glib::{gboolean, gconstpointer, gpointer, GType};
Sebastian Dröge's avatar
Sebastian Dröge committed
25 26

// Enums
27 28 29 30
pub type GstAppStreamType = c_int;
pub const GST_APP_STREAM_TYPE_STREAM: GstAppStreamType = 0;
pub const GST_APP_STREAM_TYPE_SEEKABLE: GstAppStreamType = 1;
pub const GST_APP_STREAM_TYPE_RANDOM_ACCESS: GstAppStreamType = 2;
Sebastian Dröge's avatar
Sebastian Dröge committed
31 32 33

// Records
#[repr(C)]
34
#[derive(Copy, Clone)]
Sebastian Dröge's avatar
Sebastian Dröge committed
35 36 37 38 39 40 41
pub struct GstAppSinkCallbacks {
    pub eos: Option<unsafe extern "C" fn(*mut GstAppSink, gpointer)>,
    pub new_preroll: Option<unsafe extern "C" fn(*mut GstAppSink, gpointer) -> gst::GstFlowReturn>,
    pub new_sample: Option<unsafe extern "C" fn(*mut GstAppSink, gpointer) -> gst::GstFlowReturn>,
    pub _gst_reserved: [gpointer; 4],
}

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
42 43
impl ::std::fmt::Debug for GstAppSinkCallbacks {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
44
        f.debug_struct(&format!("GstAppSinkCallbacks @ {:?}", self as *const _))
45 46 47 48
            .field("eos", &self.eos)
            .field("new_preroll", &self.new_preroll)
            .field("new_sample", &self.new_sample)
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
49 50 51
    }
}

Sebastian Dröge's avatar
Sebastian Dröge committed
52
#[repr(C)]
53
#[derive(Copy, Clone)]
Sebastian Dröge's avatar
Sebastian Dröge committed
54 55 56 57 58 59 60
pub struct GstAppSinkClass {
    pub basesink_class: gst_base::GstBaseSinkClass,
    pub eos: Option<unsafe extern "C" fn(*mut GstAppSink)>,
    pub new_preroll: Option<unsafe extern "C" fn(*mut GstAppSink) -> gst::GstFlowReturn>,
    pub new_sample: Option<unsafe extern "C" fn(*mut GstAppSink) -> gst::GstFlowReturn>,
    pub pull_preroll: Option<unsafe extern "C" fn(*mut GstAppSink) -> *mut gst::GstSample>,
    pub pull_sample: Option<unsafe extern "C" fn(*mut GstAppSink) -> *mut gst::GstSample>,
61 62 63 64
    pub try_pull_preroll:
        Option<unsafe extern "C" fn(*mut GstAppSink, gst::GstClockTime) -> *mut gst::GstSample>,
    pub try_pull_sample:
        Option<unsafe extern "C" fn(*mut GstAppSink, gst::GstClockTime) -> *mut gst::GstSample>,
Sebastian Dröge's avatar
Sebastian Dröge committed
65 66 67
    pub _gst_reserved: [gpointer; 2],
}

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
68 69
impl ::std::fmt::Debug for GstAppSinkClass {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
70
        f.debug_struct(&format!("GstAppSinkClass @ {:?}", self as *const _))
71 72 73 74 75 76 77 78 79
            .field("basesink_class", &self.basesink_class)
            .field("eos", &self.eos)
            .field("new_preroll", &self.new_preroll)
            .field("new_sample", &self.new_sample)
            .field("pull_preroll", &self.pull_preroll)
            .field("pull_sample", &self.pull_sample)
            .field("try_pull_preroll", &self.try_pull_preroll)
            .field("try_pull_sample", &self.try_pull_sample)
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
80 81 82
    }
}

Sebastian Dröge's avatar
Sebastian Dröge committed
83
#[repr(C)]
84
pub struct _GstAppSinkPrivate(c_void);
Sebastian Dröge's avatar
Sebastian Dröge committed
85

86
pub type GstAppSinkPrivate = *mut _GstAppSinkPrivate;
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
87

Sebastian Dröge's avatar
Sebastian Dröge committed
88
#[repr(C)]
89
#[derive(Copy, Clone)]
Sebastian Dröge's avatar
Sebastian Dröge committed
90 91 92 93 94 95 96
pub struct GstAppSrcCallbacks {
    pub need_data: Option<unsafe extern "C" fn(*mut GstAppSrc, c_uint, gpointer)>,
    pub enough_data: Option<unsafe extern "C" fn(*mut GstAppSrc, gpointer)>,
    pub seek_data: Option<unsafe extern "C" fn(*mut GstAppSrc, u64, gpointer) -> gboolean>,
    pub _gst_reserved: [gpointer; 4],
}

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
97 98
impl ::std::fmt::Debug for GstAppSrcCallbacks {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
99
        f.debug_struct(&format!("GstAppSrcCallbacks @ {:?}", self as *const _))
100 101 102 103
            .field("need_data", &self.need_data)
            .field("enough_data", &self.enough_data)
            .field("seek_data", &self.seek_data)
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
104 105 106
    }
}

Sebastian Dröge's avatar
Sebastian Dröge committed
107
#[repr(C)]
108
#[derive(Copy, Clone)]
Sebastian Dröge's avatar
Sebastian Dröge committed
109 110 111 112 113
pub struct GstAppSrcClass {
    pub basesrc_class: gst_base::GstBaseSrcClass,
    pub need_data: Option<unsafe extern "C" fn(*mut GstAppSrc, c_uint)>,
    pub enough_data: Option<unsafe extern "C" fn(*mut GstAppSrc)>,
    pub seek_data: Option<unsafe extern "C" fn(*mut GstAppSrc, u64) -> gboolean>,
114 115
    pub push_buffer:
        Option<unsafe extern "C" fn(*mut GstAppSrc, *mut gst::GstBuffer) -> gst::GstFlowReturn>,
Sebastian Dröge's avatar
Sebastian Dröge committed
116
    pub end_of_stream: Option<unsafe extern "C" fn(*mut GstAppSrc) -> gst::GstFlowReturn>,
117 118 119 120
    pub push_sample:
        Option<unsafe extern "C" fn(*mut GstAppSrc, *mut gst::GstSample) -> gst::GstFlowReturn>,
    pub push_buffer_list:
        Option<unsafe extern "C" fn(*mut GstAppSrc, *mut gst::GstBufferList) -> gst::GstFlowReturn>,
121
    pub _gst_reserved: [gpointer; 2],
Sebastian Dröge's avatar
Sebastian Dröge committed
122 123
}

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
124 125
impl ::std::fmt::Debug for GstAppSrcClass {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
126
        f.debug_struct(&format!("GstAppSrcClass @ {:?}", self as *const _))
127 128 129 130 131 132 133 134 135
            .field("basesrc_class", &self.basesrc_class)
            .field("need_data", &self.need_data)
            .field("enough_data", &self.enough_data)
            .field("seek_data", &self.seek_data)
            .field("push_buffer", &self.push_buffer)
            .field("end_of_stream", &self.end_of_stream)
            .field("push_sample", &self.push_sample)
            .field("push_buffer_list", &self.push_buffer_list)
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
136 137 138
    }
}

Sebastian Dröge's avatar
Sebastian Dröge committed
139
#[repr(C)]
140
pub struct _GstAppSrcPrivate(c_void);
Sebastian Dröge's avatar
Sebastian Dröge committed
141

142
pub type GstAppSrcPrivate = *mut _GstAppSrcPrivate;
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
143

Sebastian Dröge's avatar
Sebastian Dröge committed
144 145
// Classes
#[repr(C)]
146
#[derive(Copy, Clone)]
Sebastian Dröge's avatar
Sebastian Dröge committed
147 148 149 150 151 152
pub struct GstAppSink {
    pub basesink: gst_base::GstBaseSink,
    pub priv_: *mut GstAppSinkPrivate,
    pub _gst_reserved: [gpointer; 4],
}

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
153 154 155
impl ::std::fmt::Debug for GstAppSink {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstAppSink @ {:?}", self as *const _))
156 157
            .field("basesink", &self.basesink)
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
158 159 160
    }
}

Sebastian Dröge's avatar
Sebastian Dröge committed
161
#[repr(C)]
162
#[derive(Copy, Clone)]
Sebastian Dröge's avatar
Sebastian Dröge committed
163 164 165 166 167 168
pub struct GstAppSrc {
    pub basesrc: gst_base::GstBaseSrc,
    pub priv_: *mut GstAppSrcPrivate,
    pub _gst_reserved: [gpointer; 4],
}

Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
169 170 171
impl ::std::fmt::Debug for GstAppSrc {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstAppSrc @ {:?}", self as *const _))
172 173
            .field("basesrc", &self.basesrc)
            .finish()
Guillaume Gomez's avatar
regen  
Guillaume Gomez committed
174 175 176
    }
}

Sebastian Dröge's avatar
Sebastian Dröge committed
177 178
extern "C" {

Sebastian Dröge's avatar
Sebastian Dröge committed
179 180 181 182 183
    //=========================================================================
    // GstAppStreamType
    //=========================================================================
    pub fn gst_app_stream_type_get_type() -> GType;

Sebastian Dröge's avatar
Sebastian Dröge committed
184 185 186 187
    //=========================================================================
    // GstAppSink
    //=========================================================================
    pub fn gst_app_sink_get_type() -> GType;
188
    #[cfg(any(feature = "v1_12", feature = "dox"))]
Sebastian Dröge's avatar
Sebastian Dröge committed
189 190 191 192 193 194 195 196 197
    pub fn gst_app_sink_get_buffer_list_support(appsink: *mut GstAppSink) -> gboolean;
    pub fn gst_app_sink_get_caps(appsink: *mut GstAppSink) -> *mut gst::GstCaps;
    pub fn gst_app_sink_get_drop(appsink: *mut GstAppSink) -> gboolean;
    pub fn gst_app_sink_get_emit_signals(appsink: *mut GstAppSink) -> gboolean;
    pub fn gst_app_sink_get_max_buffers(appsink: *mut GstAppSink) -> c_uint;
    pub fn gst_app_sink_get_wait_on_eos(appsink: *mut GstAppSink) -> gboolean;
    pub fn gst_app_sink_is_eos(appsink: *mut GstAppSink) -> gboolean;
    pub fn gst_app_sink_pull_preroll(appsink: *mut GstAppSink) -> *mut gst::GstSample;
    pub fn gst_app_sink_pull_sample(appsink: *mut GstAppSink) -> *mut gst::GstSample;
198
    #[cfg(any(feature = "v1_12", feature = "dox"))]
Sebastian Dröge's avatar
Sebastian Dröge committed
199
    pub fn gst_app_sink_set_buffer_list_support(appsink: *mut GstAppSink, enable_lists: gboolean);
200 201 202 203 204 205
    pub fn gst_app_sink_set_callbacks(
        appsink: *mut GstAppSink,
        callbacks: *mut GstAppSinkCallbacks,
        user_data: gpointer,
        notify: glib::GDestroyNotify,
    );
Sebastian Dröge's avatar
Sebastian Dröge committed
206 207 208 209 210
    pub fn gst_app_sink_set_caps(appsink: *mut GstAppSink, caps: *const gst::GstCaps);
    pub fn gst_app_sink_set_drop(appsink: *mut GstAppSink, drop: gboolean);
    pub fn gst_app_sink_set_emit_signals(appsink: *mut GstAppSink, emit: gboolean);
    pub fn gst_app_sink_set_max_buffers(appsink: *mut GstAppSink, max: c_uint);
    pub fn gst_app_sink_set_wait_on_eos(appsink: *mut GstAppSink, wait: gboolean);
211
    #[cfg(any(feature = "v1_10", feature = "dox"))]
212 213 214 215
    pub fn gst_app_sink_try_pull_preroll(
        appsink: *mut GstAppSink,
        timeout: gst::GstClockTime,
    ) -> *mut gst::GstSample;
216
    #[cfg(any(feature = "v1_10", feature = "dox"))]
217 218 219 220
    pub fn gst_app_sink_try_pull_sample(
        appsink: *mut GstAppSink,
        timeout: gst::GstClockTime,
    ) -> *mut gst::GstSample;
Sebastian Dröge's avatar
Sebastian Dröge committed
221 222 223 224 225 226 227

    //=========================================================================
    // GstAppSrc
    //=========================================================================
    pub fn gst_app_src_get_type() -> GType;
    pub fn gst_app_src_end_of_stream(appsrc: *mut GstAppSrc) -> gst::GstFlowReturn;
    pub fn gst_app_src_get_caps(appsrc: *mut GstAppSrc) -> *mut gst::GstCaps;
228
    #[cfg(any(feature = "v1_2", feature = "dox"))]
Sebastian Dröge's avatar
Sebastian Dröge committed
229
    pub fn gst_app_src_get_current_level_bytes(appsrc: *mut GstAppSrc) -> u64;
230
    #[cfg(any(feature = "v1_10", feature = "dox"))]
Sebastian Dröge's avatar
Sebastian Dröge committed
231 232 233 234 235 236
    pub fn gst_app_src_get_duration(appsrc: *mut GstAppSrc) -> gst::GstClockTime;
    pub fn gst_app_src_get_emit_signals(appsrc: *mut GstAppSrc) -> gboolean;
    pub fn gst_app_src_get_latency(appsrc: *mut GstAppSrc, min: *mut u64, max: *mut u64);
    pub fn gst_app_src_get_max_bytes(appsrc: *mut GstAppSrc) -> u64;
    pub fn gst_app_src_get_size(appsrc: *mut GstAppSrc) -> i64;
    pub fn gst_app_src_get_stream_type(appsrc: *mut GstAppSrc) -> GstAppStreamType;
237 238 239 240
    pub fn gst_app_src_push_buffer(
        appsrc: *mut GstAppSrc,
        buffer: *mut gst::GstBuffer,
    ) -> gst::GstFlowReturn;
241
    #[cfg(any(feature = "v1_14", feature = "dox"))]
242 243 244 245
    pub fn gst_app_src_push_buffer_list(
        appsrc: *mut GstAppSrc,
        buffer_list: *mut gst::GstBufferList,
    ) -> gst::GstFlowReturn;
246
    #[cfg(any(feature = "v1_6", feature = "dox"))]
247 248 249 250 251 252 253 254 255 256
    pub fn gst_app_src_push_sample(
        appsrc: *mut GstAppSrc,
        sample: *mut gst::GstSample,
    ) -> gst::GstFlowReturn;
    pub fn gst_app_src_set_callbacks(
        appsrc: *mut GstAppSrc,
        callbacks: *mut GstAppSrcCallbacks,
        user_data: gpointer,
        notify: glib::GDestroyNotify,
    );
Sebastian Dröge's avatar
Sebastian Dröge committed
257
    pub fn gst_app_src_set_caps(appsrc: *mut GstAppSrc, caps: *const gst::GstCaps);
258
    #[cfg(any(feature = "v1_10", feature = "dox"))]
Sebastian Dröge's avatar
Sebastian Dröge committed
259 260 261 262 263 264 265 266
    pub fn gst_app_src_set_duration(appsrc: *mut GstAppSrc, duration: gst::GstClockTime);
    pub fn gst_app_src_set_emit_signals(appsrc: *mut GstAppSrc, emit: gboolean);
    pub fn gst_app_src_set_latency(appsrc: *mut GstAppSrc, min: u64, max: u64);
    pub fn gst_app_src_set_max_bytes(appsrc: *mut GstAppSrc, max: u64);
    pub fn gst_app_src_set_size(appsrc: *mut GstAppSrc, size: i64);
    pub fn gst_app_src_set_stream_type(appsrc: *mut GstAppSrc, type_: GstAppStreamType);

}