libvlc: media: cancel preparsing when releasing a media
authorThomas Guillem <thomas@gllm.fr>
Wed, 1 Jun 2016 09:33:40 +0000 (11:33 +0200)
committerThomas Guillem <thomas@gllm.fr>
Sun, 5 Jun 2016 10:57:58 +0000 (12:57 +0200)
lib/media.c

index 991a306..45ad99a 100644 (file)
@@ -528,6 +528,10 @@ void libvlc_media_release( libvlc_media_t *p_md )
 
     uninstall_input_item_observer( p_md );
 
+    /* Cancel asynchronous parsing (if any) */
+    if( p_md->p_input_item )
+        libvlc_MetadataCancel( p_md->p_libvlc_instance->p_libvlc_int, p_md );
+
     if( p_md->p_subitems )
         libvlc_media_list_release( p_md->p_subitems );
 
@@ -764,7 +768,7 @@ static int media_parse(libvlc_media_t *media, bool b_async,
             parse_scope |= META_REQUEST_OPTION_SCOPE_NETWORK;
         if (parse_flag & libvlc_media_do_interact)
             parse_scope |= META_REQUEST_OPTION_DO_INTERACT;
-        ret = libvlc_MetadataRequest(libvlc, item, parse_scope, 0, NULL);
+        ret = libvlc_MetadataRequest(libvlc, item, parse_scope, 0, media);
         if (ret != VLC_SUCCESS)
             return ret;
     }