Merged release 0.15.5 from branch 'v0.15.x'

Conflicts:
	NEWS
	configure.ac
	src/decoder/flac_plugin.c
	src/update.c
This commit is contained in:
Max Kellermann 2009-10-18 19:02:43 +02:00
commit 447e4d3583
4 changed files with 16 additions and 10 deletions

6
NEWS
View File

@ -49,13 +49,17 @@ ver 0.16 (20??/??/??)
* require GLib 2.16 * require GLib 2.16
ver 0.15.5 (2009/??/??) ver 0.15.5 (2009/10/18)
* input: * input:
- curl: don't abort if a packet has only metadata - curl: don't abort if a packet has only metadata
- curl: fixed endless loop during buffering - curl: fixed endless loop during buffering
* tags: * tags:
- riff, aiff: fixed "limited range" gcc warning - riff, aiff: fixed "limited range" gcc warning
* decoders:
- flac: fixed two memory leaks in the CUE tag loader
* decoder_thread: change the fallback decoder name to "mad" * decoder_thread: change the fallback decoder name to "mad"
* output_thread: check again if output is open on CANCEL
* update: fixed memory leak during container scan
ver 0.15.4 (2009/10/03) ver 0.15.4 (2009/10/03)

View File

@ -299,12 +299,12 @@ flac_cue_tag_load(const char *file)
unsigned int sample_rate = 0; unsigned int sample_rate = 0;
FLAC__uint64 track_time = 0; FLAC__uint64 track_time = 0;
#ifdef HAVE_CUE /* libcue */ #ifdef HAVE_CUE /* libcue */
FLAC__StreamMetadata* vc = FLAC__metadata_object_new(FLAC__METADATA_TYPE_VORBIS_COMMENT); FLAC__StreamMetadata* vc;
char* cs_filename; char* cs_filename;
FILE* cs_file; FILE* cs_file;
#endif /* libcue */ #endif /* libcue */
FLAC__StreamMetadata* si = FLAC__metadata_object_new(FLAC__METADATA_TYPE_STREAMINFO); FLAC__StreamMetadata* si = FLAC__metadata_object_new(FLAC__METADATA_TYPE_STREAMINFO);
FLAC__StreamMetadata* cs = FLAC__metadata_object_new(FLAC__METADATA_TYPE_CUESHEET); FLAC__StreamMetadata* cs;
tnum = flac_vtrack_tnum(file); tnum = flac_vtrack_tnum(file);
char_tnum = g_strdup_printf("%u", tnum); char_tnum = g_strdup_printf("%u", tnum);
@ -328,6 +328,7 @@ flac_cue_tag_load(const char *file)
} }
} }
} }
FLAC__metadata_object_delete(vc); FLAC__metadata_object_delete(vc);
} }

View File

@ -351,6 +351,7 @@ static gpointer audio_output_task(gpointer arg)
case AO_COMMAND_CANCEL: case AO_COMMAND_CANCEL:
ao->chunk = NULL; ao->chunk = NULL;
if (ao->open)
ao_plugin_cancel(ao->plugin, ao->data); ao_plugin_cancel(ao->plugin, ao->data);
ao_command_finished(ao); ao_command_finished(ao);

View File

@ -472,20 +472,20 @@ update_container_file( struct directory* directory,
while ((vtrack = plugin->container_scan(pathname, ++tnum)) != NULL) while ((vtrack = plugin->container_scan(pathname, ++tnum)) != NULL)
{ {
struct song* song = song_file_new(vtrack, contdir); struct song* song = song_file_new(vtrack, contdir);
if (song == NULL) char *child_path_fs;
return true;
// shouldn't be necessary but it's there.. // shouldn't be necessary but it's there..
song->mtime = st->st_mtime; song->mtime = st->st_mtime;
song->tag = plugin->tag_dup(map_directory_child_fs(contdir, vtrack)); child_path_fs = map_directory_child_fs(contdir, vtrack);
g_free(vtrack);
song->tag = plugin->tag_dup(child_path_fs);
g_free(child_path_fs);
songvec_add(&contdir->songs, song); songvec_add(&contdir->songs, song);
song = NULL;
modified = true; modified = true;
g_free(vtrack);
} }
g_free(pathname); g_free(pathname);