From d2c29640ffcc0af46e9abde972a10d636f688a29 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Filip=20Ros=C3=A9en?= Date: Wed, 25 Jul 2018 04:06:38 +0200 Subject: [PATCH] core: add vlc_MetadataRequest This function is to be used by entities within the core that would like to spawn a metadata request. Such request will not have the implicit recursiveness of libvlc_MetadataRequest (which is to be called by users of libvlc). Signed-off-by: Thomas Guillem --- src/libvlc.c | 20 ++++++++++++++++++++ src/libvlc.h | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/src/libvlc.c b/src/libvlc.c index 8e9eea58a9..67ff530b8e 100644 --- a/src/libvlc.c +++ b/src/libvlc.c @@ -470,6 +470,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 ); + } + input_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 b8dfb59787..5040968d57 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; @@ -200,6 +202,10 @@ int intf_InsertItem(libvlc_int_t *, const char *mrl, unsigned optc, const char * const *optv, unsigned flags); void intf_DestroyAll( libvlc_int_t * ); +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 */ -- 2.11.4.GIT