input item: attempt to clarify art URL merge
authorRémi Denis-Courmont <remi@remlab.net>
Fri, 15 Aug 2014 15:51:57 +0000 (18:51 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Fri, 15 Aug 2014 15:53:03 +0000 (18:53 +0300)
src/input/es_out.c

index 03a494c..414970b 100644 (file)
@@ -1352,33 +1352,26 @@ static void EsOutMeta( es_out_t *p_out, const vlc_meta_t *p_meta )
     if( vlc_meta_Get( p_meta, vlc_meta_Title ) != NULL )
         input_item_SetName( p_item, vlc_meta_Get( p_meta, vlc_meta_Title ) );
 
-    char *psz_arturl = input_item_GetArtURL( p_item );
+    char *psz_arturl = NULL;
+    if( vlc_meta_Get( p_item->p_meta, vlc_meta_ArtworkURL ) != NULL )
+        psz_arturl = input_item_GetArtURL( p_item ); /* save value */
 
     vlc_mutex_lock( &p_item->lock );
-
     vlc_meta_Merge( p_item->p_meta, p_meta );
-
-    if( !psz_arturl || *psz_arturl == '\0' )
-    {
-        const char *psz_tmp = vlc_meta_Get( p_item->p_meta, vlc_meta_ArtworkURL );
-        if( psz_tmp )
-            psz_arturl = strdup( psz_tmp );
-    }
     vlc_mutex_unlock( &p_item->lock );
 
-    if( psz_arturl && *psz_arturl )
-    {
+    if( psz_arturl != NULL ) /* restore/favor previously set item art URL */
         input_item_SetArtURL( p_item, psz_arturl );
+    else
+        psz_arturl = input_item_GetArtURL( p_item );
 
-        if( !strncmp( psz_arturl, "attachment://", 13 ) )
-        {
-            /* Don't look for art cover if sout
-             * XXX It can change when sout has meta data support */
-            if( p_input->p->p_sout && !p_input->b_preparsing )
-                input_item_SetArtURL( p_item, "" );
-            else
-                input_ExtractAttachmentAndCacheArt( p_input );
-        }
+    if( psz_arturl != NULL && !strncmp( psz_arturl, "attachment://", 13 ) )
+    {   /* Clear art cover if streaming out.
+         * FIXME: Why? Remove this when sout gets meta data support. */
+        if( p_input->p->p_sout && !p_input->b_preparsing )
+            input_item_SetArtURL( p_item, NULL );
+        else
+            input_ExtractAttachmentAndCacheArt( p_input );
     }
     free( psz_arturl );