diff --git a/src/libvlc.c b/src/libvlc.c index 7e343a6365..c3effa7016 100644 --- a/src/libvlc.c +++ b/src/libvlc.c @@ -486,6 +486,26 @@ static void GetFilenames( libvlc_int_t *p_vlc, unsigned n, } } +int vlc_MetadataRequest(libvlc_int_t *libvlc, input_item_t *item, + input_item_meta_request_option_t i_options, + int timeout, void *id) +{ + libvlc_priv_t *priv = libvlc_priv(libvlc); + + if (unlikely(priv->parser == NULL)) + return VLC_ENOMEM; + + if( i_options & META_REQUEST_OPTION_DO_INTERACT ) + { + vlc_mutex_lock( &item->lock ); + item->b_preparse_interact = true; + vlc_mutex_unlock( &item->lock ); + } + playlist_preparser_Push( priv->parser, item, i_options, timeout, id ); + return VLC_SUCCESS; + +} + /** * Requests extraction of the meta data for an input item (a.k.a. preparsing). * The actual extraction is asynchronous. It can be cancelled with diff --git a/src/libvlc.h b/src/libvlc.h index 7d7982157e..e42c1185dd 100644 --- a/src/libvlc.h +++ b/src/libvlc.h @@ -25,6 +25,8 @@ #ifndef LIBVLC_LIBVLC_H # define LIBVLC_LIBVLC_H 1 +#include + extern const char psz_vlc_changeset[]; typedef struct variable_t variable_t; @@ -205,6 +207,10 @@ void intf_DestroyAll( libvlc_int_t * ); #define libvlc_stats( o ) (libvlc_priv((VLC_OBJECT(o))->obj.libvlc)->b_stats) +int vlc_MetadataRequest(libvlc_int_t *libvlc, input_item_t *item, + input_item_meta_request_option_t i_options, + int timeout, void *id); + /* * Variables stuff */