Added libvlc_playlist_add_extended_untrusted and libvlc_media_add_option_untrusted.
authorLaurent Aimar <fenrir@videolan.org>
Wed, 28 Jan 2009 19:20:21 +0000 (20:20 +0100)
committerLaurent Aimar <fenrir@videolan.org>
Wed, 28 Jan 2009 19:20:21 +0000 (20:20 +0100)
They allow to add untrusted options (needed at least for web plugin).

include/vlc/deprecated.h
include/vlc/libvlc.h
src/control/media.c
src/control/playlist.c
src/libvlc.sym

index c683ecb..ba9a7be 100644 (file)
@@ -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.
  *
index f2254d7..11c4fb9 100644 (file)
@@ -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
index e11abee..400c138 100644 (file)
@@ -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
  **************************************************************************/
index 3764c67..80baa5e 100644 (file)
@@ -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 )
index 430ca71..498da0c 100644 (file)
@@ -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