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 gobject_sys as gobject;
17use gstreamer_sys as gst;
18use gstreamer_video_sys as gst_video;
19
20#[cfg(unix)]
21#[allow(unused_imports)]
22use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
23#[allow(unused_imports)]
24use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
25#[allow(unused_imports)]
26use std::ffi::{
27 c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
28};
29
30#[allow(unused_imports)]
31use glib::{gboolean, gconstpointer, gpointer, GType};
32
33pub type GstPlayerColorBalanceType = c_int;
35pub const GST_PLAYER_COLOR_BALANCE_HUE: GstPlayerColorBalanceType = 3;
36pub const GST_PLAYER_COLOR_BALANCE_BRIGHTNESS: GstPlayerColorBalanceType = 0;
37pub const GST_PLAYER_COLOR_BALANCE_SATURATION: GstPlayerColorBalanceType = 2;
38pub const GST_PLAYER_COLOR_BALANCE_CONTRAST: GstPlayerColorBalanceType = 1;
39
40pub type GstPlayerError = c_int;
41pub const GST_PLAYER_ERROR_FAILED: GstPlayerError = 0;
42
43pub type GstPlayerSnapshotFormat = c_int;
44pub const GST_PLAYER_THUMBNAIL_RAW_NATIVE: GstPlayerSnapshotFormat = 0;
45pub const GST_PLAYER_THUMBNAIL_RAW_xRGB: GstPlayerSnapshotFormat = 1;
46pub const GST_PLAYER_THUMBNAIL_RAW_BGRx: GstPlayerSnapshotFormat = 2;
47pub const GST_PLAYER_THUMBNAIL_JPG: GstPlayerSnapshotFormat = 3;
48pub const GST_PLAYER_THUMBNAIL_PNG: GstPlayerSnapshotFormat = 4;
49
50pub type GstPlayerState = c_int;
51pub const GST_PLAYER_STATE_STOPPED: GstPlayerState = 0;
52pub const GST_PLAYER_STATE_BUFFERING: GstPlayerState = 1;
53pub const GST_PLAYER_STATE_PAUSED: GstPlayerState = 2;
54pub const GST_PLAYER_STATE_PLAYING: GstPlayerState = 3;
55
56pub type GstPlayerSignalDispatcherFunc = Option<unsafe extern "C" fn(gpointer)>;
58
59#[repr(C)]
61#[allow(dead_code)]
62pub struct _GstPlayerAudioInfoClass {
63 _data: [u8; 0],
64 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
65}
66
67pub type GstPlayerAudioInfoClass = _GstPlayerAudioInfoClass;
68
69#[repr(C)]
70#[allow(dead_code)]
71pub struct _GstPlayerClass {
72 _data: [u8; 0],
73 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
74}
75
76pub type GstPlayerClass = _GstPlayerClass;
77
78#[repr(C)]
79#[allow(dead_code)]
80pub struct _GstPlayerGMainContextSignalDispatcherClass {
81 _data: [u8; 0],
82 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
83}
84
85pub type GstPlayerGMainContextSignalDispatcherClass = _GstPlayerGMainContextSignalDispatcherClass;
86
87#[repr(C)]
88#[allow(dead_code)]
89pub struct _GstPlayerMediaInfoClass {
90 _data: [u8; 0],
91 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
92}
93
94pub type GstPlayerMediaInfoClass = _GstPlayerMediaInfoClass;
95
96#[derive(Copy, Clone)]
97#[repr(C)]
98pub struct GstPlayerSignalDispatcherInterface {
99 pub parent_iface: gobject::GTypeInterface,
100 pub dispatch: Option<
101 unsafe extern "C" fn(
102 *mut GstPlayerSignalDispatcher,
103 *mut GstPlayer,
104 GstPlayerSignalDispatcherFunc,
105 gpointer,
106 glib::GDestroyNotify,
107 ),
108 >,
109}
110
111impl ::std::fmt::Debug for GstPlayerSignalDispatcherInterface {
112 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
113 f.debug_struct(&format!("GstPlayerSignalDispatcherInterface @ {self:p}"))
114 .field("parent_iface", &self.parent_iface)
115 .field("dispatch", &self.dispatch)
116 .finish()
117 }
118}
119
120#[repr(C)]
121#[allow(dead_code)]
122pub struct _GstPlayerStreamInfoClass {
123 _data: [u8; 0],
124 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
125}
126
127pub type GstPlayerStreamInfoClass = _GstPlayerStreamInfoClass;
128
129#[repr(C)]
130#[allow(dead_code)]
131pub struct _GstPlayerSubtitleInfoClass {
132 _data: [u8; 0],
133 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
134}
135
136pub type GstPlayerSubtitleInfoClass = _GstPlayerSubtitleInfoClass;
137
138#[repr(C)]
139#[allow(dead_code)]
140pub struct _GstPlayerVideoInfoClass {
141 _data: [u8; 0],
142 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
143}
144
145pub type GstPlayerVideoInfoClass = _GstPlayerVideoInfoClass;
146
147#[repr(C)]
148#[allow(dead_code)]
149pub struct _GstPlayerVideoOverlayVideoRendererClass {
150 _data: [u8; 0],
151 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
152}
153
154pub type GstPlayerVideoOverlayVideoRendererClass = _GstPlayerVideoOverlayVideoRendererClass;
155
156#[derive(Copy, Clone)]
157#[repr(C)]
158pub struct GstPlayerVideoRendererInterface {
159 pub parent_iface: gobject::GTypeInterface,
160 pub create_video_sink: Option<
161 unsafe extern "C" fn(*mut GstPlayerVideoRenderer, *mut GstPlayer) -> *mut gst::GstElement,
162 >,
163}
164
165impl ::std::fmt::Debug for GstPlayerVideoRendererInterface {
166 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
167 f.debug_struct(&format!("GstPlayerVideoRendererInterface @ {self:p}"))
168 .field("parent_iface", &self.parent_iface)
169 .field("create_video_sink", &self.create_video_sink)
170 .finish()
171 }
172}
173
174#[derive(Copy, Clone)]
175#[repr(C)]
176pub struct GstPlayerVisualization {
177 pub name: *mut c_char,
178 pub description: *mut c_char,
179}
180
181impl ::std::fmt::Debug for GstPlayerVisualization {
182 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
183 f.debug_struct(&format!("GstPlayerVisualization @ {self:p}"))
184 .field("name", &self.name)
185 .field("description", &self.description)
186 .finish()
187 }
188}
189
190#[repr(C)]
192#[allow(dead_code)]
193pub struct GstPlayer {
194 _data: [u8; 0],
195 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
196}
197
198impl ::std::fmt::Debug for GstPlayer {
199 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
200 f.debug_struct(&format!("GstPlayer @ {self:p}")).finish()
201 }
202}
203
204#[repr(C)]
205#[allow(dead_code)]
206pub struct GstPlayerAudioInfo {
207 _data: [u8; 0],
208 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
209}
210
211impl ::std::fmt::Debug for GstPlayerAudioInfo {
212 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
213 f.debug_struct(&format!("GstPlayerAudioInfo @ {self:p}"))
214 .finish()
215 }
216}
217
218#[repr(C)]
219#[allow(dead_code)]
220pub struct GstPlayerGMainContextSignalDispatcher {
221 _data: [u8; 0],
222 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
223}
224
225impl ::std::fmt::Debug for GstPlayerGMainContextSignalDispatcher {
226 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
227 f.debug_struct(&format!("GstPlayerGMainContextSignalDispatcher @ {self:p}"))
228 .finish()
229 }
230}
231
232#[repr(C)]
233#[allow(dead_code)]
234pub struct GstPlayerMediaInfo {
235 _data: [u8; 0],
236 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
237}
238
239impl ::std::fmt::Debug for GstPlayerMediaInfo {
240 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
241 f.debug_struct(&format!("GstPlayerMediaInfo @ {self:p}"))
242 .finish()
243 }
244}
245
246#[repr(C)]
247#[allow(dead_code)]
248pub struct GstPlayerStreamInfo {
249 _data: [u8; 0],
250 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
251}
252
253impl ::std::fmt::Debug for GstPlayerStreamInfo {
254 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
255 f.debug_struct(&format!("GstPlayerStreamInfo @ {self:p}"))
256 .finish()
257 }
258}
259
260#[repr(C)]
261#[allow(dead_code)]
262pub struct GstPlayerSubtitleInfo {
263 _data: [u8; 0],
264 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
265}
266
267impl ::std::fmt::Debug for GstPlayerSubtitleInfo {
268 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
269 f.debug_struct(&format!("GstPlayerSubtitleInfo @ {self:p}"))
270 .finish()
271 }
272}
273
274#[repr(C)]
275#[allow(dead_code)]
276pub struct GstPlayerVideoInfo {
277 _data: [u8; 0],
278 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
279}
280
281impl ::std::fmt::Debug for GstPlayerVideoInfo {
282 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
283 f.debug_struct(&format!("GstPlayerVideoInfo @ {self:p}"))
284 .finish()
285 }
286}
287
288#[repr(C)]
289#[allow(dead_code)]
290pub struct GstPlayerVideoOverlayVideoRenderer {
291 _data: [u8; 0],
292 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
293}
294
295impl ::std::fmt::Debug for GstPlayerVideoOverlayVideoRenderer {
296 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
297 f.debug_struct(&format!("GstPlayerVideoOverlayVideoRenderer @ {self:p}"))
298 .finish()
299 }
300}
301
302#[repr(C)]
304#[allow(dead_code)]
305pub struct GstPlayerSignalDispatcher {
306 _data: [u8; 0],
307 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
308}
309
310impl ::std::fmt::Debug for GstPlayerSignalDispatcher {
311 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
312 write!(f, "GstPlayerSignalDispatcher @ {self:p}")
313 }
314}
315
316#[repr(C)]
317#[allow(dead_code)]
318pub struct GstPlayerVideoRenderer {
319 _data: [u8; 0],
320 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
321}
322
323impl ::std::fmt::Debug for GstPlayerVideoRenderer {
324 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
325 write!(f, "GstPlayerVideoRenderer @ {self:p}")
326 }
327}
328
329extern "C" {
330
331 pub fn gst_player_color_balance_type_get_type() -> GType;
335 pub fn gst_player_color_balance_type_get_name(
336 type_: GstPlayerColorBalanceType,
337 ) -> *const c_char;
338
339 pub fn gst_player_error_get_type() -> GType;
343 pub fn gst_player_error_get_name(error: GstPlayerError) -> *const c_char;
344 pub fn gst_player_error_quark() -> glib::GQuark;
345
346 pub fn gst_player_state_get_type() -> GType;
350 pub fn gst_player_state_get_name(state: GstPlayerState) -> *const c_char;
351
352 pub fn gst_player_visualization_get_type() -> GType;
356 pub fn gst_player_visualization_copy(
357 vis: *const GstPlayerVisualization,
358 ) -> *mut GstPlayerVisualization;
359 pub fn gst_player_visualization_free(vis: *mut GstPlayerVisualization);
360
361 pub fn gst_player_get_type() -> GType;
365 pub fn gst_player_new(
366 video_renderer: *mut GstPlayerVideoRenderer,
367 signal_dispatcher: *mut GstPlayerSignalDispatcher,
368 ) -> *mut GstPlayer;
369 pub fn gst_player_config_get_position_update_interval(
370 config: *const gst::GstStructure,
371 ) -> c_uint;
372 pub fn gst_player_config_get_seek_accurate(config: *const gst::GstStructure) -> gboolean;
373 pub fn gst_player_config_get_user_agent(config: *const gst::GstStructure) -> *mut c_char;
374 pub fn gst_player_config_set_position_update_interval(
375 config: *mut gst::GstStructure,
376 interval: c_uint,
377 );
378 pub fn gst_player_config_set_seek_accurate(config: *mut gst::GstStructure, accurate: gboolean);
379 pub fn gst_player_config_set_user_agent(config: *mut gst::GstStructure, agent: *const c_char);
380 pub fn gst_player_get_audio_streams(info: *const GstPlayerMediaInfo) -> *mut glib::GList;
381 pub fn gst_player_get_subtitle_streams(info: *const GstPlayerMediaInfo) -> *mut glib::GList;
382 pub fn gst_player_get_video_streams(info: *const GstPlayerMediaInfo) -> *mut glib::GList;
383 pub fn gst_player_visualizations_free(viss: *mut *mut GstPlayerVisualization);
384 pub fn gst_player_visualizations_get() -> *mut *mut GstPlayerVisualization;
385 pub fn gst_player_get_audio_video_offset(player: *mut GstPlayer) -> i64;
386 pub fn gst_player_get_color_balance(
387 player: *mut GstPlayer,
388 type_: GstPlayerColorBalanceType,
389 ) -> c_double;
390 pub fn gst_player_get_config(player: *mut GstPlayer) -> *mut gst::GstStructure;
391 pub fn gst_player_get_current_audio_track(player: *mut GstPlayer) -> *mut GstPlayerAudioInfo;
392 pub fn gst_player_get_current_subtitle_track(
393 player: *mut GstPlayer,
394 ) -> *mut GstPlayerSubtitleInfo;
395 pub fn gst_player_get_current_video_track(player: *mut GstPlayer) -> *mut GstPlayerVideoInfo;
396 pub fn gst_player_get_current_visualization(player: *mut GstPlayer) -> *mut c_char;
397 pub fn gst_player_get_duration(player: *mut GstPlayer) -> gst::GstClockTime;
398 pub fn gst_player_get_media_info(player: *mut GstPlayer) -> *mut GstPlayerMediaInfo;
399 pub fn gst_player_get_multiview_flags(
400 player: *mut GstPlayer,
401 ) -> gst_video::GstVideoMultiviewFlags;
402 pub fn gst_player_get_multiview_mode(
403 player: *mut GstPlayer,
404 ) -> gst_video::GstVideoMultiviewFramePacking;
405 pub fn gst_player_get_mute(player: *mut GstPlayer) -> gboolean;
406 pub fn gst_player_get_pipeline(player: *mut GstPlayer) -> *mut gst::GstElement;
407 pub fn gst_player_get_position(player: *mut GstPlayer) -> gst::GstClockTime;
408 pub fn gst_player_get_rate(player: *mut GstPlayer) -> c_double;
409 pub fn gst_player_get_subtitle_uri(player: *mut GstPlayer) -> *mut c_char;
410 #[cfg(feature = "v1_16")]
411 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
412 pub fn gst_player_get_subtitle_video_offset(player: *mut GstPlayer) -> i64;
413 pub fn gst_player_get_uri(player: *mut GstPlayer) -> *mut c_char;
414 pub fn gst_player_get_video_snapshot(
415 player: *mut GstPlayer,
416 format: GstPlayerSnapshotFormat,
417 config: *const gst::GstStructure,
418 ) -> *mut gst::GstSample;
419 pub fn gst_player_get_volume(player: *mut GstPlayer) -> c_double;
420 pub fn gst_player_has_color_balance(player: *mut GstPlayer) -> gboolean;
421 pub fn gst_player_pause(player: *mut GstPlayer);
422 pub fn gst_player_play(player: *mut GstPlayer);
423 pub fn gst_player_seek(player: *mut GstPlayer, position: gst::GstClockTime);
424 pub fn gst_player_set_audio_track(player: *mut GstPlayer, stream_index: c_int) -> gboolean;
425 pub fn gst_player_set_audio_track_enabled(player: *mut GstPlayer, enabled: gboolean);
426 pub fn gst_player_set_audio_video_offset(player: *mut GstPlayer, offset: i64);
427 pub fn gst_player_set_color_balance(
428 player: *mut GstPlayer,
429 type_: GstPlayerColorBalanceType,
430 value: c_double,
431 );
432 pub fn gst_player_set_config(
433 player: *mut GstPlayer,
434 config: *mut gst::GstStructure,
435 ) -> gboolean;
436 pub fn gst_player_set_multiview_flags(
437 player: *mut GstPlayer,
438 flags: gst_video::GstVideoMultiviewFlags,
439 );
440 pub fn gst_player_set_multiview_mode(
441 player: *mut GstPlayer,
442 mode: gst_video::GstVideoMultiviewFramePacking,
443 );
444 pub fn gst_player_set_mute(player: *mut GstPlayer, val: gboolean);
445 pub fn gst_player_set_rate(player: *mut GstPlayer, rate: c_double);
446 pub fn gst_player_set_subtitle_track(player: *mut GstPlayer, stream_index: c_int) -> gboolean;
447 pub fn gst_player_set_subtitle_track_enabled(player: *mut GstPlayer, enabled: gboolean);
448 pub fn gst_player_set_subtitle_uri(player: *mut GstPlayer, uri: *const c_char);
449 #[cfg(feature = "v1_16")]
450 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
451 pub fn gst_player_set_subtitle_video_offset(player: *mut GstPlayer, offset: i64);
452 pub fn gst_player_set_uri(player: *mut GstPlayer, uri: *const c_char);
453 pub fn gst_player_set_video_track(player: *mut GstPlayer, stream_index: c_int) -> gboolean;
454 pub fn gst_player_set_video_track_enabled(player: *mut GstPlayer, enabled: gboolean);
455 pub fn gst_player_set_visualization(player: *mut GstPlayer, name: *const c_char) -> gboolean;
456 pub fn gst_player_set_visualization_enabled(player: *mut GstPlayer, enabled: gboolean);
457 pub fn gst_player_set_volume(player: *mut GstPlayer, val: c_double);
458 pub fn gst_player_stop(player: *mut GstPlayer);
459
460 pub fn gst_player_audio_info_get_type() -> GType;
464 pub fn gst_player_audio_info_get_bitrate(info: *const GstPlayerAudioInfo) -> c_int;
465 pub fn gst_player_audio_info_get_channels(info: *const GstPlayerAudioInfo) -> c_int;
466 pub fn gst_player_audio_info_get_language(info: *const GstPlayerAudioInfo) -> *const c_char;
467 pub fn gst_player_audio_info_get_max_bitrate(info: *const GstPlayerAudioInfo) -> c_int;
468 pub fn gst_player_audio_info_get_sample_rate(info: *const GstPlayerAudioInfo) -> c_int;
469
470 pub fn gst_player_g_main_context_signal_dispatcher_get_type() -> GType;
474 pub fn gst_player_g_main_context_signal_dispatcher_new(
475 application_context: *mut glib::GMainContext,
476 ) -> *mut GstPlayerSignalDispatcher;
477
478 pub fn gst_player_media_info_get_type() -> GType;
482 pub fn gst_player_media_info_get_audio_streams(
483 info: *const GstPlayerMediaInfo,
484 ) -> *mut glib::GList;
485 pub fn gst_player_media_info_get_container_format(
486 info: *const GstPlayerMediaInfo,
487 ) -> *const c_char;
488 pub fn gst_player_media_info_get_duration(info: *const GstPlayerMediaInfo)
489 -> gst::GstClockTime;
490 pub fn gst_player_media_info_get_image_sample(
491 info: *const GstPlayerMediaInfo,
492 ) -> *mut gst::GstSample;
493 pub fn gst_player_media_info_get_number_of_audio_streams(
494 info: *const GstPlayerMediaInfo,
495 ) -> c_uint;
496 pub fn gst_player_media_info_get_number_of_streams(info: *const GstPlayerMediaInfo) -> c_uint;
497 pub fn gst_player_media_info_get_number_of_subtitle_streams(
498 info: *const GstPlayerMediaInfo,
499 ) -> c_uint;
500 pub fn gst_player_media_info_get_number_of_video_streams(
501 info: *const GstPlayerMediaInfo,
502 ) -> c_uint;
503 pub fn gst_player_media_info_get_stream_list(
504 info: *const GstPlayerMediaInfo,
505 ) -> *mut glib::GList;
506 pub fn gst_player_media_info_get_subtitle_streams(
507 info: *const GstPlayerMediaInfo,
508 ) -> *mut glib::GList;
509 pub fn gst_player_media_info_get_tags(info: *const GstPlayerMediaInfo) -> *mut gst::GstTagList;
510 pub fn gst_player_media_info_get_title(info: *const GstPlayerMediaInfo) -> *const c_char;
511 pub fn gst_player_media_info_get_uri(info: *const GstPlayerMediaInfo) -> *const c_char;
512 pub fn gst_player_media_info_get_video_streams(
513 info: *const GstPlayerMediaInfo,
514 ) -> *mut glib::GList;
515 pub fn gst_player_media_info_is_live(info: *const GstPlayerMediaInfo) -> gboolean;
516 pub fn gst_player_media_info_is_seekable(info: *const GstPlayerMediaInfo) -> gboolean;
517
518 pub fn gst_player_stream_info_get_type() -> GType;
522 pub fn gst_player_stream_info_get_caps(info: *const GstPlayerStreamInfo) -> *mut gst::GstCaps;
523 pub fn gst_player_stream_info_get_codec(info: *const GstPlayerStreamInfo) -> *const c_char;
524 pub fn gst_player_stream_info_get_index(info: *const GstPlayerStreamInfo) -> c_int;
525 pub fn gst_player_stream_info_get_stream_type(
526 info: *const GstPlayerStreamInfo,
527 ) -> *const c_char;
528 pub fn gst_player_stream_info_get_tags(
529 info: *const GstPlayerStreamInfo,
530 ) -> *mut gst::GstTagList;
531
532 pub fn gst_player_subtitle_info_get_type() -> GType;
536 pub fn gst_player_subtitle_info_get_language(
537 info: *const GstPlayerSubtitleInfo,
538 ) -> *const c_char;
539
540 pub fn gst_player_video_info_get_type() -> GType;
544 pub fn gst_player_video_info_get_bitrate(info: *const GstPlayerVideoInfo) -> c_int;
545 pub fn gst_player_video_info_get_framerate(
546 info: *const GstPlayerVideoInfo,
547 fps_n: *mut c_int,
548 fps_d: *mut c_int,
549 );
550 pub fn gst_player_video_info_get_height(info: *const GstPlayerVideoInfo) -> c_int;
551 pub fn gst_player_video_info_get_max_bitrate(info: *const GstPlayerVideoInfo) -> c_int;
552 pub fn gst_player_video_info_get_pixel_aspect_ratio(
553 info: *const GstPlayerVideoInfo,
554 par_n: *mut c_uint,
555 par_d: *mut c_uint,
556 );
557 pub fn gst_player_video_info_get_width(info: *const GstPlayerVideoInfo) -> c_int;
558
559 pub fn gst_player_video_overlay_video_renderer_get_type() -> GType;
563 pub fn gst_player_video_overlay_video_renderer_new(
564 window_handle: gpointer,
565 ) -> *mut GstPlayerVideoRenderer;
566 pub fn gst_player_video_overlay_video_renderer_new_with_sink(
567 window_handle: gpointer,
568 video_sink: *mut gst::GstElement,
569 ) -> *mut GstPlayerVideoRenderer;
570 pub fn gst_player_video_overlay_video_renderer_expose(
571 self_: *mut GstPlayerVideoOverlayVideoRenderer,
572 );
573 pub fn gst_player_video_overlay_video_renderer_get_render_rectangle(
574 self_: *mut GstPlayerVideoOverlayVideoRenderer,
575 x: *mut c_int,
576 y: *mut c_int,
577 width: *mut c_int,
578 height: *mut c_int,
579 );
580 pub fn gst_player_video_overlay_video_renderer_get_window_handle(
581 self_: *mut GstPlayerVideoOverlayVideoRenderer,
582 ) -> gpointer;
583 pub fn gst_player_video_overlay_video_renderer_set_render_rectangle(
584 self_: *mut GstPlayerVideoOverlayVideoRenderer,
585 x: c_int,
586 y: c_int,
587 width: c_int,
588 height: c_int,
589 );
590 pub fn gst_player_video_overlay_video_renderer_set_window_handle(
591 self_: *mut GstPlayerVideoOverlayVideoRenderer,
592 window_handle: gpointer,
593 );
594
595 pub fn gst_player_signal_dispatcher_get_type() -> GType;
599
600 pub fn gst_player_video_renderer_get_type() -> GType;
604
605}