Showing the changes to src (1 of 2 files). Show all
Unified · Split
| @@ -47,6 +47,10 @@ · 46 unmodified lines | ||
| 47 | 47 | typedef int32_t increment_t ; |
| 48 | 48 | typedef float coeff_t ; |
| 49 | 49 | |
| 50 | +#include "high_qual_coeffs.h" | |
| 51 | +#include "mid_qual_coeffs.h" | |
| 52 | +#include "fastest_coeffs.h" | |
| 53 | + | |
| 50 | 54 | typedef struct |
| 51 | 55 | { int sinc_magic_marker ; |
| 52 | 56 | |
| @@ -55,11 +59,9 @@ typedef struct · 2 unmodified lines | ||
| 55 | 59 | long out_count, out_gen ; |
| 56 | 60 | |
| 57 | 61 | int coeff_half_len, index_inc ; |
| 58 | − int has_diffs ; | |
| 59 | 62 | |
| 60 | 63 | double src_ratio, input_index ; |
| 61 | 64 | |
| 62 | − int coeff_len ; | |
| 63 | 65 | coeff_t const *coeffs ; |
| 64 | 66 | |
| 65 | 67 | 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 | ||
| 74 | 76 | |
| 75 | 77 | static void sinc_reset (SRC_PRIVATE *psrc) ; |
| 76 | 78 | |
| 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 | − | |
| 93 | 79 | static inline increment_t |
| 94 | 80 | double_to_fp (double x) |
| 95 | 81 | { if (sizeof (increment_t) == 8) |
| @@ -184,27 +170,21 @@ sinc_set_converter (SRC_PRIVATE *psrc, int src_enum) · 88 unmodified lines | ||
| 184 | 170 | |
| 185 | 171 | switch (src_enum) |
| 186 | 172 | { 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 ; | |
| 192 | 176 | break ; |
| 193 | 177 | |
| 194 | 178 | 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 ; | |
| 200 | 182 | break ; |
| 201 | 183 | |
| 202 | 184 | 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 ; | |
| 208 | 188 | break ; |
| 209 | 189 | |
| 210 | 190 | default : |
| @@ -216,7 +196,7 @@ sinc_set_converter (SRC_PRIVATE *psrc, int src_enum) · 5 unmodified lines | ||
| 216 | 196 | ** a better way. Need to look at prepare_data () at the same time. |
| 217 | 197 | */ |
| 218 | 198 | |
| 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) ; | |
| 220 | 200 | temp_filter.b_len = MIN (temp_filter.b_len, 4096) ; |
| 221 | 201 | temp_filter.b_len *= temp_filter.channels ; |
| 222 | 202 | |