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 #include "gstplayer-media-info.h" 22 23 #ifndef __GST_PLAYER_MEDIA_INFO_PRIVATE_H__ 24 #define __GST_PLAYER_MEDIA_INFO_PRIVATE_H__ 25 26 struct _GstPlayerStreamInfo 27 { 28 GObject parent; 29 30 gchar *codec; 31 32 GstCaps *caps; 33 gint stream_index; 34 GstTagList *tags; 35 gchar *stream_id; 36 }; 37 38 struct _GstPlayerStreamInfoClass 39 { 40 GObjectClass parent_class; 41 }; 42 43 struct _GstPlayerSubtitleInfo 44 { 45 GstPlayerStreamInfo parent; 46 47 gchar *language; 48 }; 49 50 struct _GstPlayerSubtitleInfoClass 51 { 52 GstPlayerStreamInfoClass parent_class; 53 }; 54 55 struct _GstPlayerAudioInfo 56 { 57 GstPlayerStreamInfo parent; 58 59 gint channels; 60 gint sample_rate; 61 62 guint bitrate; 63 guint max_bitrate; 64 65 gchar *language; 66 }; 67 68 struct _GstPlayerAudioInfoClass 69 { 70 GstPlayerStreamInfoClass parent_class; 71 }; 72 73 struct _GstPlayerVideoInfo 74 { 75 GstPlayerStreamInfo parent; 76 77 gint width; 78 gint height; 79 gint framerate_num; 80 gint framerate_denom; 81 gint par_num; 82 gint par_denom; 83 84 guint bitrate; 85 guint max_bitrate; 86 }; 87 88 struct _GstPlayerVideoInfoClass 89 { 90 GstPlayerStreamInfoClass parent_class; 91 }; 92 93 struct _GstPlayerMediaInfo 94 { 95 GObject parent; 96 97 gchar *uri; 98 gchar *title; 99 gchar *container; 100 gboolean seekable, is_live; 101 GstTagList *tags; 102 GstSample *image_sample; 103 104 GList *stream_list; 105 GList *audio_stream_list; 106 GList *video_stream_list; 107 GList *subtitle_stream_list; 108 109 GstClockTime duration; 110 }; 111 112 struct _GstPlayerMediaInfoClass 113 { 114 GObjectClass parent_class; 115 }; 116 117 G_GNUC_INTERNAL GstPlayerMediaInfo* gst_player_media_info_new 118 (const gchar *uri); 119 G_GNUC_INTERNAL GstPlayerMediaInfo* gst_player_media_info_copy 120 (GstPlayerMediaInfo *ref); 121 G_GNUC_INTERNAL GstPlayerStreamInfo* gst_player_stream_info_new 122 (gint stream_index, GType type); 123 G_GNUC_INTERNAL GstPlayerStreamInfo* gst_player_stream_info_copy 124 (GstPlayerStreamInfo *ref); 125 126 #endif /* __GST_PLAYER_MEDIA_INFO_PRIVATE_H__ */ 127