char *psz_line;
char *psz_name = NULL;
char *psz_artist = NULL;
+ char *psz_album_art = NULL;
int i_parsed_duration = 0;
mtime_t i_duration = -1;
const char**ppsz_options = NULL;
INSERT_ELEM( ppsz_options, i_options, i_options,
psz_option );
}
+ /* Special case for jamendo which provide the albumart */
+ else if( !strncasecmp( psz_parse, "EXTALBUMARTURL:",
+ sizeof( "EXTALBUMARTURL:" ) -1 ) )
+ {
+ psz_parse += sizeof( "EXTALBUMARTURL:" ) - 1;
+ free( psz_album_art );
+ psz_album_art = pf_dup( psz_parse );
+ }
}
else if( !strncasecmp( psz_parse, "RTSPtext", sizeof("RTSPtext") -1 ) )
{
b_cleanup = true;
if( !psz_mrl )
{
- LocaleFree( psz_parse );
+ free( psz_parse );
goto error;
}
p_input = input_item_NewExt( p_demux, psz_mrl, psz_name,
i_options, ppsz_options, 0, i_duration );
- LocaleFree( psz_parse );
+ free( psz_parse );
free( psz_mrl );
- if ( psz_artist && *psz_artist )
+ if ( !EMPTY_STR(psz_artist) )
input_item_SetArtist( p_input, psz_artist );
if( psz_name ) input_item_SetTitle( p_input, psz_name );
+ if( !EMPTY_STR(psz_album_art) )
+ input_item_SetArtURL( p_input, psz_album_art );
- input_item_AddSubItem( p_current_input, p_input );
input_item_node_AppendItem( p_subitems, p_input );
vlc_gc_decref( p_input );
}
{
/* Cleanup state */
while( i_options-- ) free( (char*)ppsz_options[i_options] );
- free( ppsz_options );
- ppsz_options = NULL; i_options = 0;
- free( psz_name );
- psz_name = NULL;
- free( psz_artist );
- psz_artist = NULL;
+ FREENULL( ppsz_options );
+ i_options = 0;
+ FREENULL( psz_name );
+ FREENULL( psz_artist );
+ FREENULL( psz_album_art );
i_parsed_duration = 0;
i_duration = -1;
b_cleanup = false;
}
}
- input_item_AddSubItemTree( p_subitems );
- input_item_node_Delete( p_subitems );
+ input_item_node_PostAndDelete( p_subitems );
vlc_gc_decref(p_current_input);
var_Destroy( p_demux, "m3u-extvlcopt" );
return 0; /* Needed for correct operation of go back */