From 7d41dc4bcd39a1b2c449a6f87e827bdbd84d1213 Mon Sep 17 00:00:00 2001 From: Peter Ujfalusi Date: Wed, 11 Mar 2026 08:57:34 +0200 Subject: [PATCH] fcplay: Correct metadata.next_track sequence for gapless playback The kernel demands the metadata to be set before the next_track is signaled (since 2013). Calling next_track before set metadata will case the next_track to be 'lost' in core's snd_compr_next_track(). Reverse the call order of next_track and set_metadata to fix this. Fixes: 40603c037c8d ("fcplay: Modify play_samples func to support gapless playback.") Closes: https://github.com/alsa-project/tinycompress/pull/33 Signed-off-by: Peter Ujfalusi Signed-off-by: Jaroslav Kysela --- src/utils-lgpl/fcplay.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/utils-lgpl/fcplay.c b/src/utils-lgpl/fcplay.c index 1b89c2b..8069fe8 100644 --- a/src/utils-lgpl/fcplay.c +++ b/src/utils-lgpl/fcplay.c @@ -422,14 +422,14 @@ void play_samples(char **files, unsigned int card, unsigned int device, if (gapless) { parse_file(name, &codec); - rc = compress_next_track(compress); - if (rc) - fprintf(stderr, "ERR: compress next track set\n"); - rc = compress_set_gapless_metadata(compress, &mdata); if (rc) fprintf(stderr, "ERR: set gapless metadata\n"); + rc = compress_next_track(compress); + if (rc) + fprintf(stderr, "ERR: compress next track set\n"); + rc = compress_set_codec_params(compress, &codec); if (rc) fprintf(stderr, "ERR: set next track codec params\n"); -- 2.52.0