gstreamer_play/auto/
play_media_info.rs1use crate::{ffi, PlayAudioInfo, PlayStreamInfo, PlaySubtitleInfo, PlayVideoInfo};
7use glib::translate::*;
8
9glib::wrapper! {
10 #[doc(alias = "GstPlayMediaInfo")]
11 pub struct PlayMediaInfo(Object<ffi::GstPlayMediaInfo, ffi::GstPlayMediaInfoClass>);
12
13 match fn {
14 type_ => || ffi::gst_play_media_info_get_type(),
15 }
16}
17
18impl PlayMediaInfo {
19 #[doc(alias = "gst_play_media_info_get_audio_streams")]
20 #[doc(alias = "get_audio_streams")]
21 pub fn audio_streams(&self) -> Vec<PlayAudioInfo> {
22 unsafe {
23 FromGlibPtrContainer::from_glib_none(ffi::gst_play_media_info_get_audio_streams(
24 self.to_glib_none().0,
25 ))
26 }
27 }
28
29 #[doc(alias = "gst_play_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_play_media_info_get_container_format(
34 self.to_glib_none().0,
35 ))
36 }
37 }
38
39 #[doc(alias = "gst_play_media_info_get_duration")]
40 #[doc(alias = "get_duration")]
41 pub fn duration(&self) -> Option<gst::ClockTime> {
42 unsafe { from_glib(ffi::gst_play_media_info_get_duration(self.to_glib_none().0)) }
43 }
44
45 #[doc(alias = "gst_play_media_info_get_image_sample")]
46 #[doc(alias = "get_image_sample")]
47 pub fn image_sample(&self) -> Option<gst::Sample> {
48 unsafe {
49 from_glib_none(ffi::gst_play_media_info_get_image_sample(
50 self.to_glib_none().0,
51 ))
52 }
53 }
54
55 #[doc(alias = "gst_play_media_info_get_number_of_audio_streams")]
56 #[doc(alias = "get_number_of_audio_streams")]
57 pub fn number_of_audio_streams(&self) -> u32 {
58 unsafe { ffi::gst_play_media_info_get_number_of_audio_streams(self.to_glib_none().0) }
59 }
60
61 #[doc(alias = "gst_play_media_info_get_number_of_streams")]
62 #[doc(alias = "get_number_of_streams")]
63 pub fn number_of_streams(&self) -> u32 {
64 unsafe { ffi::gst_play_media_info_get_number_of_streams(self.to_glib_none().0) }
65 }
66
67 #[doc(alias = "gst_play_media_info_get_number_of_subtitle_streams")]
68 #[doc(alias = "get_number_of_subtitle_streams")]
69 pub fn number_of_subtitle_streams(&self) -> u32 {
70 unsafe { ffi::gst_play_media_info_get_number_of_subtitle_streams(self.to_glib_none().0) }
71 }
72
73 #[doc(alias = "gst_play_media_info_get_number_of_video_streams")]
74 #[doc(alias = "get_number_of_video_streams")]
75 pub fn number_of_video_streams(&self) -> u32 {
76 unsafe { ffi::gst_play_media_info_get_number_of_video_streams(self.to_glib_none().0) }
77 }
78
79 #[doc(alias = "gst_play_media_info_get_stream_list")]
80 #[doc(alias = "get_stream_list")]
81 pub fn stream_list(&self) -> Vec<PlayStreamInfo> {
82 unsafe {
83 FromGlibPtrContainer::from_glib_none(ffi::gst_play_media_info_get_stream_list(
84 self.to_glib_none().0,
85 ))
86 }
87 }
88
89 #[doc(alias = "gst_play_media_info_get_subtitle_streams")]
90 #[doc(alias = "get_subtitle_streams")]
91 pub fn subtitle_streams(&self) -> Vec<PlaySubtitleInfo> {
92 unsafe {
93 FromGlibPtrContainer::from_glib_none(ffi::gst_play_media_info_get_subtitle_streams(
94 self.to_glib_none().0,
95 ))
96 }
97 }
98
99 #[doc(alias = "gst_play_media_info_get_tags")]
100 #[doc(alias = "get_tags")]
101 pub fn tags(&self) -> Option<gst::TagList> {
102 unsafe { from_glib_none(ffi::gst_play_media_info_get_tags(self.to_glib_none().0)) }
103 }
104
105 #[doc(alias = "gst_play_media_info_get_title")]
106 #[doc(alias = "get_title")]
107 pub fn title(&self) -> Option<glib::GString> {
108 unsafe { from_glib_none(ffi::gst_play_media_info_get_title(self.to_glib_none().0)) }
109 }
110
111 #[doc(alias = "gst_play_media_info_get_uri")]
112 #[doc(alias = "get_uri")]
113 pub fn uri(&self) -> glib::GString {
114 unsafe { from_glib_none(ffi::gst_play_media_info_get_uri(self.to_glib_none().0)) }
115 }
116
117 #[doc(alias = "gst_play_media_info_get_video_streams")]
118 #[doc(alias = "get_video_streams")]
119 pub fn video_streams(&self) -> Vec<PlayVideoInfo> {
120 unsafe {
121 FromGlibPtrContainer::from_glib_none(ffi::gst_play_media_info_get_video_streams(
122 self.to_glib_none().0,
123 ))
124 }
125 }
126
127 #[doc(alias = "gst_play_media_info_is_live")]
128 pub fn is_live(&self) -> bool {
129 unsafe { from_glib(ffi::gst_play_media_info_is_live(self.to_glib_none().0)) }
130 }
131
132 #[doc(alias = "gst_play_media_info_is_seekable")]
133 pub fn is_seekable(&self) -> bool {
134 unsafe { from_glib(ffi::gst_play_media_info_is_seekable(self.to_glib_none().0)) }
135 }
136}
137
138unsafe impl Send for PlayMediaInfo {}
139unsafe impl Sync for PlayMediaInfo {}