From 8ff9ae6b32ec42b121f0fbfdba720f829ecae72e Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Thu, 29 Mar 2012 22:28:46 +0200 Subject: [PATCH] Revert "Avoid redundant copy. Remove some now unneeded ifdefs." This reverts commit b52110f6420e8891cfb92c01869c54bf9661e63c. --- ssnes.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/ssnes.c b/ssnes.c index fec991503b..2546c878e8 100644 --- a/ssnes.c +++ b/ssnes.c @@ -288,10 +288,12 @@ static bool audio_flush(const int16_t *data, size_t samples) } #endif +#ifndef SSNES_CONSOLE if (g_extern.is_paused) return true; if (!g_extern.audio_active) return false; +#endif const float *output_data = NULL; unsigned output_frames = 0; @@ -317,8 +319,10 @@ static bool audio_flush(const int16_t *data, size_t samples) src_data.data_out = g_extern.audio_data.outsamples; src_data.input_frames = dsp_output.samples ? dsp_output.frames : (samples / 2); +#ifndef SSNES_CONSOLE if (g_extern.audio_data.rate_control) readjust_audio_input_rate(); +#endif src_data.ratio = g_extern.audio_data.src_ratio; if (g_extern.is_slowmotion) @@ -399,9 +403,15 @@ unsigned audio_sample_batch(const int16_t *data, unsigned frames) if (frames > (AUDIO_CHUNK_SIZE_NONBLOCKING >> 1)) frames = AUDIO_CHUNK_SIZE_NONBLOCKING >> 1; + memcpy(g_extern.audio_data.conv_outsamples, + data, (frames << 1) * sizeof(int16_t)); + g_extern.audio_data.data_ptr = frames << 1; + if (g_extern.audio_data.data_ptr >= g_extern.audio_data.chunk_size) { - g_extern.audio_active = audio_flush(data, frames << 1) && g_extern.audio_active; + g_extern.audio_active = audio_flush(g_extern.audio_data.conv_outsamples, + g_extern.audio_data.data_ptr) && g_extern.audio_active; + g_extern.audio_data.data_ptr = 0; }