diff --git a/src/codecs/foxenflac.cpp b/src/codecs/foxenflac.cpp index b378e47e..282b8ce1 100644 --- a/src/codecs/foxenflac.cpp +++ b/src/codecs/foxenflac.cpp @@ -64,7 +64,7 @@ auto FoxenFlacDecoder::OpenStream(std::shared_ptr input) uint64_t num_samples = fx_flac_get_streaminfo(flac_, FLAC_KEY_N_SAMPLES); if (num_samples > 0) { - format.total_samples = num_samples; + format.total_samples = num_samples * channels; } return format; diff --git a/src/codecs/vorbis.cpp b/src/codecs/vorbis.cpp index f553bb42..764f58d9 100644 --- a/src/codecs/vorbis.cpp +++ b/src/codecs/vorbis.cpp @@ -121,7 +121,7 @@ auto TremorVorbisDecoder::OpenStream(std::shared_ptr input) auto l = ov_pcm_total(&vorbis_, -1); std::optional length; if (l > 0) { - length = l; + length = l * info->channels; } return OutputFormat{