History

src/src_sinc.c : Adapt to change of coefficient storage.

Erik de Castro Lopo committed 19 years ago

Commit 5003d891 parent be0cfba2 files · +22 −34Browse files

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

Unified · Split

src/src_sinc.c+14−34
@@ -47,6 +47,10 @@ · 46 unmodified lines
4747 typedef int32_t increment_t ;
4848 typedef float coeff_t ;
4949
50+#include "high_qual_coeffs.h"
51+#include "mid_qual_coeffs.h"
52+#include "fastest_coeffs.h"
53+
5054 typedef struct
5155 { int sinc_magic_marker ;
5256
@@ -55,11 +59,9 @@ typedef struct · 2 unmodified lines
5559 long out_count, out_gen ;
5660
5761 int coeff_half_len, index_inc ;
58− int has_diffs ;
5962
6063 double src_ratio, input_index ;
6164
62− int coeff_len ;
6365 coeff_t const *coeffs ;
6466
6567 int b_current, b_end, b_real_end, b_len ;
@@ -74,22 +76,6 @@ static void prepare_data (SINC_FILTER *filter, SRC_DATA *data, int half_filter_c · 8 unmodified lines
7476
7577 static void sinc_reset (SRC_PRIVATE *psrc) ;
7678
77−static coeff_t const high_qual_coeffs [] =
78−{
79−#include "../Octave/test.h"
80−} ; /* high_qual_coeffs */
81−
82−static coeff_t const mid_qual_coeffs [] =
83−{
84−#include "mid_qual_coeffs.h"
85−} ; /* mid_qual_coeffs */
86−
87−static coeff_t const fastest_coeffs [] =
88−{
89−#include "fastest_coeffs.h"
90−} ; /* fastest_coeffs */
91−
92−
9379 static inline increment_t
9480 double_to_fp (double x)
9581 { if (sizeof (increment_t) == 8)
@@ -184,27 +170,21 @@ sinc_set_converter (SRC_PRIVATE *psrc, int src_enum) · 88 unmodified lines
184170
185171 switch (src_enum)
186172 { case SRC_SINC_BEST_QUALITY :
187− temp_filter.coeffs = high_qual_coeffs ;
188− temp_filter.coeff_half_len = ARRAY_LEN (high_qual_coeffs) - 1 ;
189− temp_filter.index_inc = 512 ;
190− temp_filter.has_diffs = SRC_FALSE ;
191− temp_filter.coeff_len = ARRAY_LEN (high_qual_coeffs) ;
173+ temp_filter.coeffs = high_qual_coeffs.coeffs ;
174+ temp_filter.coeff_half_len = ARRAY_LEN (high_qual_coeffs.coeffs) - 1 ;
175+ temp_filter.index_inc = high_qual_coeffs.increment ;
192176 break ;
193177
194178 case SRC_SINC_MEDIUM_QUALITY :
195− temp_filter.coeffs = mid_qual_coeffs ;
196− temp_filter.coeff_half_len = ARRAY_LEN (mid_qual_coeffs) - 1 ;
197− temp_filter.index_inc = 128 ;
198− temp_filter.has_diffs = SRC_FALSE ;
199− temp_filter.coeff_len = ARRAY_LEN (mid_qual_coeffs) ;
179+ temp_filter.coeffs = mid_qual_coeffs.coeffs ;
180+ temp_filter.coeff_half_len = ARRAY_LEN (mid_qual_coeffs.coeffs) - 1 ;
181+ temp_filter.index_inc = mid_qual_coeffs.increment ;
200182 break ;
201183
202184 case SRC_SINC_FASTEST :
203− temp_filter.coeffs = fastest_coeffs ;
204− temp_filter.coeff_half_len = ARRAY_LEN (fastest_coeffs) - 1 ;
205− temp_filter.index_inc = 128 ;
206− temp_filter.has_diffs = SRC_FALSE ;
207− temp_filter.coeff_len = ARRAY_LEN (fastest_coeffs) ;
185+ temp_filter.coeffs = fastest_coeffs.coeffs ;
186+ temp_filter.coeff_half_len = ARRAY_LEN (fastest_coeffs.coeffs) - 1 ;
187+ temp_filter.index_inc = fastest_coeffs.increment ;
208188 break ;
209189
210190 default :
@@ -216,7 +196,7 @@ sinc_set_converter (SRC_PRIVATE *psrc, int src_enum) · 5 unmodified lines
216196 ** a better way. Need to look at prepare_data () at the same time.
217197 */
218198
219− temp_filter.b_len = 1000 + 2 * lrint (0.5 + temp_filter.coeff_len / (temp_filter.index_inc * 1.0) * SRC_MAX_RATIO) ;
199+ temp_filter.b_len = 1000 + 2 * lrint (0.5 + 2 * temp_filter.coeff_half_len / (temp_filter.index_inc * 1.0) * SRC_MAX_RATIO) ;
220200 temp_filter.b_len = MIN (temp_filter.b_len, 4096) ;
221201 temp_filter.b_len *= temp_filter.channels ;
222202

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