gstreamer_player/auto/
player_media_info.rs1use crate::{ffi, PlayerAudioInfo, PlayerStreamInfo, PlayerSubtitleInfo, PlayerVideoInfo};
7use glib::translate::*;
8
9glib::wrapper! {
10 #[doc(alias = "GstPlayerMediaInfo")]
11 pub struct PlayerMediaInfo(Object<ffi::GstPlayerMediaInfo, ffi::GstPlayerMediaInfoClass>);
12
13 match fn {
14 type_ => || ffi::gst_player_media_info_get_type(),
15 }
16}
17
18impl PlayerMediaInfo {
19 #[doc(alias = "gst_player_media_info_get_audio_streams")]
20 #[doc(alias = "get_audio_streams")]
21 pub fn audio_streams(&self) -> Vec<PlayerAudioInfo> {
22 unsafe {
23 FromGlibPtrContainer::from_glib_none(ffi::gst_player_media_info_get_audio_streams(
24 self.to_glib_none().0,
25 ))
26 }
27 }
28
29 #[doc(alias = "gst_player_media_info_get_container_format")]
30 #[doc(alias = "get_container_format")]
31 pub fn container_format(&self) -> Option<glib::GString> {
32 unsafe {
33 from_glib_none(ffi::gst_player_media_info_get_container_format(
34 self.to_glib_none().0,
35 ))
36 }
37 }
38
39 #[doc(alias = "gst_player_media_info_get_duration")]
40 #[doc(alias = "get_duration")]
41 pub fn duration(&self) -> Option<gst::ClockTime> {
42 unsafe {
43 from_glib(ffi::gst_player_media_info_get_duration(
44 self.to_glib_none().0,
45 ))
46 }
47 }
48
49 #[doc(alias = "gst_player_media_info_get_image_sample")]
50 #[doc(alias = "get_image_sample")]
51 pub fn image_sample(&self) -> Option<gst::Sample> {
52 unsafe {
53 from_glib_none(ffi::gst_player_media_info_get_image_sample(
54 self.to_glib_none().0,
55 ))
56 }
57 }
58
59 #[doc(alias = "gst_player_media_info_get_number_of_audio_streams")]
60 #[doc(alias = "get_number_of_audio_streams")]
61 pub fn number_of_audio_streams(&self) -> u32 {
62 unsafe { ffi::gst_player_media_info_get_number_of_audio_streams(self.to_glib_none().0) }
63 }
64
65 #[doc(alias = "gst_player_media_info_get_number_of_streams")]
66 #[doc(alias = "get_number_of_streams")]
67 pub fn number_of_streams(&self) -> u32 {
68 unsafe { ffi::gst_player_media_info_get_number_of_streams(self.to_glib_none().0) }
69 }
70
71 #[doc(alias = "gst_player_media_info_get_number_of_subtitle_streams")]
72 #[doc(alias = "get_number_of_subtitle_streams")]
73 pub fn number_of_subtitle_streams(&self) -> u32 {
74 unsafe { ffi::gst_player_media_info_get_number_of_subtitle_streams(self.to_glib_none().0) }
75 }
76
77 #[doc(alias = "gst_player_media_info_get_number_of_video_streams")]
78 #[doc(alias = "get_number_of_video_streams")]
79 pub fn number_of_video_streams(&self) -> u32 {
80 unsafe { ffi::gst_player_media_info_get_number_of_video_streams(self.to_glib_none().0) }
81 }
82
83 #[doc(alias = "gst_player_media_info_get_stream_list")]
84 #[doc(alias = "get_stream_list")]
85 pub fn stream_list(&self) -> Vec<PlayerStreamInfo> {
86 unsafe {
87 FromGlibPtrContainer::from_glib_none(ffi::gst_player_media_info_get_stream_list(
88 self.to_glib_none().0,
89 ))
90 }
91 }
92
93 #[doc(alias = "gst_player_media_info_get_subtitle_streams")]
94 #[doc(alias = "get_subtitle_streams")]
95 pub fn subtitle_streams(&self) -> Vec<PlayerSubtitleInfo> {
96 unsafe {
97 FromGlibPtrContainer::from_glib_none(ffi::gst_player_media_info_get_subtitle_streams(
98 self.to_glib_none().0,
99 ))
100 }
101 }
102
103 #[doc(alias = "gst_player_media_info_get_tags")]
104 #[doc(alias = "get_tags")]
105 pub fn tags(&self) -> Option<gst::TagList> {
106 unsafe { from_glib_none(ffi::gst_player_media_info_get_tags(self.to_glib_none().0)) }
107 }
108
109 #[doc(alias = "gst_player_media_info_get_title")]
110 #[doc(alias = "get_title")]
111 pub fn title(&self) -> Option<glib::GString> {
112 unsafe { from_glib_none(ffi::gst_player_media_info_get_title(self.to_glib_none().0)) }
113 }
114
115 #[doc(alias = "gst_player_media_info_get_uri")]
116 #[doc(alias = "get_uri")]
117 pub fn uri(&self) -> glib::GString {
118 unsafe { from_glib_none(ffi::gst_player_media_info_get_uri(self.to_glib_none().0)) }
119 }
120
121 #[doc(alias = "gst_player_media_info_get_video_streams")]
122 #[doc(alias = "get_video_streams")]
123 pub fn video_streams(&self) -> Vec<PlayerVideoInfo> {
124 unsafe {
125 FromGlibPtrContainer::from_glib_none(ffi::gst_player_media_info_get_video_streams(
126 self.to_glib_none().0,
127 ))
128 }
129 }
130
131 #[doc(alias = "gst_player_media_info_is_live")]
132 pub fn is_live(&self) -> bool {
133 unsafe { from_glib(ffi::gst_player_media_info_is_live(self.to_glib_none().0)) }
134 }
135
136 #[doc(alias = "gst_player_media_info_is_seekable")]
137 pub fn is_seekable(&self) -> bool {
138 unsafe {
139 from_glib(ffi::gst_player_media_info_is_seekable(
140 self.to_glib_none().0,
141 ))
142 }
143 }
144}
145
146unsafe impl Send for PlayerMediaInfo {}
147unsafe impl Sync for PlayerMediaInfo {}