summaryrefslogtreecommitdiff
path: root/plugins/musepack
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-08-22 19:55:35 +0200
committerGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-08-22 19:55:35 +0200
commit88d3b2a412763a56ad762da2cb5af55dc6cf47cb (patch)
treef8ff250c313ac1f27176fcd8fd82064c12e7e89f /plugins/musepack
parent9e68711c010cab348640c97d68bb02f6558e0e59 (diff)
fixed musepack chapter titles
Diffstat (limited to 'plugins/musepack')
-rw-r--r--plugins/musepack/musepack.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/plugins/musepack/musepack.c b/plugins/musepack/musepack.c
index ec3091b4..eb2d37fb 100644
--- a/plugins/musepack/musepack.c
+++ b/plugins/musepack/musepack.c
@@ -353,14 +353,13 @@ musepack_insert (DB_playItem_t *after, const char *fname) {
it->endsample = totalsamples-1;
deadbeef->pl_set_item_flags (it, DDB_IS_SUBTRACK);
if (!prev) {
- /*int apeerr = */deadbeef->junk_apev2_read (it, fp);
- meta = it;
+ meta = deadbeef->pl_item_alloc ();
+ /*int apeerr = */deadbeef->junk_apev2_read (meta, fp);
}
else {
prev->endsample = it->startsample-1;
float dur = (prev->endsample - prev->startsample) / (float)si.sample_freq;
deadbeef->pl_set_item_duration (prev, dur);
- deadbeef->pl_items_copy_junk (meta, it, it);
}
if (i == nchapters - 1) {
float dur = (it->endsample - it->startsample) / (float)si.sample_freq;
@@ -369,6 +368,9 @@ musepack_insert (DB_playItem_t *after, const char *fname) {
if (ch->tag_size > 0) {
uint8_t *tag = ch->tag;
deadbeef->junk_apev2_read_mem (it, ch->tag, ch->tag_size);
+ if (meta) {
+ deadbeef->pl_items_copy_junk (meta, it, it);
+ }
}
after = deadbeef->pl_insert_item (after, it);
prev = it;
@@ -377,6 +379,9 @@ musepack_insert (DB_playItem_t *after, const char *fname) {
mpc_demux_exit (demux);
demux = NULL;
deadbeef->fclose (fp);
+ if (meta) {
+ deadbeef->pl_item_unref (meta);
+ }
return after;
}