Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
Android自带录音apk使用的采样率是8kHz,而硬件录音的采样率是44.1kHz,所以需要做重采样。
HAL层重采样:
hardware/rockchip/audio/tinyalsa_hal/audio_hw.c:
system/media/audio_utils/resampler.c
OS: Android 6.0
Kernel: 3.10.92
Android自带录音apk使用的采样率是8kHz,而硬件录音的采样率是44.1kHz,所以需要做重采样。
HAL层重采样:
hardware/rockchip/audio/tinyalsa_hal/audio_hw.c:
static int adev_open_input_stream(......)
{
......
//requested_rate: app申请的采样率
//pcm_config->rate: 硬件实际采样率
if (in->requested_rate != pcm_config->rate) {
in->buf_provider.get_next_buffer = get_next_buffer;
in->buf_provider.release_buffer = release_buffer;
......
ret = create_resampler(pcm_config->rate,
in->requested_rate,
audio_channel_count_from_in_mask(in->channel_mask),
RESAMPLER_QUALITY_DEFAULT,
&in->buf_provider,
&in->resampler);
......
}
......
}
重采样算法用android自带库
system/media/audio_utils/resampler.c
int create_resampler(......)
{
......
rsmp->speex_resampler = speex_resampler_init(channelCount,
inSampleRate,