Unified · Split
| @@ -28,7 +28,7 @@ · 27 unmodified lines | |||
| 28 | #define LONG_BUFFER_LEN ((1 << 16) - 20) | 28 | #define LONG_BUFFER_LEN ((1 << 16) - 20) |
| 29 | 29 | ||
| 30 | static void stream_test (int converter, double ratio) ; | 30 | static void stream_test (int converter, double ratio) ; |
| 31 | static void term_test (int converter, double ratio) ; | 31 | static void init_term_test (int converter, double ratio) ; |
| 32 | 32 | ||
| 33 | static int next_block_length (int reset) ; | 33 | static int next_block_length (int reset) ; |
| 34 | 34 | ||
| @@ -44,7 +44,7 @@ main (void) · 9 unmodified lines | |||
| 44 | puts ("\n Zero Order Hold interpolator:") ; | 44 | puts ("\n Zero Order Hold interpolator:") ; |
| 45 | 45 | ||
| 46 | for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++) | 46 | for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++) |
| 47 | term_test (SRC_ZERO_ORDER_HOLD, src_ratios [k]) ; | 47 | init_term_test (SRC_ZERO_ORDER_HOLD, src_ratios [k]) ; |
| 48 | puts ("") ; | 48 | puts ("") ; |
| 49 | for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++) | 49 | for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++) |
| 50 | stream_test (SRC_ZERO_ORDER_HOLD, src_ratios [k]) ; | 50 | stream_test (SRC_ZERO_ORDER_HOLD, src_ratios [k]) ; |
| @@ -52,7 +52,7 @@ main (void) · 1 unmodified line | |||
| 52 | 52 | ||
| 53 | puts ("\n Linear interpolator:") ; | 53 | puts ("\n Linear interpolator:") ; |
| 54 | for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++) | 54 | for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++) |
| 55 | term_test (SRC_LINEAR, src_ratios [k]) ; | 55 | init_term_test (SRC_LINEAR, src_ratios [k]) ; |
| 56 | puts ("") ; | 56 | puts ("") ; |
| 57 | for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++) | 57 | for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++) |
| 58 | stream_test (SRC_LINEAR, src_ratios [k]) ; | 58 | stream_test (SRC_LINEAR, src_ratios [k]) ; |
| @@ -60,7 +60,7 @@ main (void) · 1 unmodified line | |||
| 60 | 60 | ||
| 61 | puts ("\n Sinc interpolator:") ; | 61 | puts ("\n Sinc interpolator:") ; |
| 62 | for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++) | 62 | for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++) |
| 63 | term_test (SRC_SINC_FASTEST, src_ratios [k]) ; | 63 | init_term_test (SRC_SINC_FASTEST, src_ratios [k]) ; |
| 64 | puts ("") ; | 64 | puts ("") ; |
| 65 | for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++) | 65 | for (k = 0 ; k < ARRAY_LEN (src_ratios) ; k++) |
| 66 | stream_test (SRC_SINC_FASTEST, src_ratios [k]) ; | 66 | stream_test (SRC_SINC_FASTEST, src_ratios [k]) ; |
| @@ -71,14 +71,14 @@ main (void) · 4 unmodified lines | |||
| 71 | } /* main */ | 71 | } /* main */ |
| 72 | 72 | ||
| 73 | static void | 73 | static void |
| 74 | term_test (int converter, double src_ratio) | 74 | init_term_test (int converter, double src_ratio) |
| 75 | { static float input [SHORT_BUFFER_LEN], output [SHORT_BUFFER_LEN] ; | 75 | { static float input [SHORT_BUFFER_LEN], output [SHORT_BUFFER_LEN] ; |
| 76 | 76 | ||
| 77 | SRC_DATA src_data ; | 77 | SRC_DATA src_data ; |
| 78 | 78 | ||
| 79 | int input_len, output_len, error, terminate ; | 79 | int k, input_len, output_len, error, terminate ; |
| 80 | 80 | ||
| 81 | printf ("\ttermination_test (SRC ratio = %7.4f) .......... ", src_ratio) ; | 81 | printf ("\tinit_term_test (SRC ratio = %7.4f) .......... ", src_ratio) ; |
| 82 | fflush (stdout) ; | 82 | fflush (stdout) ; |
| 83 | 83 | ||
| 84 | /* Calculate maximun input and output lengths. */ | 84 | /* Calculate maximun input and output lengths. */ |
| @@ -94,6 +94,9 @@ term_test (int converter, double src_ratio) · 9 unmodified lines | |||
| 94 | /* Reduce input_len by 10 so output is longer than necessary. */ | 94 | /* Reduce input_len by 10 so output is longer than necessary. */ |
| 95 | input_len -= 10 ; | 95 | input_len -= 10 ; |
| 96 | 96 | ||
| 97 | for (k = 0 ; k < ARRAY_LEN (input) ; k++) | ||
| 98 | input [k] = 1.0 ; | ||
| 99 | |||
| 97 | if (output_len > SHORT_BUFFER_LEN) | 100 | if (output_len > SHORT_BUFFER_LEN) |
| 98 | { printf ("\n\nLine %d : output_len > SHORT_BUFFER_LEN\n\n", __LINE__) ; | 101 | { printf ("\n\nLine %d : output_len > SHORT_BUFFER_LEN\n\n", __LINE__) ; |
| 99 | exit (1) ; | 102 | exit (1) ; |
| @@ -132,10 +135,16 @@ term_test (int converter, double src_ratio) · 32 unmodified lines | |||
| 132 | exit (1) ; | 135 | exit (1) ; |
| 133 | } ; | 136 | } ; |
| 134 | 137 | ||
| 138 | if (fabs (output [0]) < 0.1) | ||
| 139 | { printf ("\n\nLine %d : First output sample is bad.\n\n", __LINE__) ; | ||
| 140 | printf ("\toutput [0] == %f\n\n", output [0]) ; | ||
| 141 | exit (1) ; | ||
| 142 | } | ||
| 143 | |||
| 135 | puts ("ok") ; | 144 | puts ("ok") ; |
| 136 | 145 | ||
| 137 | return ; | 146 | return ; |
| 138 | } /* term_test */ | 147 | } /* init_term_test */ |
| 139 | 148 | ||
| 140 | static void | 149 | static void |
| 141 | stream_test (int converter, double src_ratio) | 150 | stream_test (int converter, double src_ratio) |