diff options
author | waker <wakeroid@gmail.com> | 2012-08-03 21:02:05 +0200 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2012-08-03 21:02:05 +0200 |
commit | 34059c2a7262a564663f22d9260ae397cd1a6ad1 (patch) | |
tree | 8a11f4431726bcd7af4732623be91198563acd81 /plugins/alac/alac_plugin.c | |
parent | 803ef0b70f08347df8c3d64c9b952d4c50d1be14 (diff) |
alac: fixed samplerate detection; fixed decoder memleaks
Diffstat (limited to 'plugins/alac/alac_plugin.c')
-rw-r--r-- | plugins/alac/alac_plugin.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/plugins/alac/alac_plugin.c b/plugins/alac/alac_plugin.c index 69b100ba..d1075a07 100644 --- a/plugins/alac/alac_plugin.c +++ b/plugins/alac/alac_plugin.c @@ -167,6 +167,7 @@ alacplug_init (DB_fileinfo_t *_info, DB_playItem_t *it) { info->alac = create_alac(info->demux_res.sample_size, info->demux_res.num_channels); alac_set_info(info->alac, info->demux_res.codecdata); + info->demux_res.sample_rate = alac_get_samplerate (info->alac); int totalsamples = alacplug_get_totalsamples (&info->demux_res); if (!info->file->vfs->is_streaming ()) { @@ -203,7 +204,7 @@ alacplug_free (DB_fileinfo_t *_info) { stream_destroy (info->stream); } if (info->alac) { - free (info->alac); + alac_file_free (info->alac); } free (info); } @@ -478,6 +479,11 @@ alacplug_insert (ddb_playlist_t *plt, DB_playItem_t *after, const char *fname) { } } + alac_file *alac = create_alac(demux_res.sample_size, demux_res.num_channels); + alac_set_info(alac, demux_res.codecdata); + demux_res.sample_rate = alac_get_samplerate (alac); + alac_file_free (alac); + it = deadbeef->pl_item_alloc_init (fname, plugin.plugin.id); deadbeef->pl_add_meta (it, ":FILETYPE", "ALAC"); |