Showing the changes to src (1 of 2 files). Show all
Unified · Split
| @@ -47,6 +47,10 @@ · 46 unmodified lines | |||
| 47 | typedef int32_t increment_t ; | 47 | typedef int32_t increment_t ; |
| 48 | typedef float coeff_t ; | 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 | typedef struct | 54 | typedef struct |
| 51 | { int sinc_magic_marker ; | 55 | { int sinc_magic_marker ; |
| 52 | 56 | ||
| @@ -55,11 +59,9 @@ typedef struct · 2 unmodified lines | |||
| 55 | long out_count, out_gen ; | 59 | long out_count, out_gen ; |
| 56 | 60 | ||
| 57 | int coeff_half_len, index_inc ; | 61 | int coeff_half_len, index_inc ; |
| 58 | int has_diffs ; | ||
| 59 | 62 | ||
| 60 | double src_ratio, input_index ; | 63 | double src_ratio, input_index ; |
| 61 | 64 | ||
| 62 | int coeff_len ; | ||
| 63 | coeff_t const *coeffs ; | 65 | coeff_t const *coeffs ; |
| 64 | 66 | ||
| 65 | int b_current, b_end, b_real_end, b_len ; | 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 | static void sinc_reset (SRC_PRIVATE *psrc) ; | 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 | static inline increment_t | 79 | static inline increment_t |
| 94 | double_to_fp (double x) | 80 | double_to_fp (double x) |
| 95 | { if (sizeof (increment_t) == 8) | 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 | switch (src_enum) | 171 | switch (src_enum) |
| 186 | { case SRC_SINC_BEST_QUALITY : | 172 | { case SRC_SINC_BEST_QUALITY : |
| 187 | temp_filter.coeffs = high_qual_coeffs ; | 173 | temp_filter.coeffs = high_qual_coeffs.coeffs ; |
| 188 | temp_filter.coeff_half_len = ARRAY_LEN (high_qual_coeffs) - 1 ; | 174 | temp_filter.coeff_half_len = ARRAY_LEN (high_qual_coeffs.coeffs) - 1 ; |
| 189 | temp_filter.index_inc = 512 ; | 175 | temp_filter.index_inc = high_qual_coeffs.increment ; |
| 190 | temp_filter.has_diffs = SRC_FALSE ; | ||
| 191 | temp_filter.coeff_len = ARRAY_LEN (high_qual_coeffs) ; | ||
| 192 | break ; | 176 | break ; |
| 193 | 177 | ||
| 194 | case SRC_SINC_MEDIUM_QUALITY : | 178 | case SRC_SINC_MEDIUM_QUALITY : |
| 195 | temp_filter.coeffs = mid_qual_coeffs ; | 179 | temp_filter.coeffs = mid_qual_coeffs.coeffs ; |
| 196 | temp_filter.coeff_half_len = ARRAY_LEN (mid_qual_coeffs) - 1 ; | 180 | temp_filter.coeff_half_len = ARRAY_LEN (mid_qual_coeffs.coeffs) - 1 ; |
| 197 | temp_filter.index_inc = 128 ; | 181 | temp_filter.index_inc = mid_qual_coeffs.increment ; |
| 198 | temp_filter.has_diffs = SRC_FALSE ; | ||
| 199 | temp_filter.coeff_len = ARRAY_LEN (mid_qual_coeffs) ; | ||
| 200 | break ; | 182 | break ; |
| 201 | 183 | ||
| 202 | case SRC_SINC_FASTEST : | 184 | case SRC_SINC_FASTEST : |
| 203 | temp_filter.coeffs = fastest_coeffs ; | 185 | temp_filter.coeffs = fastest_coeffs.coeffs ; |
| 204 | temp_filter.coeff_half_len = ARRAY_LEN (fastest_coeffs) - 1 ; | 186 | temp_filter.coeff_half_len = ARRAY_LEN (fastest_coeffs.coeffs) - 1 ; |
| 205 | temp_filter.index_inc = 128 ; | 187 | temp_filter.index_inc = fastest_coeffs.increment ; |
| 206 | temp_filter.has_diffs = SRC_FALSE ; | ||
| 207 | temp_filter.coeff_len = ARRAY_LEN (fastest_coeffs) ; | ||
| 208 | break ; | 188 | break ; |
| 209 | 189 | ||
| 210 | default : | 190 | default : |
| @@ -216,7 +196,7 @@ sinc_set_converter (SRC_PRIVATE *psrc, int src_enum) · 5 unmodified lines | |||
| 216 | ** a better way. Need to look at prepare_data () at the same time. | 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 | temp_filter.b_len = MIN (temp_filter.b_len, 4096) ; | 200 | temp_filter.b_len = MIN (temp_filter.b_len, 4096) ; |
| 221 | temp_filter.b_len *= temp_filter.channels ; | 201 | temp_filter.b_len *= temp_filter.channels ; |
| 222 | 202 | ||