+typedef struct libvlc_audio_track_t
+{
+ unsigned i_channels;
+ unsigned i_rate;
+} libvlc_audio_track_t;
+
+typedef struct libvlc_video_track_t
+{
+ unsigned i_height;
+ unsigned i_width;
+ unsigned i_sar_num;
+ unsigned i_sar_den;
+ unsigned i_frame_rate_num;
+ unsigned i_frame_rate_den;
+} libvlc_video_track_t;
+
+typedef struct libvlc_subtitle_track_t
+{
+ char *psz_encoding;
+} libvlc_subtitle_track_t;
+
+typedef struct libvlc_media_track_t
+{
+ /* Codec fourcc */
+ uint32_t i_codec;
+ uint32_t i_original_fourcc;
+ int i_id;
+ libvlc_track_type_t i_type;
+
+ /* Codec specific */
+ int i_profile;
+ int i_level;
+
+ union {
+ libvlc_audio_track_t *audio;
+ libvlc_video_track_t *video;
+ libvlc_subtitle_track_t *subtitle;
+ };
+
+ unsigned int i_bitrate;
+ char *psz_language;
+ char *psz_description;
+
+} libvlc_media_track_t;
+
+/** defgroup libvlc_media_type LibVLC media type
+ * \ingroup libvlc_media
+ * @{
+ */
+
+/**
+ * Media type
+ *
+ * \see libvlc_media_get_type
+ */
+typedef enum libvlc_media_type_t {
+ libvlc_media_type_unknown,
+ libvlc_media_type_file,
+ libvlc_media_type_directory,
+ libvlc_media_type_disc,
+ libvlc_media_type_stream,
+ libvlc_media_type_playlist,
+} libvlc_media_type_t;
+
+/** @}*/
+
+/**
+ * Parse flags used by libvlc_media_parse_with_options()
+ *
+ * \see libvlc_media_parse_with_options
+ */
+typedef enum libvlc_media_parse_flag_t
+{
+ /**
+ * Parse media if it's a local file
+ */
+ libvlc_media_parse_local = 0x00,
+ /**
+ * Parse media even if it's a network file
+ */
+ libvlc_media_parse_network = 0x01,
+ /**
+ * Fetch meta and covert art using local resources
+ */
+ libvlc_media_fetch_local = 0x02,
+ /**
+ * Fetch meta and covert art using network resources
+ */
+ libvlc_media_fetch_network = 0x04,
+} libvlc_media_parse_flag_t;
+