+ vlc_object_release( p_playlist->p_preparse );
+ return;
+ }
+
+ // Secondary Preparse
+ static const char fname[] = "fetcher";
+ p_playlist->p_fetcher =
+ vlc_custom_create( p_playlist, sizeof( playlist_fetcher_t ),
+ VLC_OBJECT_GENERIC, fname );
+ if( !p_playlist->p_fetcher )
+ {
+ msg_Err( p_playlist, "unable to create secondary preparser" );
+ vlc_object_release( p_playlist );
+ return;
+ }
+ p_playlist->p_fetcher->psz_object_name = strdup( "fetcher" );
+ p_playlist->p_fetcher->i_waiting = 0;
+ p_playlist->p_fetcher->pp_waiting = NULL;
+ p_playlist->p_fetcher->i_art_policy = var_CreateGetInteger( p_playlist,
+ "album-art" );
+
+ vlc_object_set_destructor( p_playlist->p_fetcher, FetcherDestructor );
+
+ vlc_object_attach( p_playlist->p_fetcher, p_playlist );
+ if( vlc_thread_create( p_playlist->p_fetcher,
+ "fetcher",
+ RunFetcher,
+ VLC_THREAD_PRIORITY_LOW, true ) )
+ {
+ msg_Err( p_playlist, "cannot spawn secondary preparse thread" );
+ vlc_object_release( p_playlist->p_fetcher );
+ return;