History

More sketching out of fip_process().

Erik de Castro Lopo committed 22 years ago

Commit a28fd681 parent c4f4d141 file · +49 −4Browse files

Showing the changes to src (1 of 1 file). Show all

Unified · Split

src/src_fir_iir_poly.c+49−4
@@ -52,6 +52,12 @@ typedef struct · 51 unmodified lines
52static void fip_reset (SRC_PRIVATE *psrc) ;52static void fip_reset (SRC_PRIVATE *psrc) ;
53static int fip_process (SRC_PRIVATE *psrc, SRC_DATA *data) ;53static int fip_process (SRC_PRIVATE *psrc, SRC_DATA *data) ;
54 54
55static int fip_process_var_down (FIR_IIR_POLY * fip, SRC_DATA * data) ;
56static int fip_process_const_down (FIR_IIR_POLY * fip, SRC_DATA * data) ;
57static int fip_process_var_up (FIR_IIR_POLY * fip, SRC_DATA * data) ;
58static int fip_process_const_up (FIR_IIR_POLY * fip, SRC_DATA * data) ;
59
60
55static float best_coeffs [250] ;61static float best_coeffs [250] ;
56 62
57const char*63const char*
@@ -185,19 +191,58 @@ fip_process (SRC_PRIVATE *psrc, SRC_DATA *data) · 127 unmodified lines
185 if (sizeof (fip->dummy [0]) != sizeof (data->data_in [0]))191 if (sizeof (fip->dummy [0]) != sizeof (data->data_in [0]))
186 return SRC_ERR_SIZE_INCOMPATIBILITY ;192 return SRC_ERR_SIZE_INCOMPATIBILITY ;
187 193
188 if (data->src_ratio < 1.0)194 /* Just after an fip_reset(), the src_ratio field is invalid. */
189 { printf ("Bad ratio %f\n", data->src_ratio) ;195 if (fip->src_ratio < 1.0 / SRC_MAX_RATIO)
190 exit (1) ;196 fip->src_ratio = data->src_ratio ;
197
198 if (fip->src_ratio < 1.0 || data->src_ratio < 1.0)
199 { /* Special case code for constant and varying src_ratio downsampling. */
200 if (fabs (fip->src_ratio - data->src_ratio) > 1e-20)
201 return fip_process_var_down (fip, data) ;
202
203 return fip_process_const_down (fip, data) ;
191 } ;204 } ;
192 205
206 if (fabs (fip->src_ratio - data->src_ratio) > 1e-20)
207 return fip_process_var_up (fip, data) ;
193 208
194 return SRC_ERR_NO_ERROR ;209 return fip_process_const_up (fip, data) ;
195} /* fip_process */210} /* fip_process */
196 211
197/*----------------------------------------------------------------------------------------212/*----------------------------------------------------------------------------------------
198*/213*/
199 214
215static int
216fip_process_var_down (FIR_IIR_POLY * fip, SRC_DATA * data)
217{ fip = NULL ;
218 data = NULL ;
219 printf ("%s : not implemented yet.\n", __func__) ;
220 return SRC_ERR_NO_ERROR ;
221} /* fip_process_var_down */
200 222
223static int
224fip_process_const_down (FIR_IIR_POLY * fip, SRC_DATA * data)
225{ fip = NULL ;
226 data = NULL ;
227 printf ("%s : not implemented yet.\n", __func__) ;
228 return SRC_ERR_NO_ERROR ;
229} /* fip_process_const_down */
230
231static int
232fip_process_var_up (FIR_IIR_POLY * fip, SRC_DATA * data)
233{ fip = NULL ;
234 data = NULL ;
235 printf ("%s : not implemented yet.\n", __func__) ;
236 return SRC_ERR_NO_ERROR ;
237} /* fip_process_var_up */
238
239static int
240fip_process_const_up (FIR_IIR_POLY * fip, SRC_DATA * data)
241{ fip = NULL ;
242 data = NULL ;
243 printf ("%s : not implemented yet.\n", __func__) ;
244 return SRC_ERR_NO_ERROR ;
245} /* fip_process_const_up */
201 246
202 247
203/*248/*

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t