Commit 059a3399 authored by Laurent Aimar's avatar Laurent Aimar

Added libvlc_playlist_add_extended_untrusted and libvlc_media_add_option_untrusted.

They allow to add untrusted options (needed at least for web plugin).
parent 96550ff2
......@@ -215,6 +215,22 @@ VLC_DEPRECATED_API int libvlc_playlist_add_extended( libvlc_instance_t *, const
const char *, int, const char **,
libvlc_exception_t * );
/**
* Append an item to the playlist. The item is added at the end, with
* additional input options from an untrusted source.
*
* \param p_instance the playlist instance
* \param psz_uri the URI to open, using VLC format
* \param psz_name a name that you might want to give or NULL
* \param i_options the number of options to add
* \param ppsz_options strings representing the options to add
* \param p_e an initialized exception pointer
* \return the identifier of the new item
*/
VLC_DEPRECATED_API int libvlc_playlist_add_extended_untrusted( libvlc_instance_t *, const char *,
const char *, int, const char **,
libvlc_exception_t * );
/**
* Delete the playlist item with the given ID.
*
......
......@@ -278,6 +278,24 @@ VLC_PUBLIC_API void libvlc_media_add_option(
libvlc_media_t * p_md,
const char * ppsz_options,
libvlc_exception_t * p_e );
/**
* Add an option to the media from an untrusted source.
*
* This option will be used to determine how the media_player will
* read the media. This allows to use VLC's advanced
* reading/streaming options on a per-media basis.
*
* The options are detailed in vlc --long-help, for instance "--sout-all"
*
* \param p_instance the instance
* \param ppsz_options the options (as a string)
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API void libvlc_media_add_option_untrusted(
libvlc_media_t * p_md,
const char * ppsz_options,
libvlc_exception_t * p_e );
/**
* Retain a reference to a media descriptor object (libvlc_media_t). Use
......
......@@ -350,6 +350,20 @@ void libvlc_media_add_option(
VLC_INPUT_OPTION_UNIQUE|VLC_INPUT_OPTION_TRUSTED );
}
/**************************************************************************
* Same as libvlc_media_add_option but with untrusted source.
**************************************************************************/
void libvlc_media_add_option_untrusted(
libvlc_media_t * p_md,
const char * ppsz_option,
libvlc_exception_t *p_e )
{
VLC_UNUSED(p_e);
input_item_AddOption( p_md->p_input_item, ppsz_option,
VLC_INPUT_OPTION_UNIQUE );
}
/**************************************************************************
* Delete a media descriptor object
**************************************************************************/
......
......@@ -158,10 +158,11 @@ int libvlc_playlist_add( libvlc_instance_t *p_instance, const char *psz_uri,
0, NULL, p_e );
}
int libvlc_playlist_add_extended( libvlc_instance_t *p_instance,
const char *psz_uri, const char *psz_name,
int i_options, const char **ppsz_options,
libvlc_exception_t *p_e )
static int PlaylistAddExtended( libvlc_instance_t *p_instance,
const char *psz_uri, const char *psz_name,
int i_options, const char **ppsz_options,
unsigned i_option_flags,
libvlc_exception_t *p_e )
{
assert( PL );
if( playlist_was_locked( p_instance ) )
......@@ -172,10 +173,27 @@ int libvlc_playlist_add_extended( libvlc_instance_t *p_instance,
}
return playlist_AddExt( PL, psz_uri, psz_name,
PLAYLIST_INSERT, PLAYLIST_END, -1,
i_options, ppsz_options, VLC_INPUT_OPTION_TRUSTED,
i_options, ppsz_options, i_option_flags,
true, pl_Unlocked );
}
int libvlc_playlist_add_extended( libvlc_instance_t *p_instance,
const char *psz_uri, const char *psz_name,
int i_options, const char **ppsz_options,
libvlc_exception_t *p_e )
{
return PlaylistAddExtended( p_instance, psz_uri, psz_name,
i_options, ppsz_options, VLC_INPUT_OPTION_TRUSTED,
p_e );
}
int libvlc_playlist_add_extended_untrusted( libvlc_instance_t *p_instance,
const char *psz_uri, const char *psz_name,
int i_options, const char **ppsz_options,
libvlc_exception_t *p_e )
{
return PlaylistAddExtended( p_instance, psz_uri, psz_name,
i_options, ppsz_options, 0,
p_e );
}
int libvlc_playlist_delete_item( libvlc_instance_t *p_instance, int i_id,
libvlc_exception_t *p_e )
......
......@@ -48,6 +48,7 @@ libvlc_log_iterator_has_next
libvlc_log_iterator_next
libvlc_log_open
libvlc_media_add_option
libvlc_media_add_option_untrusted
libvlc_media_discoverer_event_manager
libvlc_media_discoverer_is_running
libvlc_media_discoverer_localized_name
......@@ -161,6 +162,7 @@ libvlc_media_subitems
libvlc_new
libvlc_playlist_add
libvlc_playlist_add_extended
libvlc_playlist_add_extended_untrusted
libvlc_playlist_clear
libvlc_playlist_delete_item
libvlc_playlist_get_media_player
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment