From aa9b31f1cfdb8a05cc739c67a33ba5b7a84d8f51 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 2 Nov 2008 17:07:13 +0100 Subject: crossfade: copy tag If the source chunk has a tag, merge it into the destination chunk. The source chunk gets deleted after that, and this is our last chance to grab the tag. --- src/crossfade.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/crossfade.c b/src/crossfade.c index a65d304e8..ac2461689 100644 --- a/src/crossfade.c +++ b/src/crossfade.c @@ -22,6 +22,7 @@ #include "pcm_utils.h" #include "pipe.h" #include "audio_format.h" +#include "tag.h" #include #include @@ -58,6 +59,10 @@ void cross_fade_apply(struct music_chunk *a, const struct music_chunk *b, assert(current_chunk <= num_chunks); + if (a->tag == NULL && b->tag != NULL) + /* merge the tag into the destination chunk */ + a->tag = tag_dup(b->tag); + size = b->length > a->length ? a->length : b->length; -- cgit v1.2.3