mirror of
https://github.com/libretro/RetroArch
synced 2025-04-17 02:43:03 +00:00
Do not recalculate ratio all the time.
This commit is contained in:
parent
b2dd12d186
commit
e91ebdac97
3
driver.c
3
driver.c
@ -270,6 +270,9 @@ void init_audio(void)
|
||||
assert((g_extern.audio_data.rewind_buf = malloc(max_bufsamples * sizeof(int16_t))));
|
||||
g_extern.audio_data.rewind_size = max_bufsamples;
|
||||
|
||||
g_extern.audio_data.src_ratio =
|
||||
(double)g_settings.audio.out_rate / g_settings.audio.in_rate;
|
||||
|
||||
init_dsp_plugin();
|
||||
}
|
||||
|
||||
|
@ -213,6 +213,8 @@ struct global
|
||||
size_t nonblock_chunk_size;
|
||||
size_t block_chunk_size;
|
||||
|
||||
double src_ratio;
|
||||
|
||||
bool use_float;
|
||||
|
||||
float *outsamples;
|
||||
|
10
ssnes.c
10
ssnes.c
@ -220,13 +220,10 @@ static bool audio_flush(const int16_t *data, unsigned samples)
|
||||
.data_in = dsp_output.samples ? dsp_output.samples : g_extern.audio_data.data,
|
||||
.data_out = g_extern.audio_data.outsamples,
|
||||
.input_frames = dsp_output.samples ? dsp_output.frames : (samples / 2),
|
||||
.output_frames = g_extern.audio_data.chunk_size * 8,
|
||||
.ratio = (double)g_settings.audio.out_rate / (double)g_settings.audio.in_rate,
|
||||
.ratio = g_extern.audio_data.src_ratio,
|
||||
.output_frames = samples * g_extern.audio_data.src_ratio,
|
||||
};
|
||||
|
||||
if (g_extern.frame_is_reverse)
|
||||
src_data.output_frames = (samples) * src_data.ratio;
|
||||
|
||||
if (dsp_output.should_resample)
|
||||
{
|
||||
hermite_process(g_extern.audio_data.source, &src_data);
|
||||
@ -1338,6 +1335,9 @@ static void check_input_rate(void)
|
||||
msg_queue_clear(g_extern.msg_queue);
|
||||
msg_queue_push(g_extern.msg_queue, msg, 0, 180);
|
||||
SSNES_LOG("%s\n", msg);
|
||||
|
||||
g_extern.audio_data.src_ratio =
|
||||
(double)g_settings.audio.out_rate / g_settings.audio.in_rate;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user