diff --git a/audio/audio_driver.c b/audio/audio_driver.c index 445b47b7d5..40c4722e48 100644 --- a/audio/audio_driver.c +++ b/audio/audio_driver.c @@ -554,8 +554,6 @@ static bool audio_driver_flush(const int16_t *data, size_t samples) } } - src_data.data_out = audio_driver_output_samples_buf; - if (audio_driver_control) { /* Readjust the audio input rate. */ @@ -584,24 +582,27 @@ static bool audio_driver_flush(const int16_t *data, size_t samples) #endif } - src_data.ratio = audio_source_ratio_current; + src_data.data_out = audio_driver_output_samples_buf; + src_data.ratio = audio_source_ratio_current; if (is_slowmotion) src_data.ratio *= settings->slowmotion_ratio; audio_driver_resampler->process(audio_driver_resampler_data, &src_data); - output_data = audio_driver_output_samples_buf; output_frames = (unsigned)src_data.output_frames; if (audio_driver_use_float) + { + output_data = audio_driver_output_samples_buf; output_frames *= sizeof(float); + } else { convert_float_to_s16(audio_driver_output_samples_conv_buf, (const float*)output_data, output_frames * 2); - output_data = audio_driver_output_samples_conv_buf; + output_data = audio_driver_output_samples_conv_buf; output_frames *= sizeof(int16_t); }