summaryrefslogtreecommitdiff
path: root/plugins/alac/alac_plugin.c
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2012-08-03 21:02:05 +0200
committerGravatar waker <wakeroid@gmail.com>2012-08-03 21:02:05 +0200
commit34059c2a7262a564663f22d9260ae397cd1a6ad1 (patch)
tree8a11f4431726bcd7af4732623be91198563acd81 /plugins/alac/alac_plugin.c
parent803ef0b70f08347df8c3d64c9b952d4c50d1be14 (diff)
alac: fixed samplerate detection; fixed decoder memleaks
Diffstat (limited to 'plugins/alac/alac_plugin.c')
-rw-r--r--plugins/alac/alac_plugin.c8
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");