1 | /* GStreamer |
2 | * |
3 | * Copyright (C) 2015 Brijesh Singh <brijesh.ksingh@gmail.com> |
4 | * |
5 | * This library is free software; you can redistribute it and/or |
6 | * modify it under the terms of the GNU Library General Public |
7 | * License as published by the Free Software Foundation; either |
8 | * version 2 of the License, or (at your option) any later version. |
9 | * |
10 | * This library is distributed in the hope that it will be useful, |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | * Library General Public License for more details. |
14 | * |
15 | * You should have received a copy of the GNU Library General Public |
16 | * License along with this library; if not, write to the |
17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, |
18 | * Boston, MA 02110-1301, USA. |
19 | */ |
20 | |
21 | #ifndef __GST_PLAYER_MEDIA_INFO_H__ |
22 | #define __GST_PLAYER_MEDIA_INFO_H__ |
23 | |
24 | #include <gst/gst.h> |
25 | #include <gst/player/player-prelude.h> |
26 | |
27 | G_BEGIN_DECLS |
28 | |
29 | #define GST_TYPE_PLAYER_STREAM_INFO \ |
30 | (gst_player_stream_info_get_type ()) |
31 | #define GST_PLAYER_STREAM_INFO(obj) \ |
32 | (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PLAYER_STREAM_INFO,GstPlayerStreamInfo)) |
33 | #define GST_PLAYER_STREAM_INFO_CLASS(klass) \ |
34 | (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PLAYER_STREAM_INFO,GstPlayerStreamInfo)) |
35 | #define GST_IS_PLAYER_STREAM_INFO(obj) \ |
36 | (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PLAYER_STREAM_INFO)) |
37 | #define GST_IS_PLAYER_STREAM_INFO_CLASS(klass) \ |
38 | (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PLAYER_STREAM_INFO)) |
39 | |
40 | /** |
41 | * GstPlayerStreamInfo: |
42 | * |
43 | * Base structure for information concerning a media stream. Depending on |
44 | * the stream type, one can find more media-specific information in |
45 | * #GstPlayerVideoInfo, #GstPlayerAudioInfo, #GstPlayerSubtitleInfo. |
46 | */ |
47 | typedef struct _GstPlayerStreamInfo GstPlayerStreamInfo; |
48 | typedef struct _GstPlayerStreamInfoClass GstPlayerStreamInfoClass; |
49 | |
50 | GST_PLAYER_API |
51 | GType gst_player_stream_info_get_type (void); |
52 | |
53 | GST_PLAYER_API |
54 | gint gst_player_stream_info_get_index (const GstPlayerStreamInfo *info); |
55 | |
56 | GST_PLAYER_API |
57 | const gchar* gst_player_stream_info_get_stream_type (const GstPlayerStreamInfo *info); |
58 | |
59 | GST_PLAYER_API |
60 | GstTagList* gst_player_stream_info_get_tags (const GstPlayerStreamInfo *info); |
61 | |
62 | GST_PLAYER_API |
63 | GstCaps* gst_player_stream_info_get_caps (const GstPlayerStreamInfo *info); |
64 | |
65 | GST_PLAYER_API |
66 | const gchar* gst_player_stream_info_get_codec (const GstPlayerStreamInfo *info); |
67 | |
68 | #define GST_TYPE_PLAYER_VIDEO_INFO \ |
69 | (gst_player_video_info_get_type ()) |
70 | #define GST_PLAYER_VIDEO_INFO(obj) \ |
71 | (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PLAYER_VIDEO_INFO, GstPlayerVideoInfo)) |
72 | #define GST_PLAYER_VIDEO_INFO_CLASS(klass) \ |
73 | (G_TYPE_CHECK_CLASS_CAST((obj),GST_TYPE_PLAYER_VIDEO_INFO, GstPlayerVideoInfoClass)) |
74 | #define GST_IS_PLAYER_VIDEO_INFO(obj) \ |
75 | (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PLAYER_VIDEO_INFO)) |
76 | #define GST_IS_PLAYER_VIDEO_INFO_CLASS(klass) \ |
77 | (G_TYPE_CHECK_CLASS_TYPE((obj),GST_TYPE_PLAYER_VIDEO_INFO)) |
78 | |
79 | /** |
80 | * GstPlayerVideoInfo: |
81 | * |
82 | * #GstPlayerStreamInfo specific to video streams. |
83 | */ |
84 | typedef struct _GstPlayerVideoInfo GstPlayerVideoInfo; |
85 | typedef struct _GstPlayerVideoInfoClass GstPlayerVideoInfoClass; |
86 | |
87 | GST_PLAYER_API |
88 | GType gst_player_video_info_get_type (void); |
89 | |
90 | GST_PLAYER_API |
91 | gint gst_player_video_info_get_bitrate (const GstPlayerVideoInfo * info); |
92 | |
93 | GST_PLAYER_API |
94 | gint gst_player_video_info_get_max_bitrate (const GstPlayerVideoInfo * info); |
95 | |
96 | GST_PLAYER_API |
97 | gint gst_player_video_info_get_width (const GstPlayerVideoInfo * info); |
98 | |
99 | GST_PLAYER_API |
100 | gint gst_player_video_info_get_height (const GstPlayerVideoInfo * info); |
101 | |
102 | GST_PLAYER_API |
103 | void gst_player_video_info_get_framerate (const GstPlayerVideoInfo * info, |
104 | gint * fps_n, |
105 | gint * fps_d); |
106 | |
107 | GST_PLAYER_API |
108 | void gst_player_video_info_get_pixel_aspect_ratio (const GstPlayerVideoInfo * info, |
109 | guint * par_n, |
110 | guint * par_d); |
111 | |
112 | #define GST_TYPE_PLAYER_AUDIO_INFO \ |
113 | (gst_player_audio_info_get_type ()) |
114 | #define GST_PLAYER_AUDIO_INFO(obj) \ |
115 | (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PLAYER_AUDIO_INFO, GstPlayerAudioInfo)) |
116 | #define GST_PLAYER_AUDIO_INFO_CLASS(klass) \ |
117 | (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PLAYER_AUDIO_INFO, GstPlayerAudioInfoClass)) |
118 | #define GST_IS_PLAYER_AUDIO_INFO(obj) \ |
119 | (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PLAYER_AUDIO_INFO)) |
120 | #define GST_IS_PLAYER_AUDIO_INFO_CLASS(klass) \ |
121 | (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PLAYER_AUDIO_INFO)) |
122 | |
123 | /** |
124 | * GstPlayerAudioInfo: |
125 | * |
126 | * #GstPlayerStreamInfo specific to audio streams. |
127 | */ |
128 | typedef struct _GstPlayerAudioInfo GstPlayerAudioInfo; |
129 | typedef struct _GstPlayerAudioInfoClass GstPlayerAudioInfoClass; |
130 | |
131 | GST_PLAYER_API |
132 | GType gst_player_audio_info_get_type (void); |
133 | |
134 | GST_PLAYER_API |
135 | gint gst_player_audio_info_get_channels (const GstPlayerAudioInfo* info); |
136 | |
137 | GST_PLAYER_API |
138 | gint gst_player_audio_info_get_sample_rate (const GstPlayerAudioInfo* info); |
139 | |
140 | GST_PLAYER_API |
141 | gint gst_player_audio_info_get_bitrate (const GstPlayerAudioInfo* info); |
142 | |
143 | GST_PLAYER_API |
144 | gint gst_player_audio_info_get_max_bitrate (const GstPlayerAudioInfo* info); |
145 | |
146 | GST_PLAYER_API |
147 | const gchar* gst_player_audio_info_get_language (const GstPlayerAudioInfo* info); |
148 | |
149 | #define GST_TYPE_PLAYER_SUBTITLE_INFO \ |
150 | (gst_player_subtitle_info_get_type ()) |
151 | #define GST_PLAYER_SUBTITLE_INFO(obj) \ |
152 | (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PLAYER_SUBTITLE_INFO, GstPlayerSubtitleInfo)) |
153 | #define GST_PLAYER_SUBTITLE_INFO_CLASS(klass) \ |
154 | (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PLAYER_SUBTITLE_INFO,GstPlayerSubtitleInfoClass)) |
155 | #define GST_IS_PLAYER_SUBTITLE_INFO(obj) \ |
156 | (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PLAYER_SUBTITLE_INFO)) |
157 | #define GST_IS_PLAYER_SUBTITLE_INFO_CLASS(klass) \ |
158 | (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PLAYER_SUBTITLE_INFO)) |
159 | |
160 | /** |
161 | * GstPlayerSubtitleInfo: |
162 | * |
163 | * #GstPlayerStreamInfo specific to subtitle streams. |
164 | */ |
165 | typedef struct _GstPlayerSubtitleInfo GstPlayerSubtitleInfo; |
166 | typedef struct _GstPlayerSubtitleInfoClass GstPlayerSubtitleInfoClass; |
167 | |
168 | GST_PLAYER_API |
169 | GType gst_player_subtitle_info_get_type (void); |
170 | |
171 | GST_PLAYER_API |
172 | const gchar * gst_player_subtitle_info_get_language (const GstPlayerSubtitleInfo* info); |
173 | |
174 | #define GST_TYPE_PLAYER_MEDIA_INFO \ |
175 | (gst_player_media_info_get_type()) |
176 | #define GST_PLAYER_MEDIA_INFO(obj) \ |
177 | (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PLAYER_MEDIA_INFO,GstPlayerMediaInfo)) |
178 | #define GST_PLAYER_MEDIA_INFO_CLASS(klass) \ |
179 | (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PLAYER_MEDIA_INFO,GstPlayerMediaInfoClass)) |
180 | #define GST_IS_PLAYER_MEDIA_INFO(obj) \ |
181 | (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PLAYER_MEDIA_INFO)) |
182 | #define GST_IS_PLAYER_MEDIA_INFO_CLASS(klass) \ |
183 | (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PLAYER_MEDIA_INFO)) |
184 | |
185 | /** |
186 | * GstPlayerMediaInfo: |
187 | * |
188 | * Structure containing the media information of a URI. |
189 | */ |
190 | typedef struct _GstPlayerMediaInfo GstPlayerMediaInfo; |
191 | typedef struct _GstPlayerMediaInfoClass GstPlayerMediaInfoClass; |
192 | |
193 | GST_PLAYER_API |
194 | GType gst_player_media_info_get_type (void); |
195 | |
196 | GST_PLAYER_API |
197 | const gchar * gst_player_media_info_get_uri (const GstPlayerMediaInfo *info); |
198 | |
199 | GST_PLAYER_API |
200 | gboolean gst_player_media_info_is_seekable (const GstPlayerMediaInfo *info); |
201 | |
202 | GST_PLAYER_API |
203 | gboolean gst_player_media_info_is_live (const GstPlayerMediaInfo *info); |
204 | |
205 | GST_PLAYER_API |
206 | GstClockTime gst_player_media_info_get_duration (const GstPlayerMediaInfo *info); |
207 | |
208 | GST_PLAYER_API |
209 | GList* gst_player_media_info_get_stream_list (const GstPlayerMediaInfo *info); |
210 | |
211 | GST_PLAYER_API |
212 | guint gst_player_media_info_get_number_of_streams (const GstPlayerMediaInfo *info); |
213 | |
214 | GST_PLAYER_API |
215 | GList* gst_player_media_info_get_video_streams (const GstPlayerMediaInfo *info); |
216 | |
217 | GST_PLAYER_API |
218 | guint gst_player_media_info_get_number_of_video_streams (const GstPlayerMediaInfo *info); |
219 | |
220 | GST_PLAYER_API |
221 | GList* gst_player_media_info_get_audio_streams (const GstPlayerMediaInfo *info); |
222 | |
223 | GST_PLAYER_API |
224 | guint gst_player_media_info_get_number_of_audio_streams (const GstPlayerMediaInfo *info); |
225 | |
226 | GST_PLAYER_API |
227 | GList* gst_player_media_info_get_subtitle_streams (const GstPlayerMediaInfo *info); |
228 | |
229 | GST_PLAYER_API |
230 | guint gst_player_media_info_get_number_of_subtitle_streams (const GstPlayerMediaInfo *info); |
231 | |
232 | GST_PLAYER_API |
233 | GstTagList* gst_player_media_info_get_tags (const GstPlayerMediaInfo *info); |
234 | |
235 | GST_PLAYER_API |
236 | const gchar* gst_player_media_info_get_title (const GstPlayerMediaInfo *info); |
237 | |
238 | GST_PLAYER_API |
239 | const gchar* gst_player_media_info_get_container_format (const GstPlayerMediaInfo *info); |
240 | |
241 | GST_PLAYER_API |
242 | GstSample* gst_player_media_info_get_image_sample (const GstPlayerMediaInfo *info); |
243 | |
244 | GST_PLAYER_DEPRECATED_FOR(gst_player_media_info_get_video_streams) |
245 | GList* gst_player_get_video_streams (const GstPlayerMediaInfo *info); |
246 | |
247 | GST_PLAYER_DEPRECATED_FOR(gst_player_media_info_get_audio_streams) |
248 | GList* gst_player_get_audio_streams (const GstPlayerMediaInfo *info); |
249 | |
250 | GST_PLAYER_DEPRECATED_FOR(gst_player_media_info_get_subtitle_streams) |
251 | GList* gst_player_get_subtitle_streams (const GstPlayerMediaInfo *info); |
252 | |
253 | G_END_DECLS |
254 | |
255 | #endif /* __GST_PLAYER_MEDIA_INFO_H */ |
256 | |