1#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
7#![allow(
8 clippy::approx_constant,
9 clippy::type_complexity,
10 clippy::unreadable_literal,
11 clippy::upper_case_acronyms
12)]
13#![cfg_attr(docsrs, feature(doc_cfg))]
14
15use glib_sys as glib;
16use gstreamer_base_sys as gst_base;
17use gstreamer_sys as gst;
18
19#[allow(unused_imports)]
20use libc::{FILE, intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t};
21#[cfg(unix)]
22#[allow(unused_imports)]
23use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
24#[allow(unused_imports)]
25use std::ffi::{
26 c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
27};
28
29#[allow(unused_imports)]
30use glib::{GType, gboolean, gconstpointer, gpointer};
31
32pub type GstAppLeakyType = c_int;
34pub const GST_APP_LEAKY_TYPE_NONE: GstAppLeakyType = 0;
35pub const GST_APP_LEAKY_TYPE_UPSTREAM: GstAppLeakyType = 1;
36pub const GST_APP_LEAKY_TYPE_DOWNSTREAM: GstAppLeakyType = 2;
37
38pub type GstAppStreamType = c_int;
39pub const GST_APP_STREAM_TYPE_STREAM: GstAppStreamType = 0;
40pub const GST_APP_STREAM_TYPE_SEEKABLE: GstAppStreamType = 1;
41pub const GST_APP_STREAM_TYPE_RANDOM_ACCESS: GstAppStreamType = 2;
42
43pub type GstAppSinkEosCallback = Option<unsafe extern "C" fn(*mut GstAppSink, gpointer)>;
45pub type GstAppSinkNewEventCallback =
46 Option<unsafe extern "C" fn(*mut GstAppSink, gpointer) -> gboolean>;
47pub type GstAppSinkNewPrerollCallback =
48 Option<unsafe extern "C" fn(*mut GstAppSink, gpointer) -> gst::GstFlowReturn>;
49pub type GstAppSinkNewSampleCallback =
50 Option<unsafe extern "C" fn(*mut GstAppSink, gpointer) -> gst::GstFlowReturn>;
51pub type GstAppSinkProposeAllocationCallback =
52 Option<unsafe extern "C" fn(*mut GstAppSink, *mut gst::GstQuery, gpointer) -> gboolean>;
53pub type GstAppSrcEnoughDataCallback = Option<unsafe extern "C" fn(*mut GstAppSrc, gpointer)>;
54pub type GstAppSrcNeedDataCallback = Option<unsafe extern "C" fn(*mut GstAppSrc, c_uint, gpointer)>;
55pub type GstAppSrcSeekDataCallback =
56 Option<unsafe extern "C" fn(*mut GstAppSrc, u64, gpointer) -> gboolean>;
57
58#[derive(Copy, Clone)]
60#[repr(C)]
61pub struct GstAppSinkCallbacks {
62 pub eos: Option<unsafe extern "C" fn(*mut GstAppSink, gpointer)>,
63 pub new_preroll: Option<unsafe extern "C" fn(*mut GstAppSink, gpointer) -> gst::GstFlowReturn>,
64 pub new_sample: Option<unsafe extern "C" fn(*mut GstAppSink, gpointer) -> gst::GstFlowReturn>,
65 pub new_event: Option<unsafe extern "C" fn(*mut GstAppSink, gpointer) -> gboolean>,
66 pub propose_allocation:
67 Option<unsafe extern "C" fn(*mut GstAppSink, *mut gst::GstQuery, gpointer) -> gboolean>,
68 pub _gst_reserved: [gpointer; 2],
69}
70
71impl ::std::fmt::Debug for GstAppSinkCallbacks {
72 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
73 f.debug_struct(&format!("GstAppSinkCallbacks @ {self:p}"))
74 .field("eos", &self.eos)
75 .field("new_preroll", &self.new_preroll)
76 .field("new_sample", &self.new_sample)
77 .field("new_event", &self.new_event)
78 .field("propose_allocation", &self.propose_allocation)
79 .finish()
80 }
81}
82
83#[derive(Copy, Clone)]
84#[repr(C)]
85pub struct GstAppSinkClass {
86 pub basesink_class: gst_base::GstBaseSinkClass,
87 pub eos: Option<unsafe extern "C" fn(*mut GstAppSink)>,
88 pub new_preroll: Option<unsafe extern "C" fn(*mut GstAppSink) -> gst::GstFlowReturn>,
89 pub new_sample: Option<unsafe extern "C" fn(*mut GstAppSink) -> gst::GstFlowReturn>,
90 pub pull_preroll: Option<unsafe extern "C" fn(*mut GstAppSink) -> *mut gst::GstSample>,
91 pub pull_sample: Option<unsafe extern "C" fn(*mut GstAppSink) -> *mut gst::GstSample>,
92 pub try_pull_preroll:
93 Option<unsafe extern "C" fn(*mut GstAppSink, gst::GstClockTime) -> *mut gst::GstSample>,
94 pub try_pull_sample:
95 Option<unsafe extern "C" fn(*mut GstAppSink, gst::GstClockTime) -> *mut gst::GstSample>,
96 pub try_pull_object:
97 Option<unsafe extern "C" fn(*mut GstAppSink, gst::GstClockTime) -> *mut gst::GstMiniObject>,
98 pub _gst_reserved: [gpointer; 1],
99}
100
101impl ::std::fmt::Debug for GstAppSinkClass {
102 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
103 f.debug_struct(&format!("GstAppSinkClass @ {self:p}"))
104 .field("basesink_class", &self.basesink_class)
105 .field("eos", &self.eos)
106 .field("new_preroll", &self.new_preroll)
107 .field("new_sample", &self.new_sample)
108 .field("pull_preroll", &self.pull_preroll)
109 .field("pull_sample", &self.pull_sample)
110 .field("try_pull_preroll", &self.try_pull_preroll)
111 .field("try_pull_sample", &self.try_pull_sample)
112 .field("try_pull_object", &self.try_pull_object)
113 .finish()
114 }
115}
116
117#[repr(C)]
118#[allow(dead_code)]
119pub struct _GstAppSinkPrivate {
120 _data: [u8; 0],
121 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
122}
123
124pub type GstAppSinkPrivate = _GstAppSinkPrivate;
125
126#[repr(C)]
127#[allow(dead_code)]
128pub struct GstAppSinkSimpleCallbacks {
129 _data: [u8; 0],
130 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
131}
132
133impl ::std::fmt::Debug for GstAppSinkSimpleCallbacks {
134 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
135 f.debug_struct(&format!("GstAppSinkSimpleCallbacks @ {self:p}"))
136 .finish()
137 }
138}
139
140#[derive(Copy, Clone)]
141#[repr(C)]
142pub struct GstAppSrcCallbacks {
143 pub need_data: Option<unsafe extern "C" fn(*mut GstAppSrc, c_uint, gpointer)>,
144 pub enough_data: Option<unsafe extern "C" fn(*mut GstAppSrc, gpointer)>,
145 pub seek_data: Option<unsafe extern "C" fn(*mut GstAppSrc, u64, gpointer) -> gboolean>,
146 pub _gst_reserved: [gpointer; 4],
147}
148
149impl ::std::fmt::Debug for GstAppSrcCallbacks {
150 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
151 f.debug_struct(&format!("GstAppSrcCallbacks @ {self:p}"))
152 .field("need_data", &self.need_data)
153 .field("enough_data", &self.enough_data)
154 .field("seek_data", &self.seek_data)
155 .finish()
156 }
157}
158
159#[derive(Copy, Clone)]
160#[repr(C)]
161pub struct GstAppSrcClass {
162 pub basesrc_class: gst_base::GstBaseSrcClass,
163 pub need_data: Option<unsafe extern "C" fn(*mut GstAppSrc, c_uint)>,
164 pub enough_data: Option<unsafe extern "C" fn(*mut GstAppSrc)>,
165 pub seek_data: Option<unsafe extern "C" fn(*mut GstAppSrc, u64) -> gboolean>,
166 pub push_buffer:
167 Option<unsafe extern "C" fn(*mut GstAppSrc, *mut gst::GstBuffer) -> gst::GstFlowReturn>,
168 pub end_of_stream: Option<unsafe extern "C" fn(*mut GstAppSrc) -> gst::GstFlowReturn>,
169 pub push_sample:
170 Option<unsafe extern "C" fn(*mut GstAppSrc, *mut gst::GstSample) -> gst::GstFlowReturn>,
171 pub push_buffer_list:
172 Option<unsafe extern "C" fn(*mut GstAppSrc, *mut gst::GstBufferList) -> gst::GstFlowReturn>,
173 pub _gst_reserved: [gpointer; 2],
174}
175
176impl ::std::fmt::Debug for GstAppSrcClass {
177 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
178 f.debug_struct(&format!("GstAppSrcClass @ {self:p}"))
179 .field("basesrc_class", &self.basesrc_class)
180 .field("need_data", &self.need_data)
181 .field("enough_data", &self.enough_data)
182 .field("seek_data", &self.seek_data)
183 .field("push_buffer", &self.push_buffer)
184 .field("end_of_stream", &self.end_of_stream)
185 .field("push_sample", &self.push_sample)
186 .field("push_buffer_list", &self.push_buffer_list)
187 .finish()
188 }
189}
190
191#[repr(C)]
192#[allow(dead_code)]
193pub struct _GstAppSrcPrivate {
194 _data: [u8; 0],
195 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
196}
197
198pub type GstAppSrcPrivate = _GstAppSrcPrivate;
199
200#[repr(C)]
201#[allow(dead_code)]
202pub struct GstAppSrcSimpleCallbacks {
203 _data: [u8; 0],
204 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
205}
206
207impl ::std::fmt::Debug for GstAppSrcSimpleCallbacks {
208 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
209 f.debug_struct(&format!("GstAppSrcSimpleCallbacks @ {self:p}"))
210 .finish()
211 }
212}
213
214#[derive(Copy, Clone)]
216#[repr(C)]
217pub struct GstAppSink {
218 pub basesink: gst_base::GstBaseSink,
219 pub priv_: *mut GstAppSinkPrivate,
220 pub _gst_reserved: [gpointer; 4],
221}
222
223impl ::std::fmt::Debug for GstAppSink {
224 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
225 f.debug_struct(&format!("GstAppSink @ {self:p}"))
226 .field("basesink", &self.basesink)
227 .finish()
228 }
229}
230
231#[derive(Copy, Clone)]
232#[repr(C)]
233pub struct GstAppSrc {
234 pub basesrc: gst_base::GstBaseSrc,
235 pub priv_: *mut GstAppSrcPrivate,
236 pub _gst_reserved: [gpointer; 4],
237}
238
239impl ::std::fmt::Debug for GstAppSrc {
240 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
241 f.debug_struct(&format!("GstAppSrc @ {self:p}"))
242 .field("basesrc", &self.basesrc)
243 .finish()
244 }
245}
246
247unsafe extern "C" {
248
249 #[cfg(feature = "v1_20")]
253 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
254 pub fn gst_app_leaky_type_get_type() -> GType;
255
256 pub fn gst_app_stream_type_get_type() -> GType;
260
261 #[cfg(feature = "v1_28")]
265 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
266 pub fn gst_app_sink_simple_callbacks_get_type() -> GType;
267 #[cfg(feature = "v1_28")]
268 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
269 pub fn gst_app_sink_simple_callbacks_new() -> *mut GstAppSinkSimpleCallbacks;
270 #[cfg(feature = "v1_28")]
271 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
272 pub fn gst_app_sink_simple_callbacks_ref(
273 cb: *mut GstAppSinkSimpleCallbacks,
274 ) -> *mut GstAppSinkSimpleCallbacks;
275 #[cfg(feature = "v1_28")]
276 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
277 pub fn gst_app_sink_simple_callbacks_set_eos(
278 cb: *mut GstAppSinkSimpleCallbacks,
279 eos_cb: GstAppSinkEosCallback,
280 user_data: gpointer,
281 destroy_notify: glib::GDestroyNotify,
282 );
283 #[cfg(feature = "v1_28")]
284 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
285 pub fn gst_app_sink_simple_callbacks_set_new_event(
286 cb: *mut GstAppSinkSimpleCallbacks,
287 new_event_cb: GstAppSinkNewEventCallback,
288 user_data: gpointer,
289 destroy_notify: glib::GDestroyNotify,
290 );
291 #[cfg(feature = "v1_28")]
292 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
293 pub fn gst_app_sink_simple_callbacks_set_new_preroll(
294 cb: *mut GstAppSinkSimpleCallbacks,
295 new_preroll_cb: GstAppSinkNewPrerollCallback,
296 user_data: gpointer,
297 destroy_notify: glib::GDestroyNotify,
298 );
299 #[cfg(feature = "v1_28")]
300 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
301 pub fn gst_app_sink_simple_callbacks_set_new_sample(
302 cb: *mut GstAppSinkSimpleCallbacks,
303 new_sample_cb: GstAppSinkNewSampleCallback,
304 user_data: gpointer,
305 destroy_notify: glib::GDestroyNotify,
306 );
307 #[cfg(feature = "v1_28")]
308 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
309 pub fn gst_app_sink_simple_callbacks_set_propose_allocation(
310 cb: *mut GstAppSinkSimpleCallbacks,
311 propose_allocation_cb: GstAppSinkProposeAllocationCallback,
312 user_data: gpointer,
313 destroy_notify: glib::GDestroyNotify,
314 );
315 #[cfg(feature = "v1_28")]
316 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
317 pub fn gst_app_sink_simple_callbacks_unref(cb: *mut GstAppSinkSimpleCallbacks);
318
319 #[cfg(feature = "v1_28")]
323 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
324 pub fn gst_app_src_simple_callbacks_get_type() -> GType;
325 #[cfg(feature = "v1_28")]
326 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
327 pub fn gst_app_src_simple_callbacks_new() -> *mut GstAppSrcSimpleCallbacks;
328 #[cfg(feature = "v1_28")]
329 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
330 pub fn gst_app_src_simple_callbacks_ref(
331 cb: *mut GstAppSrcSimpleCallbacks,
332 ) -> *mut GstAppSrcSimpleCallbacks;
333 #[cfg(feature = "v1_28")]
334 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
335 pub fn gst_app_src_simple_callbacks_set_enough_data(
336 cb: *mut GstAppSrcSimpleCallbacks,
337 enough_data_cb: GstAppSrcEnoughDataCallback,
338 user_data: gpointer,
339 destroy_notify: glib::GDestroyNotify,
340 );
341 #[cfg(feature = "v1_28")]
342 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
343 pub fn gst_app_src_simple_callbacks_set_need_data(
344 cb: *mut GstAppSrcSimpleCallbacks,
345 need_data_cb: GstAppSrcNeedDataCallback,
346 user_data: gpointer,
347 destroy_notify: glib::GDestroyNotify,
348 );
349 #[cfg(feature = "v1_28")]
350 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
351 pub fn gst_app_src_simple_callbacks_set_seek_data(
352 cb: *mut GstAppSrcSimpleCallbacks,
353 seek_data_cb: GstAppSrcSeekDataCallback,
354 user_data: gpointer,
355 destroy_notify: glib::GDestroyNotify,
356 );
357 #[cfg(feature = "v1_28")]
358 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
359 pub fn gst_app_src_simple_callbacks_unref(cb: *mut GstAppSrcSimpleCallbacks);
360
361 pub fn gst_app_sink_get_type() -> GType;
365 pub fn gst_app_sink_get_buffer_list_support(appsink: *mut GstAppSink) -> gboolean;
366 pub fn gst_app_sink_get_caps(appsink: *mut GstAppSink) -> *mut gst::GstCaps;
367 #[cfg(feature = "v1_28")]
368 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
369 pub fn gst_app_sink_get_current_level_buffers(appsink: *mut GstAppSink) -> u64;
370 #[cfg(feature = "v1_28")]
371 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
372 pub fn gst_app_sink_get_current_level_bytes(appsink: *mut GstAppSink) -> u64;
373 #[cfg(feature = "v1_28")]
374 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
375 pub fn gst_app_sink_get_current_level_time(appsink: *mut GstAppSink) -> gst::GstClockTime;
376 pub fn gst_app_sink_get_drop(appsink: *mut GstAppSink) -> gboolean;
377 pub fn gst_app_sink_get_emit_signals(appsink: *mut GstAppSink) -> gboolean;
378 #[cfg(feature = "v1_28")]
379 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
380 pub fn gst_app_sink_get_leaky_type(appsink: *mut GstAppSink) -> GstAppLeakyType;
381 pub fn gst_app_sink_get_max_buffers(appsink: *mut GstAppSink) -> c_uint;
382 #[cfg(feature = "v1_24")]
383 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
384 pub fn gst_app_sink_get_max_bytes(appsink: *mut GstAppSink) -> u64;
385 #[cfg(feature = "v1_24")]
386 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
387 pub fn gst_app_sink_get_max_time(appsink: *mut GstAppSink) -> gst::GstClockTime;
388 pub fn gst_app_sink_get_wait_on_eos(appsink: *mut GstAppSink) -> gboolean;
389 pub fn gst_app_sink_is_eos(appsink: *mut GstAppSink) -> gboolean;
390 #[cfg(feature = "v1_20")]
391 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
392 pub fn gst_app_sink_pull_object(appsink: *mut GstAppSink) -> *mut gst::GstMiniObject;
393 pub fn gst_app_sink_pull_preroll(appsink: *mut GstAppSink) -> *mut gst::GstSample;
394 pub fn gst_app_sink_pull_sample(appsink: *mut GstAppSink) -> *mut gst::GstSample;
395 pub fn gst_app_sink_set_buffer_list_support(appsink: *mut GstAppSink, enable_lists: gboolean);
396 pub fn gst_app_sink_set_callbacks(
397 appsink: *mut GstAppSink,
398 callbacks: *mut GstAppSinkCallbacks,
399 user_data: gpointer,
400 notify: glib::GDestroyNotify,
401 );
402 pub fn gst_app_sink_set_caps(appsink: *mut GstAppSink, caps: *const gst::GstCaps);
403 pub fn gst_app_sink_set_drop(appsink: *mut GstAppSink, drop: gboolean);
404 pub fn gst_app_sink_set_emit_signals(appsink: *mut GstAppSink, emit: gboolean);
405 #[cfg(feature = "v1_28")]
406 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
407 pub fn gst_app_sink_set_leaky_type(appsink: *mut GstAppSink, leaky: GstAppLeakyType);
408 pub fn gst_app_sink_set_max_buffers(appsink: *mut GstAppSink, max: c_uint);
409 #[cfg(feature = "v1_24")]
410 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
411 pub fn gst_app_sink_set_max_bytes(appsink: *mut GstAppSink, max: u64);
412 #[cfg(feature = "v1_24")]
413 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
414 pub fn gst_app_sink_set_max_time(appsink: *mut GstAppSink, max: gst::GstClockTime);
415 #[cfg(feature = "v1_28")]
416 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
417 pub fn gst_app_sink_set_simple_callbacks(
418 appsink: *mut GstAppSink,
419 cb: *mut GstAppSinkSimpleCallbacks,
420 );
421 pub fn gst_app_sink_set_wait_on_eos(appsink: *mut GstAppSink, wait: gboolean);
422 #[cfg(feature = "v1_20")]
423 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
424 pub fn gst_app_sink_try_pull_object(
425 appsink: *mut GstAppSink,
426 timeout: gst::GstClockTime,
427 ) -> *mut gst::GstMiniObject;
428 pub fn gst_app_sink_try_pull_preroll(
429 appsink: *mut GstAppSink,
430 timeout: gst::GstClockTime,
431 ) -> *mut gst::GstSample;
432 pub fn gst_app_sink_try_pull_sample(
433 appsink: *mut GstAppSink,
434 timeout: gst::GstClockTime,
435 ) -> *mut gst::GstSample;
436
437 pub fn gst_app_src_get_type() -> GType;
441 pub fn gst_app_src_end_of_stream(appsrc: *mut GstAppSrc) -> gst::GstFlowReturn;
442 pub fn gst_app_src_get_caps(appsrc: *mut GstAppSrc) -> *mut gst::GstCaps;
443 #[cfg(feature = "v1_20")]
444 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
445 pub fn gst_app_src_get_current_level_buffers(appsrc: *mut GstAppSrc) -> u64;
446 pub fn gst_app_src_get_current_level_bytes(appsrc: *mut GstAppSrc) -> u64;
447 #[cfg(feature = "v1_20")]
448 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
449 pub fn gst_app_src_get_current_level_time(appsrc: *mut GstAppSrc) -> gst::GstClockTime;
450 pub fn gst_app_src_get_duration(appsrc: *mut GstAppSrc) -> gst::GstClockTime;
451 pub fn gst_app_src_get_emit_signals(appsrc: *mut GstAppSrc) -> gboolean;
452 pub fn gst_app_src_get_latency(appsrc: *mut GstAppSrc, min: *mut u64, max: *mut u64);
453 #[cfg(feature = "v1_20")]
454 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
455 pub fn gst_app_src_get_leaky_type(appsrc: *mut GstAppSrc) -> GstAppLeakyType;
456 #[cfg(feature = "v1_20")]
457 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
458 pub fn gst_app_src_get_max_buffers(appsrc: *mut GstAppSrc) -> u64;
459 pub fn gst_app_src_get_max_bytes(appsrc: *mut GstAppSrc) -> u64;
460 #[cfg(feature = "v1_20")]
461 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
462 pub fn gst_app_src_get_max_time(appsrc: *mut GstAppSrc) -> gst::GstClockTime;
463 pub fn gst_app_src_get_size(appsrc: *mut GstAppSrc) -> i64;
464 pub fn gst_app_src_get_stream_type(appsrc: *mut GstAppSrc) -> GstAppStreamType;
465 pub fn gst_app_src_push_buffer(
466 appsrc: *mut GstAppSrc,
467 buffer: *mut gst::GstBuffer,
468 ) -> gst::GstFlowReturn;
469 pub fn gst_app_src_push_buffer_list(
470 appsrc: *mut GstAppSrc,
471 buffer_list: *mut gst::GstBufferList,
472 ) -> gst::GstFlowReturn;
473 pub fn gst_app_src_push_sample(
474 appsrc: *mut GstAppSrc,
475 sample: *mut gst::GstSample,
476 ) -> gst::GstFlowReturn;
477 pub fn gst_app_src_set_callbacks(
478 appsrc: *mut GstAppSrc,
479 callbacks: *mut GstAppSrcCallbacks,
480 user_data: gpointer,
481 notify: glib::GDestroyNotify,
482 );
483 pub fn gst_app_src_set_caps(appsrc: *mut GstAppSrc, caps: *const gst::GstCaps);
484 pub fn gst_app_src_set_duration(appsrc: *mut GstAppSrc, duration: gst::GstClockTime);
485 pub fn gst_app_src_set_emit_signals(appsrc: *mut GstAppSrc, emit: gboolean);
486 pub fn gst_app_src_set_latency(appsrc: *mut GstAppSrc, min: u64, max: u64);
487 #[cfg(feature = "v1_20")]
488 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
489 pub fn gst_app_src_set_leaky_type(appsrc: *mut GstAppSrc, leaky: GstAppLeakyType);
490 #[cfg(feature = "v1_20")]
491 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
492 pub fn gst_app_src_set_max_buffers(appsrc: *mut GstAppSrc, max: u64);
493 pub fn gst_app_src_set_max_bytes(appsrc: *mut GstAppSrc, max: u64);
494 #[cfg(feature = "v1_20")]
495 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
496 pub fn gst_app_src_set_max_time(appsrc: *mut GstAppSrc, max: gst::GstClockTime);
497 #[cfg(feature = "v1_28")]
498 #[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
499 pub fn gst_app_src_set_simple_callbacks(
500 appsrc: *mut GstAppSrc,
501 cb: *mut GstAppSrcSimpleCallbacks,
502 );
503 pub fn gst_app_src_set_size(appsrc: *mut GstAppSrc, size: i64);
504 pub fn gst_app_src_set_stream_type(appsrc: *mut GstAppSrc, type_: GstAppStreamType);
505
506}