gstreamer_player_sys/
lib.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
6#![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
33// Enums
34pub 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
56// Callbacks
57pub type GstPlayerSignalDispatcherFunc = Option<unsafe extern "C" fn(gpointer)>;
58
59// Records
60#[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// Classes
191#[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// Interfaces
303#[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    //=========================================================================
332    // GstPlayerColorBalanceType
333    //=========================================================================
334    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    //=========================================================================
340    // GstPlayerError
341    //=========================================================================
342    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    //=========================================================================
347    // GstPlayerState
348    //=========================================================================
349    pub fn gst_player_state_get_type() -> GType;
350    pub fn gst_player_state_get_name(state: GstPlayerState) -> *const c_char;
351
352    //=========================================================================
353    // GstPlayerVisualization
354    //=========================================================================
355    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    //=========================================================================
362    // GstPlayer
363    //=========================================================================
364    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    //=========================================================================
461    // GstPlayerAudioInfo
462    //=========================================================================
463    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    //=========================================================================
471    // GstPlayerGMainContextSignalDispatcher
472    //=========================================================================
473    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    //=========================================================================
479    // GstPlayerMediaInfo
480    //=========================================================================
481    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    //=========================================================================
519    // GstPlayerStreamInfo
520    //=========================================================================
521    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    //=========================================================================
533    // GstPlayerSubtitleInfo
534    //=========================================================================
535    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    //=========================================================================
541    // GstPlayerVideoInfo
542    //=========================================================================
543    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    //=========================================================================
560    // GstPlayerVideoOverlayVideoRenderer
561    //=========================================================================
562    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    //=========================================================================
596    // GstPlayerSignalDispatcher
597    //=========================================================================
598    pub fn gst_player_signal_dispatcher_get_type() -> GType;
599
600    //=========================================================================
601    // GstPlayerVideoRenderer
602    //=========================================================================
603    pub fn gst_player_video_renderer_get_type() -> GType;
604
605}