[vlc-commits] core: add vlc_MetadataRequest

Filip Roséen git at videolan.org
Wed Jul 25 11:35:11 CEST 2018


vlc | branch: master | Filip Roséen <filip at atch.se> | Wed Jul 25 04:06:38 2018 +0200| [d2c29640ffcc0af46e9abde972a10d636f688a29] | committer: Thomas Guillem

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 <thomas at gllm.fr>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d2c29640ffcc0af46e9abde972a10d636f688a29
---

 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 <vlc_input_item.h>
+
 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
  */



More information about the vlc-commits mailing list