* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-#include "libvlc_internal.h"
-#include "libvlc.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
#include <vlc/libvlc.h>
+#include <vlc/libvlc_media.h>
+#include <vlc/libvlc_media_list.h> // For the subitems, here for convenience
+#include <vlc/libvlc_events.h>
+
+#include <vlc_common.h>
#include <vlc_input.h>
#include <vlc_meta.h>
+#include <vlc_playlist.h> /* For the preparser */
-/* For the preparser */
-#include <vlc_playlist.h>
+#include "libvlc.h"
+
+#include "libvlc_internal.h"
+#include "media_internal.h"
static const vlc_meta_type_t libvlc_to_vlc_meta[] =
{
{
playlist_PreparseEnqueue(
libvlc_priv (p_md->p_libvlc_instance->p_libvlc_int)->p_playlist,
- p_md->p_input_item );
+ p_md->p_input_item, pl_Unlocked );
p_md->b_preparsed = true;
}
}
if (!p_input_item)
{
- libvlc_exception_raise( p_e, "No input item given" );
+ libvlc_exception_raise( p_e );
+ libvlc_printerr( "No input item given" );
return NULL;
}
p_md = malloc( sizeof(libvlc_media_t) );
if( !p_md )
{
- libvlc_exception_raise( p_e, "Not enough memory" );
+ libvlc_exception_raise( p_e );
+ libvlc_printerr( "Not enough memory" );
return NULL;
}
input_item_t * p_input_item;
libvlc_media_t * p_md;
- p_input_item = input_ItemNew( p_instance->p_libvlc_int, psz_mrl, NULL );
+ p_input_item = input_item_New( p_instance->p_libvlc_int, psz_mrl, NULL );
if (!p_input_item)
{
- libvlc_exception_raise( p_e, "Can't create md's input_item" );
+ libvlc_exception_raise( p_e );
+ libvlc_printerr( "Not enough memory" );
return NULL;
}
input_item_t * p_input_item;
libvlc_media_t * p_md;
- p_input_item = input_ItemNew( p_instance->p_libvlc_int, "vlc://nop", psz_name );
+ p_input_item = input_item_New( p_instance->p_libvlc_int, "vlc://nop", psz_name );
if (!p_input_item)
{
- libvlc_exception_raise( p_e, "Can't create md's input_item" );
+ libvlc_exception_raise( p_e );
+ libvlc_printerr( "Not enough memory" );
return NULL;
}
* The options are detailled in vlc --long-help, for instance "--sout-all"
**************************************************************************/
void libvlc_media_add_option(
+ libvlc_media_t * p_md,
+ const char * psz_option,
+ libvlc_exception_t *p_e )
+{
+ VLC_UNUSED(p_e);
+ input_item_AddOption( p_md->p_input_item, psz_option,
+ VLC_INPUT_OPTION_UNIQUE|VLC_INPUT_OPTION_TRUSTED );
+}
+
+/**************************************************************************
+ * Same as libvlc_media_add_option but with configurable flags.
+ **************************************************************************/
+void libvlc_media_add_option_flag(
libvlc_media_t * p_md,
const char * ppsz_option,
+ libvlc_media_option_t i_flags,
libvlc_exception_t *p_e )
{
VLC_UNUSED(p_e);
- input_ItemAddOpt( p_md->p_input_item, ppsz_option,
- VLC_INPUT_OPTION_UNIQUE|VLC_INPUT_OPTION_TRUSTED );
+ input_item_AddOption( p_md->p_input_item, ppsz_option,
+ i_flags );
}
/**************************************************************************
{
playlist_AskForArtEnqueue(
libvlc_priv(p_md->p_libvlc_instance->p_libvlc_int)->p_playlist,
- p_md->p_input_item );
+ p_md->p_input_item, pl_Unlocked );
}
/* Should be integrated in core */
}
/**************************************************************************
- * Get duration of media object.
+ * Get duration of media object (in ms)
**************************************************************************/
int64_t
libvlc_media_get_duration( libvlc_media_t * p_md,
if( !p_md || !p_md->p_input_item)
{
- libvlc_exception_raise( p_e, "No input item" );
+ libvlc_exception_raise( p_e );
+ libvlc_printerr( "No input item" );
return -1;
}
- return input_item_GetDuration( p_md->p_input_item );
+ return input_item_GetDuration( p_md->p_input_item ) / 1000;
}
/**************************************************************************
if( !p_md || !p_md->p_input_item)
{
- libvlc_exception_raise( p_e, "No input item" );
+ libvlc_exception_raise( p_e );
+ libvlc_printerr( "No input item" );
return false;
}
libvlc_exception_t * p_e )
{
VLC_UNUSED(p_e);
-
- if( p_md )
- {
- return p_md->p_user_data;
- }
- else
- {
- return NULL;
- }
+ return p_md ? p_md->p_user_data : NULL;
}