* @{
*/
-
+
/**
* Release the vlm instance related to the given libvlc_instance_t
*
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API void libvlc_vlm_release( libvlc_instance_t *, libvlc_exception_t * );
-
+
/**
* Add a broadcast, with one input.
*
VLC_PUBLIC_API void libvlc_vlm_add_broadcast( libvlc_instance_t *, char *, char *, char* ,
int, char **, int, int, libvlc_exception_t * );
+/**
+ * Add a vod, with one input.
+ *
+ * \param p_instance the instance
+ * \param psz_name the name of the new vod media
+ * \param psz_input the input MRL
+ * \param i_options number of additional options
+ * \param ppsz_options additional options
+ * \param b_enabled boolean for enabling the new vod
+ * \param the muxer of the vod media
+ * \param p_e an initialized exception pointer
+ */
+VLC_PUBLIC_API void libvlc_vlm_add_vod( libvlc_instance_t *, char *, char *, int, char **,
+ int, char *, libvlc_exception_t * );
+
/**
* Delete a media (VOD or broadcast).
*
VLC_PUBLIC_API void libvlc_vlm_set_loop( libvlc_instance_t *, char *, int,
libvlc_exception_t *);
+/**
+ * Set a media's vod muxer.
+ *
+ * \param p_instance the instance
+ * \param psz_name the media to work on
+ * \param the new muxer
+ * \param p_e an initialized exception pointer
+ */
+VLC_PUBLIC_API void libvlc_vlm_set_mux( libvlc_instance_t *p_instance, char *psz_name,
+ char *psz_mux, libvlc_exception_t *p_exception );
+
/**
* Edit the parameters of a media. This will delete all existing inputs and
* add the specified one.
#endif
}
+void libvlc_vlm_add_vod( libvlc_instance_t *p_instance, char *psz_name,
+ char *psz_input, int i_options,
+ char **ppsz_options, int b_enabled,
+ char *psz_mux, libvlc_exception_t *p_exception )
+{
+#ifdef ENABLE_VLM
+ vlm_t *p_vlm;
+ vlm_media_t m;
+ int n;
+
+ VLM(p_vlm);
+
+ vlm_media_Init( &m );
+ m.psz_name = strdup( psz_name );
+ m.b_enabled = b_enabled;
+ m.b_vod = true;
+ m.vod.psz_mux = psz_mux ? strdup( psz_mux ) : NULL;
+ if( psz_input )
+ TAB_APPEND( m.i_input, m.ppsz_input, strdup(psz_input) );
+ for( n = 0; n < i_options; n++ )
+ TAB_APPEND( m.i_option, m.ppsz_option, strdup(ppsz_options[n]) );
+
+ if( vlm_Control( p_vlm, VLM_ADD_MEDIA, &m, NULL ) )
+ {
+ vlm_media_Clean( &m );
+ libvlc_exception_raise( p_exception, "Media %s creation failed", psz_name );
+ }
+ vlm_media_Clean( &m );
+#else
+ libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );
+ return VLC_EGENERIC;
+#endif
+}
+
void libvlc_vlm_del_media( libvlc_instance_t *p_instance, char *psz_name,
libvlc_exception_t *p_exception )
{
#endif
}
+void libvlc_vlm_set_mux( libvlc_instance_t *p_instance, char *psz_name,
+ char *psz_mux, libvlc_exception_t *p_exception )
+{
+#ifdef ENABLE_VLM
+#define VLM_CHANGE_CODE { if( p_media->b_vod ) { \
+ free( p_media->vod.psz_mux ); \
+ p_media->vod.psz_mux = psz_mux ? strdup( psz_mux ) : NULL; \
+ } }
+ VLM_CHANGE( "Unable to change %s mux property", VLM_CHANGE_CODE );
+#undef VLM_CHANGE_CODE
+#else
+ libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );
+ return VLC_EGENERIC;
+#endif
+}
+
void libvlc_vlm_set_output( libvlc_instance_t *p_instance, char *psz_name,
char *psz_output, libvlc_exception_t *p_exception )
{
libvlc_video_set_viewport
libvlc_video_take_snapshot
libvlc_vlm_add_broadcast
+libvlc_vlm_add_vod
libvlc_vlm_add_input
libvlc_vlm_change_media
libvlc_vlm_del_media
libvlc_vlm_set_enabled
libvlc_vlm_set_input
libvlc_vlm_set_loop
+libvlc_vlm_set_mux
libvlc_vlm_set_output
libvlc_vlm_show_media
libvlc_vlm_stop_media