Lines Matching refs:plugin

32  *  Basic rate conversion plugin
40 typedef void (*rate_f)(struct snd_pcm_plugin *plugin,
53 static void rate_init(struct snd_pcm_plugin *plugin)
56 struct rate_priv *data = (struct rate_priv *)plugin->extra_data;
58 for (channel = 0; channel < plugin->src_format.channels; channel++) {
64 static void resample_expand(struct snd_pcm_plugin *plugin,
76 struct rate_priv *data = (struct rate_priv *)plugin->extra_data;
79 for (channel = 0; channel < plugin->src_format.channels; channel++) {
85 snd_pcm_area_silence(&dst_channels[channel].area, 0, dst_frames, plugin->dst_format.format);
123 static void resample_shrink(struct snd_pcm_plugin *plugin,
135 struct rate_priv *data = (struct rate_priv *)plugin->extra_data;
138 for (channel = 0; channel < plugin->src_format.channels; ++channel) {
144 snd_pcm_area_silence(&dst_channels[channel].area, 0, dst_frames, plugin->dst_format.format);
183 static snd_pcm_sframes_t rate_src_frames(struct snd_pcm_plugin *plugin, snd_pcm_uframes_t frames)
188 if (snd_BUG_ON(!plugin))
192 data = (struct rate_priv *)plugin->extra_data;
193 if (plugin->src_format.rate < plugin->dst_format.rate) {
216 static snd_pcm_sframes_t rate_dst_frames(struct snd_pcm_plugin *plugin, snd_pcm_uframes_t frames)
221 if (snd_BUG_ON(!plugin))
225 data = (struct rate_priv *)plugin->extra_data;
226 if (plugin->src_format.rate < plugin->dst_format.rate) {
249 static snd_pcm_sframes_t rate_transfer(struct snd_pcm_plugin *plugin,
257 if (snd_BUG_ON(!plugin || !src_channels || !dst_channels))
264 for (channel = 0; channel < plugin->src_format.channels; channel++) {
275 dst_frames = rate_dst_frames(plugin, frames);
278 data = (struct rate_priv *)plugin->extra_data;
279 data->func(plugin, src_channels, dst_channels, frames, dst_frames);
283 static int rate_action(struct snd_pcm_plugin *plugin,
287 if (snd_BUG_ON(!plugin))
292 rate_init(plugin);
307 struct snd_pcm_plugin *plugin;
328 &plugin);
331 data = (struct rate_priv *)plugin->extra_data;
340 rate_init(plugin);
342 plugin->transfer = rate_transfer;
343 plugin->src_frames = rate_src_frames;
344 plugin->dst_frames = rate_dst_frames;
345 plugin->action = rate_action;
346 *r_plugin = plugin;