+VLC_PUBLIC_API vlc_int64_t libvlc_media_instance_get_length ( libvlc_media_instance_t *, libvlc_exception_t *);
+VLC_PUBLIC_API vlc_int64_t libvlc_media_instance_get_time ( libvlc_media_instance_t *, libvlc_exception_t *);
+VLC_PUBLIC_API void libvlc_media_instance_set_time ( libvlc_media_instance_t *, vlc_int64_t, libvlc_exception_t *);
+VLC_PUBLIC_API float libvlc_media_instance_get_position ( libvlc_media_instance_t *, libvlc_exception_t *);
+VLC_PUBLIC_API void libvlc_media_instance_set_position ( libvlc_media_instance_t *, float, libvlc_exception_t *);
+VLC_PUBLIC_API vlc_bool_t libvlc_media_instance_will_play ( libvlc_media_instance_t *, libvlc_exception_t *);
+VLC_PUBLIC_API float libvlc_media_instance_get_rate ( libvlc_media_instance_t *, libvlc_exception_t *);
+VLC_PUBLIC_API void libvlc_media_instance_set_rate ( libvlc_media_instance_t *, float, libvlc_exception_t *);
+VLC_PUBLIC_API int libvlc_media_instance_get_state ( libvlc_media_instance_t *, libvlc_exception_t *);
+
+/**
+ * Does this input have a video output ?
+ * \param p_input the input
+ * \param p_exception an initialized exception
+ */
+VLC_PUBLIC_API vlc_bool_t libvlc_media_instance_has_vout( libvlc_media_instance_t *, libvlc_exception_t *);
+VLC_PUBLIC_API float libvlc_media_instance_get_fps( libvlc_media_instance_t *, libvlc_exception_t *);
+
+
+/** @} */
+
+/*****************************************************************************
+ * Tag Query
+ *****************************************************************************/
+/** defgroup libvlc_tag_query Tag Query
+ * \ingroup libvlc
+ * LibVLC Tag query
+ * @{
+ */
+VLC_PUBLIC_API libvlc_tag_query_t *
+ libvlc_tag_query_new( libvlc_instance_t *, libvlc_exception_t * );
+
+VLC_PUBLIC_API void
+ libvlc_tag_query_release( libvlc_tag_query_t * );
+
+VLC_PUBLIC_API void
+ libvlc_tag_query_retain( libvlc_tag_query_t * );
+
+VLC_PUBLIC_API void
+ libvlc_tag_query_set_match_tag_and_key( libvlc_tag_query_t * p_q,
+ libvlc_tag_t tag,
+ char * psz_tag_key,
+ libvlc_exception_t * );
+
+VLC_PUBLIC_API vlc_bool_t
+ libvlc_tag_query_match( libvlc_tag_query_t *, libvlc_media_descriptor_t *,
+ libvlc_exception_t * );
+
+/** @} */
+
+/*****************************************************************************
+ * Media List
+ *****************************************************************************/
+/** defgroup libvlc_media_list MediaList
+ * \ingroup libvlc
+ * LibVLC Media List
+ * @{
+ */
+VLC_PUBLIC_API libvlc_media_list_t *
+ libvlc_media_list_new( libvlc_instance_t *, libvlc_exception_t * );
+
+VLC_PUBLIC_API void
+ libvlc_media_list_release( libvlc_media_list_t * );
+
+VLC_PUBLIC_API void
+ libvlc_media_list_retain( libvlc_media_list_t * );
+
+VLC_PUBLIC_API void
+ libvlc_media_list_add_file_content( libvlc_media_list_t * p_mlist,
+ const char * psz_uri,
+ libvlc_exception_t * p_e );
+
+VLC_PUBLIC_API void
+ libvlc_media_list_set_media_descriptor( libvlc_media_list_t *,
+ libvlc_media_descriptor_t *,
+ libvlc_exception_t *);
+
+VLC_PUBLIC_API libvlc_media_descriptor_t *
+ libvlc_media_list_media_descriptor( libvlc_media_list_t *,
+ libvlc_exception_t *);
+
+VLC_PUBLIC_API void
+ libvlc_media_list_add_media_descriptor( libvlc_media_list_t *,
+ libvlc_media_descriptor_t *,
+ libvlc_exception_t * );
+VLC_PUBLIC_API void
+ libvlc_media_list_insert_media_descriptor( libvlc_media_list_t *,
+ libvlc_media_descriptor_t *,
+ int,
+ libvlc_exception_t * );
+VLC_PUBLIC_API void
+ libvlc_media_list_remove_index( libvlc_media_list_t *, int,
+ libvlc_exception_t * );
+
+VLC_PUBLIC_API int
+ libvlc_media_list_count( libvlc_media_list_t * p_mlist,
+ libvlc_exception_t * p_e );
+
+VLC_PUBLIC_API libvlc_media_descriptor_t *
+ libvlc_media_list_item_at_index( libvlc_media_list_t *, int,
+ libvlc_exception_t * );
+VLC_PUBLIC_API int
+ libvlc_media_list_index_of_item( libvlc_media_list_t *,
+ libvlc_media_descriptor_t *,
+ libvlc_exception_t * );
+
+VLC_PUBLIC_API void
+ libvlc_media_list_lock( libvlc_media_list_t * );
+VLC_PUBLIC_API void
+ libvlc_media_list_unlock( libvlc_media_list_t * );
+
+VLC_PUBLIC_API libvlc_media_list_t *
+ libvlc_media_list_flat_media_list( libvlc_media_list_t *,
+ libvlc_exception_t * );
+
+VLC_PUBLIC_API libvlc_event_manager_t *
+ libvlc_media_list_event_manager( libvlc_media_list_t *,
+ libvlc_exception_t * );
+/** @} */
+
+/*****************************************************************************
+ * Dynamic Media List
+ *****************************************************************************/
+/** defgroup libvlc_media_list MediaList
+ * \ingroup libvlc
+ * LibVLC Media List
+ * @{ */
+
+VLC_PUBLIC_API libvlc_dynamic_media_list_t *
+ libvlc_dynamic_media_list_new( libvlc_media_list_t * p_mlist,
+ libvlc_tag_query_t * p_query,
+ libvlc_tag_t tag,
+ libvlc_exception_t * p_e );
+VLC_PUBLIC_API void
+ libvlc_dynamic_media_list_release( libvlc_dynamic_media_list_t * p_dmlist );
+
+VLC_PUBLIC_API void
+ libvlc_dynamic_media_list_retain( libvlc_dynamic_media_list_t * p_dmlist );
+
+libvlc_media_list_t *
+ libvlc_dynamic_media_list_media_list( libvlc_dynamic_media_list_t * p_dmlist,
+ libvlc_exception_t * p_e );
+
+/** @} */
+
+/*****************************************************************************
+ * Media Library
+ *****************************************************************************/
+/** defgroup libvlc_media_library Media Library
+ * \ingroup libvlc
+ * LibVLC Media Library
+ * @{
+ */
+VLC_PUBLIC_API libvlc_media_library_t *
+ libvlc_media_library_new( libvlc_instance_t * p_inst,
+ libvlc_exception_t * p_e );
+VLC_PUBLIC_API void
+ libvlc_media_library_release( libvlc_media_library_t * p_mlib );
+VLC_PUBLIC_API void
+ libvlc_media_library_retain( libvlc_media_library_t * p_mlib );
+
+
+VLC_PUBLIC_API void
+ libvlc_media_library_load( libvlc_media_library_t * p_mlib,
+ libvlc_exception_t * p_e );
+
+VLC_PUBLIC_API void
+ libvlc_media_library_save( libvlc_media_library_t * p_mlib,
+ libvlc_exception_t * p_e );
+
+VLC_PUBLIC_API libvlc_media_list_t *
+ libvlc_media_library_media_list( libvlc_media_library_t * p_mlib,
+ libvlc_exception_t * p_e );
+
+
+/** @} */
+
+/*****************************************************************************
+ * Media List Player
+ *****************************************************************************/
+/** defgroup libvlc_media_list_player MediaListPlayer
+ * \ingroup libvlc
+ * LibVLC Media List Player
+ * @{
+ */
+VLC_PUBLIC_API libvlc_media_list_player_t *
+ libvlc_media_list_player_new( libvlc_instance_t * p_instance,
+ libvlc_exception_t * p_e );
+VLC_PUBLIC_API void
+ libvlc_media_list_player_release( libvlc_media_list_player_t * p_mlp );
+
+VLC_PUBLIC_API void
+ libvlc_media_list_player_set_media_instance(
+ libvlc_media_list_player_t * p_mlp,
+ libvlc_media_instance_t * p_mi,
+ libvlc_exception_t * p_e );
+
+VLC_PUBLIC_API void
+ libvlc_media_list_player_set_media_list(
+ libvlc_media_list_player_t * p_mlp,
+ libvlc_media_list_t * p_mlist,
+ libvlc_exception_t * p_e );
+
+VLC_PUBLIC_API void
+ libvlc_media_list_player_play( libvlc_media_list_player_t * p_mlp,
+ libvlc_exception_t * p_e );
+
+VLC_PUBLIC_API void
+ libvlc_media_list_player_play_item_at_index(
+ libvlc_media_list_player_t * p_mlp,
+ int i_index,
+ libvlc_exception_t * p_e );
+
+VLC_PUBLIC_API void
+ libvlc_media_list_player_play_item(
+ libvlc_media_list_player_t * p_mlp,
+ libvlc_media_descriptor_t * p_md,
+ libvlc_exception_t * p_e );
+
+VLC_PUBLIC_API void
+ libvlc_media_list_player_stop( libvlc_media_list_player_t * p_mlp,
+ libvlc_exception_t * p_e );
+VLC_PUBLIC_API void
+ libvlc_media_list_player_next( libvlc_media_list_player_t * p_mlp,
+ libvlc_exception_t * p_e );
+