Lines Matching +full:reserved +full:- +full:channels
2 ** Copyright (c) 2002-2021, Erik de Castro Lopo <erikd@mega-nerd.com>
3 ** All rights reserved.
5 ** This code is released under 2-clause BSD license. Please see the
50 /*----------------------------------------------------------------------------------------
59 if (data->input_frames <= 0) in linear_vari_process()
62 if (state->private_data == NULL) in linear_vari_process()
65 priv = (LINEAR_DATA*) state->private_data ; in linear_vari_process()
67 if (!priv->dirty) in linear_vari_process()
69 for (ch = 0 ; ch < state->channels ; ch++) in linear_vari_process()
70 priv->last_value [ch] = data->data_in [ch] ; in linear_vari_process()
71 priv->dirty = true ; in linear_vari_process()
74 priv->in_count = data->input_frames * state->channels ; in linear_vari_process()
75 priv->out_count = data->output_frames * state->channels ; in linear_vari_process()
76 priv->in_used = priv->out_gen = 0 ; in linear_vari_process()
78 src_ratio = state->last_ratio ; in linear_vari_process()
83 input_index = state->last_position ; in linear_vari_process()
86 while (input_index < 1.0 && priv->out_gen < priv->out_count) in linear_vari_process()
88 if (priv->in_used + state->channels * (1.0 + input_index) >= priv->in_count) in linear_vari_process()
91 if (priv->out_count > 0 && fabs (state->last_ratio - data->src_ratio) > SRC_MIN_RATIO_DIFF) in linear_vari_process()
92 …src_ratio = state->last_ratio + priv->out_gen * (data->src_ratio - state->last_ratio) / priv->out_… in linear_vari_process()
94 for (ch = 0 ; ch < state->channels ; ch++) in linear_vari_process()
95 { data->data_out [priv->out_gen] = (float) (priv->last_value [ch] + input_index * in linear_vari_process()
96 ((double) data->data_in [ch] - priv->last_value [ch])) ; in linear_vari_process()
97 priv->out_gen ++ ; in linear_vari_process()
105 priv->in_used += state->channels * lrint (input_index - rem) ; in linear_vari_process()
109 …while (priv->out_gen < priv->out_count && priv->in_used + state->channels * input_index < priv->in… in linear_vari_process()
111 if (priv->out_count > 0 && fabs (state->last_ratio - data->src_ratio) > SRC_MIN_RATIO_DIFF) in linear_vari_process()
112 …src_ratio = state->last_ratio + priv->out_gen * (data->src_ratio - state->last_ratio) / priv->out_… in linear_vari_process()
115 if (priv->in_used < state->channels && input_index < 1.0) in linear_vari_process()
116 …{ printf ("Whoops!!!! in_used : %ld channels : %d input_index : %f\n", priv->in_used, st… in linear_vari_process()
121 for (ch = 0 ; ch < state->channels ; ch++) in linear_vari_process()
122 …{ data->data_out [priv->out_gen] = (float) (data->data_in [priv->in_used - state->channels + ch] +… in linear_vari_process()
123 …((double) data->data_in [priv->in_used + ch] - data->data_in [priv->in_used - state->channels + ch… in linear_vari_process()
124 priv->out_gen ++ ; in linear_vari_process()
131 priv->in_used += state->channels * lrint (input_index - rem) ; in linear_vari_process()
135 if (priv->in_used > priv->in_count) in linear_vari_process()
136 { input_index += (priv->in_used - priv->in_count) / state->channels ; in linear_vari_process()
137 priv->in_used = priv->in_count ; in linear_vari_process()
140 state->last_position = input_index ; in linear_vari_process()
142 if (priv->in_used > 0) in linear_vari_process()
143 for (ch = 0 ; ch < state->channels ; ch++) in linear_vari_process()
144 priv->last_value [ch] = data->data_in [priv->in_used - state->channels + ch] ; in linear_vari_process()
147 state->last_ratio = src_ratio ; in linear_vari_process()
149 data->input_frames_used = priv->in_used / state->channels ; in linear_vari_process()
150 data->output_frames_gen = priv->out_gen / state->channels ; in linear_vari_process()
155 /*------------------------------------------------------------------------------
179 linear_data_new (int channels) in linear_data_new() argument
181 assert (channels > 0) ; in linear_data_new()
186 priv->linear_magic_marker = LINEAR_MAGIC_MARKER ; in linear_data_new()
187 priv->last_value = (float *) calloc (channels, sizeof (float)) ; in linear_data_new()
188 if (!priv->last_value) in linear_data_new()
199 linear_state_new (int channels, SRC_ERROR *error) in linear_state_new() argument
201 assert (channels > 0) ; in linear_state_new()
211 state->channels = channels ; in linear_state_new()
212 state->mode = SRC_MODE_PROCESS ; in linear_state_new()
214 state->private_data = linear_data_new (state->channels) ; in linear_state_new()
215 if (!state->private_data) in linear_state_new()
222 state->vt = &linear_state_vt ; in linear_state_new()
238 priv = (LINEAR_DATA*) state->private_data ; in linear_reset()
242 priv->dirty = false ; in linear_reset()
243 memset (priv->last_value, 0, sizeof (priv->last_value [0]) * state->channels) ; in linear_reset()
253 if (state->private_data == NULL) in linear_copy()
261 LINEAR_DATA* from_priv = (LINEAR_DATA*) state->private_data ; in linear_copy()
270 to_priv->last_value = (float *) malloc (sizeof (float) * state->channels) ; in linear_copy()
271 if (!to_priv->last_value) in linear_copy()
277 memcpy (to_priv->last_value, from_priv->last_value, sizeof (float) * state->channels) ; in linear_copy()
279 to->private_data = to_priv ; in linear_copy()
289 LINEAR_DATA *linear = (LINEAR_DATA *) state->private_data ; in linear_close()
292 if (linear->last_value) in linear_close()
294 free (linear->last_value) ; in linear_close()
295 linear->last_value = NULL ; in linear_close()