diff --git a/components/squeezelite/output.c b/components/squeezelite/output.c index 08e9665e..7d52dadf 100644 --- a/components/squeezelite/output.c +++ b/components/squeezelite/output.c @@ -47,6 +47,7 @@ frames_t _output_frames(frames_t avail) { frames_t frames, size; bool silence; + u8_t flags = output.channels; s32_t cross_gain_in = 0, cross_gain_out = 0; ISAMPLE_T *cross_ptr = NULL; @@ -253,8 +254,14 @@ frames_t _output_frames(frames_t avail) { } out_frames = !silence ? min(size, cont_frames) : size; + + IF_DSD( + if (output.outfmt != PCM) { + flags = 0; + } + ) - wrote = output.write_cb(out_frames, silence, gainL, gainR, output.channels, cross_gain_in, cross_gain_out, &cross_ptr); + wrote = output.write_cb(out_frames, silence, gainL, gainR, flags, cross_gain_in, cross_gain_out, &cross_ptr); if (wrote <= 0) { frames -= size;