static int snd_pcm_hw_param_set(struct snd_pcm_substream *pcm,
struct snd_pcm_hw_params *params,
snd_pcm_hw_param_t var, unsigned int val,
int dir)
{
int changed = _snd_pcm_hw_param_set(params, var, val, dir);
// 设置range类型为固定值val的integer整型,这里为8000采样率
if (changed < 0)
return changed;
if (params->rmask) {
int err = snd_pcm_hw_refine(pcm, params);
《浅析alsa声卡驱动snd_pcm_hw_refine函数》 // 将与采样率相关的所有参数,按照constrs->rules规则中的deps[]相关信息,
// 进行与var采样率相关的统一运算调整[luther.gliethttp]
if (err < 0)
return err;
}
return snd_pcm_hw_param_value(params, var, NULL); // 返回i->min最小值.
}
阅读(4320) | 评论(0) | 转发(1) |