summaryrefslogtreecommitdiff
path: root/playlist.c
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2012-03-11 11:41:33 +0100
committerGravatar waker <wakeroid@gmail.com>2012-03-11 11:41:33 +0100
commit66a3220170c736b4d6341f403626cfa0caeef702 (patch)
treea5a63b9199ce63631a4b120db6367bdaf2ade860 /playlist.c
parentd475e28ab794b237e42790e3c89e192c8bd084d8 (diff)
fixed minor cue parsing bug
Diffstat (limited to 'playlist.c')
-rw-r--r--playlist.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/playlist.c b/playlist.c
index a2a25311..7f099775 100644
--- a/playlist.c
+++ b/playlist.c
@@ -1117,20 +1117,18 @@ plt_insert_cue_from_buffer (playlist_t *playlist, playItem_t *after, playItem_t
// fprintf (stderr, "got unknown line:\n%s\n", p);
}
}
- if (!title[0]) {
- UNLOCK;
- return NULL;
- }
- // handle last track
- playItem_t *it = plt_process_cue_track (playlist, pl_find_meta_raw (origin, ":URI"), &prev, track, index00, index01, pregap, title, albumperformer, performer, albumtitle, genre, date, replaygain_album_gain, replaygain_album_peak, replaygain_track_gain, replaygain_track_peak, pl_find_meta_raw (origin, ":DECODER"), filetype, samplerate);
- if (it) {
- trace ("last track endsample: %d\n", numsamples-1);
- it->endsample = numsamples-1;
- if (it->endsample >= numsamples || it->startsample >= numsamples) {
- goto error;
+ if (title[0]) {
+ // handle last track
+ playItem_t *it = plt_process_cue_track (playlist, pl_find_meta_raw (origin, ":URI"), &prev, track, index00, index01, pregap, title, albumperformer, performer, albumtitle, genre, date, replaygain_album_gain, replaygain_album_peak, replaygain_track_gain, replaygain_track_peak, pl_find_meta_raw (origin, ":DECODER"), filetype, samplerate);
+ if (it) {
+ trace ("last track endsample: %d\n", numsamples-1);
+ it->endsample = numsamples-1;
+ if (it->endsample >= numsamples || it->startsample >= numsamples) {
+ goto error;
+ }
+ plt_set_item_duration (playlist, it, (float)(it->endsample - it->startsample + 1) / samplerate);
+ cuetracks[ncuetracks++] = it;
}
- plt_set_item_duration (playlist, it, (float)(it->endsample - it->startsample + 1) / samplerate);
- cuetracks[ncuetracks++] = it;
}
if (!ncuetracks) {
@@ -1161,6 +1159,7 @@ plt_insert_cue_from_buffer (playlist_t *playlist, playItem_t *after, playItem_t
UNLOCK;
return after;
error:
+ trace ("cue parsing error occured\n");
for (int i = 0; i < ncuetracks; i++) {
pl_item_unref (cuetracks[i]);
}