Commit ec187ec3 authored by Rafaël Carré's avatar Rafaël Carré

xspf: try to produce valid XSPF files (there's still a problem with URI %-encoding)

parent 5af20362
...@@ -636,7 +636,9 @@ static vlc_bool_t set_item_info SIMPLE_INTERFACE ...@@ -636,7 +636,9 @@ static vlc_bool_t set_item_info SIMPLE_INTERFACE
} }
else if( !strcmp( psz_name, "image" ) ) else if( !strcmp( psz_name, "image" ) )
{ {
input_item_SetArtURL( p_input, psz_value ); const char *psz_uri = decode_URI_duplicate( psz_value );
input_item_SetArtURL( p_input, psz_uri );
free( psz_uri );
} }
return VLC_TRUE; return VLC_TRUE;
} }
......
...@@ -84,7 +84,7 @@ int E_(xspf_export_playlist)( vlc_object_t *p_this ) ...@@ -84,7 +84,7 @@ int E_(xspf_export_playlist)( vlc_object_t *p_this )
fprintf( p_export->p_file, "\t</trackList>\n" ); fprintf( p_export->p_file, "\t</trackList>\n" );
/* export the tree structure in <extension> */ /* export the tree structure in <extension> */
fprintf( p_export->p_file, "\t<extension>\n" ); fprintf( p_export->p_file, "\t<extension application=\"http://www.videolan.org/vlc/playlist/0\">\n" );
i_count = 0; i_count = 0;
for( i = 0; i < p_node->i_children; i++ ) for( i = 0; i < p_node->i_children; i++ )
{ {
...@@ -191,12 +191,11 @@ static void xspf_export_item( playlist_item_t *p_item, FILE *p_file, ...@@ -191,12 +191,11 @@ static void xspf_export_item( playlist_item_t *p_item, FILE *p_file,
/* -> the track number */ /* -> the track number */
psz = input_item_GetTrackNum( p_item->p_input ); psz = input_item_GetTrackNum( p_item->p_input );
if( psz == NULL ) psz = strdup( "" ); if( psz == NULL ) psz = strdup( "" );
if( psz ) if( psz && *psz )
{ {
if( *psz ) int i_tracknum = atoi( psz );
{ if( i_tracknum > 0 )
fprintf( p_file, "\t\t\t<trackNum>%i</trackNum>\n", atoi( psz ) ); fprintf( p_file, "\t\t\t<trackNum>%i</trackNum>\n", i_tracknum );
}
} }
free( psz ); free( psz );
...@@ -213,13 +212,13 @@ static void xspf_export_item( playlist_item_t *p_item, FILE *p_file, ...@@ -213,13 +212,13 @@ static void xspf_export_item( playlist_item_t *p_item, FILE *p_file,
psz = input_item_GetArtURL( p_item->p_input ); psz = input_item_GetArtURL( p_item->p_input );
if( psz == NULL ) psz = strdup( "" ); if( psz == NULL ) psz = strdup( "" );
psz_temp = convert_xml_special_chars( psz ); if( !EMPTY_STR( psz ) )
free( psz );
if( !EMPTY_STR( psz_temp ) )
{ {
fprintf( p_file, "\t\t\t<image>%s</image>\n", psz_temp ); psz_uri = assertUTF8URI( psz );
fprintf( p_file, "\t\t\t<image>%s</image>\n", psz_uri );
free( psz_uri );
} }
free( psz_temp ); free( psz );
xspfexportitem_end: xspfexportitem_end:
/* -> the duration */ /* -> the duration */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment