From: Peter Ujfalusi Date: Wed, 11 Mar 2026 06:57:34 +0000 (+0200) Subject: fcplay: Correct metadata.next_track sequence for gapless playback X-Git-Tag: v1.2.16~12 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=7d41dc4bcd39a1b2c449a6f87e827bdbd84d1213;p=tinycompress.git 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 --- 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");