Lines Matching defs:info
329 static int linear_init(void *obj, snd_pcm_rate_info_t *info)
333 rate->get_idx = snd_pcm_linear_get_index(info->in.format, SND_PCM_FORMAT_S16);
334 rate->put_idx = snd_pcm_linear_put_index(SND_PCM_FORMAT_S16, info->out.format);
335 if (info->in.rate < info->out.rate) {
336 if (info->in.format == info->out.format && info->in.format == SND_PCM_FORMAT_S16)
342 if (info->in.format == info->out.format && info->in.format == SND_PCM_FORMAT_S16)
348 rate->pitch = (((uint64_t)info->out.rate * LINEAR_DIV) +
349 (info->in.rate / 2)) / info->in.rate;
350 rate->channels = info->channels;
360 static int linear_adjust_pitch(void *obj, snd_pcm_rate_info_t *info)
365 rate->pitch = (((uint64_t)info->out.period_size * LINEAR_DIV) +
366 (info->in.period_size/2) ) / info->in.period_size;
368 cframes = input_frames(rate, info->out.period_size);
369 while (cframes != info->in.period_size) {
371 if (cframes > info->in.period_size)
375 cframes_new = input_frames(rate, info->out.period_size);
376 if ((cframes > info->in.period_size && cframes_new < info->in.period_size) ||
377 (cframes < info->in.period_size && cframes_new > info->in.period_size)) {
379 info->in.period_size, info->out.period_size);