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 <peter.ujfalusi@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
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");