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 "gstplay-media-info.h" 22 23 #ifndef __GST_PLAY_MEDIA_INFO_PRIVATE_H__ 24 #define __GST_PLAY_MEDIA_INFO_PRIVATE_H__ 25 26 struct _GstPlayStreamInfo 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 _GstPlayStreamInfoClass 39 { 40 GObjectClass parent_class; 41 }; 42 43 struct _GstPlaySubtitleInfo 44 { 45 GstPlayStreamInfo parent; 46 47 gchar *language; 48 }; 49 50 struct _GstPlaySubtitleInfoClass 51 { 52 GstPlayStreamInfoClass parent_class; 53 }; 54 55 struct _GstPlayAudioInfo 56 { 57 GstPlayStreamInfo 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 _GstPlayAudioInfoClass 69 { 70 GstPlayStreamInfoClass parent_class; 71 }; 72 73 struct _GstPlayVideoInfo 74 { 75 GstPlayStreamInfo 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 _GstPlayVideoInfoClass 89 { 90 GstPlayStreamInfoClass parent_class; 91 }; 92 93 struct _GstPlayMediaInfo 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 _GstPlayMediaInfoClass 113 { 114 GObjectClass parent_class; 115 }; 116 117 G_GNUC_INTERNAL GstPlayMediaInfo* gst_play_media_info_new 118 (const gchar *uri); 119 G_GNUC_INTERNAL GstPlayMediaInfo* gst_play_media_info_copy 120 (GstPlayMediaInfo *ref); 121 G_GNUC_INTERNAL GstPlayStreamInfo* gst_play_stream_info_new 122 (gint stream_index, GType type); 123 G_GNUC_INTERNAL GstPlayStreamInfo* gst_play_stream_info_copy 124 (GstPlayStreamInfo *ref); 125 126 #endif /* __GST_PLAY_MEDIA_INFO_PRIVATE_H__ */ 127