diff --git a/mini_al.h b/mini_al.h index 335fad52..c677062f 100644 --- a/mini_al.h +++ b/mini_al.h @@ -3953,6 +3953,21 @@ mal_uint32 mal_get_standard_sample_rate_priority_index(mal_uint32 sampleRate) return (mal_uint32)-1; } +mal_uint64 mal_calculate_frame_count_after_src(mal_uint32 sampleRateOut, mal_uint32 sampleRateIn, mal_uint64 frameCountIn) +{ + double srcRatio = (double)sampleRateOut / sampleRateIn; + double frameCountOutF = frameCountIn * srcRatio; + + mal_uint64 frameCountOut = (mal_uint64)frameCountOutF; + + // If the output frame count is fractional, make sure we add an extra frame to ensure there's enough room for that last sample. + if ((frameCountOutF - frameCountOut) > 0.0) { + frameCountOut += 1; + } + + return frameCountOut; +} + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -4807,21 +4822,6 @@ mal_result mal_post_error(mal_device* pDevice, mal_uint32 logLevel, const char* } -mal_uint64 mal_calculate_frame_count_after_src(mal_uint32 sampleRateOut, mal_uint32 sampleRateIn, mal_uint64 frameCountIn) -{ - double srcRatio = (double)sampleRateOut / sampleRateIn; - double frameCountOutF = frameCountIn * srcRatio; - - mal_uint64 frameCountOut = (mal_uint64)frameCountOutF; - - // If the output frame count is fractional, make sure we add an extra frame to ensure there's enough room for that last sample. - if ((frameCountOutF - frameCountOut) > 0.0) { - frameCountOut += 1; - } - - return frameCountOut; -} - // The callback for reading from the client -> DSP -> device. mal_uint32 mal_device__on_read_from_client(mal_pcm_converter* pDSP, void* pFramesOut, mal_uint32 frameCount, void* pUserData) diff --git a/tests/mal_no_device_io.c b/tests/mal_no_device_io.c index e0690001..924c6530 100644 --- a/tests/mal_no_device_io.c +++ b/tests/mal_no_device_io.c @@ -15,9 +15,9 @@ int main(int argc, char** argv) mal_result result = MAL_ERROR; - mal_dsp_config dspConfig = mal_dsp_config_init_new(); - mal_dsp dsp; - result = mal_dsp_init(&dspConfig, &dsp); + mal_pcm_converter_config dspConfig = mal_pcm_converter_config_init_new(); + mal_pcm_converter converter; + result = mal_pcm_converter_init(&dspConfig, &converter); mal_decoder_config decoderConfig = mal_decoder_config_init(mal_format_unknown, 0, 0); mal_decoder decoder;