From d45945cda2765dbca3f3524e2c6cd52bce45a8fa Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 30 Aug 2021 02:13:19 +0200 Subject: [PATCH] When audio driver write callback function fails, don't turn audio off completely - look if audio_driver_output_samples_conv_buf is non-NULL first before we attempt to write audio --- retroarch.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/retroarch.c b/retroarch.c index abbfed4f40..95b6a90608 100644 --- a/retroarch.c +++ b/retroarch.c @@ -28208,7 +28208,7 @@ static void audio_driver_flush( if (p_rarch->audio_driver_use_float) output_frames *= sizeof(float); - else + else if (p_rarch->audio_driver_output_samples_conv_buf) { convert_float_to_s16(p_rarch->audio_driver_output_samples_conv_buf, (const float*)output_data, output_frames * 2); @@ -28216,11 +28216,16 @@ static void audio_driver_flush( output_data = p_rarch->audio_driver_output_samples_conv_buf; output_frames *= sizeof(int16_t); } + else + { + output_data = NULL; + output_frames = 0; + } - if (p_rarch->current_audio->write( + if (output_data && output_frames > 0) + p_rarch->current_audio->write( p_rarch->audio_driver_context_audio_data, - output_data, output_frames * 2) < 0) - p_rarch->audio_driver_active = false; + output_data, output_frames * 2); } }