FFmpeg coverage


Directory: ../../../ffmpeg/
File: src/tests/checkasm/sbrdsp.c
Date: 2026-08-26 16:21:34
Exec Total Coverage
Lines: 182 193 94.3%
Functions: 12 12 100.0%
Branches: 97 306 31.7%

Line Branch Exec Source
1 /*
2 * This file is part of FFmpeg.
3 *
4 * FFmpeg is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * FFmpeg is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with FFmpeg; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 */
18
19 #include <string.h>
20
21 #include "libavutil/mem_internal.h"
22
23 #include "libavcodec/sbrdsp.h"
24 #include <float.h>
25
26 #include "checkasm.h"
27
28 #define randomize(buf, len) do { \
29 int i; \
30 for (i = 0; i < len; i++) { \
31 const INTFLOAT f = (INTFLOAT)rnd() / UINT_MAX; \
32 (buf)[i] = f; \
33 } \
34 } while (0)
35
36 #define EPS 0.0001
37
38 2 static void test_sum64x5(void)
39 {
40 2 LOCAL_ALIGNED_16(INTFLOAT, dst0, [64 + 256]);
41 2 LOCAL_ALIGNED_16(INTFLOAT, dst1, [64 + 256]);
42
43 2 declare_func(void, INTFLOAT *z);
44
45
2/2
✓ Branch 1 taken 640 times.
✓ Branch 2 taken 2 times.
642 randomize((INTFLOAT *)dst0, 64 + 256);
46 2 memcpy(dst1, dst0, (64 + 256) * sizeof(INTFLOAT));
47
1/2
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
2 call_ref(dst0);
48 2 call_new(dst1);
49
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
2 if (!float_near_abs_eps_array(dst0, dst1, EPS, 64 + 256))
50 fail();
51
1/18
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
2 bench_new(dst1);
52 2 }
53
54 2 static void test_sum_square(void)
55 {
56 INTFLOAT res0;
57 INTFLOAT res1;
58 2 LOCAL_ALIGNED_16(INTFLOAT, src, [256], [2]);
59 2 double t = 4 * 256;
60
61 2 declare_func_float(INTFLOAT, INTFLOAT (*x)[2], int n);
62
63
2/2
✓ Branch 1 taken 1024 times.
✓ Branch 2 taken 2 times.
1026 randomize((INTFLOAT *)src, 256 * 2);
64
1/2
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
2 res0 = call_ref(src, 256);
65 2 res1 = call_new(src, 256);
66
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
2 if (!float_near_abs_eps(res0, res1, t * 2 * FLT_EPSILON))
67 fail();
68
1/18
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
2 bench_new(src, 256);
69 2 }
70
71 2 static void test_neg_odd_64(void)
72 {
73 2 LOCAL_ALIGNED_16(INTFLOAT, dst0, [64]);
74 2 LOCAL_ALIGNED_16(INTFLOAT, dst1, [64]);
75
76 2 declare_func(void, INTFLOAT *x);
77
78
2/2
✓ Branch 1 taken 128 times.
✓ Branch 2 taken 2 times.
130 randomize((INTFLOAT *)dst0, 64);
79 2 memcpy(dst1, dst0, (64) * sizeof(INTFLOAT));
80
1/2
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
2 call_ref(dst0);
81 2 call_new(dst1);
82
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
2 if (!float_near_abs_eps_array(dst0, dst1, EPS, 64))
83 fail();
84
1/18
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
2 bench_new(dst1);
85 2 }
86
87 2 static void test_qmf_pre_shuffle(void)
88 {
89 2 LOCAL_ALIGNED_16(INTFLOAT, dst0, [128]);
90 2 LOCAL_ALIGNED_16(INTFLOAT, dst1, [128]);
91
92 2 declare_func(void, INTFLOAT *z);
93
94
2/2
✓ Branch 1 taken 256 times.
✓ Branch 2 taken 2 times.
258 randomize((INTFLOAT *)dst0, 128);
95 2 memcpy(dst1, dst0, (128) * sizeof(INTFLOAT));
96
1/2
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
2 call_ref(dst0);
97 2 call_new(dst1);
98
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
2 if (!float_near_abs_eps_array(dst0, dst1, EPS, 128))
99 fail();
100
1/18
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
2 bench_new(dst1);
101 2 }
102
103 2 static void test_qmf_post_shuffle(void)
104 {
105 2 LOCAL_ALIGNED_16(INTFLOAT, src, [64]);
106 2 LOCAL_ALIGNED_16(INTFLOAT, dst0, [32], [2]);
107 2 LOCAL_ALIGNED_16(INTFLOAT, dst1, [32], [2]);
108
109 2 declare_func(void, INTFLOAT W[32][2], const INTFLOAT *z);
110
111
2/2
✓ Branch 1 taken 128 times.
✓ Branch 2 taken 2 times.
130 randomize((INTFLOAT *)src, 64);
112
1/2
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
2 call_ref(dst0, src);
113 2 call_new(dst1, src);
114
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
2 if (!float_near_abs_eps_array((INTFLOAT *)dst0, (INTFLOAT *)dst1, EPS, 64))
115 fail();
116
1/18
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
2 bench_new(dst1, src);
117 2 }
118
119 2 static void test_qmf_deint_neg(void)
120 {
121 2 LOCAL_ALIGNED_16(INTFLOAT, src, [64]);
122 2 LOCAL_ALIGNED_16(INTFLOAT, dst0, [64]);
123 2 LOCAL_ALIGNED_16(INTFLOAT, dst1, [64]);
124
125 2 declare_func(void, INTFLOAT *v, const INTFLOAT *src);
126
127
2/2
✓ Branch 1 taken 128 times.
✓ Branch 2 taken 2 times.
130 randomize((INTFLOAT *)src, 64);
128
1/2
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
2 call_ref(dst0, src);
129 2 call_new(dst1, src);
130
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
2 if (!float_near_abs_eps_array(dst0, dst1, EPS, 64))
131 fail();
132
1/18
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
2 bench_new(dst1, src);
133 2 }
134
135 2 static void test_qmf_deint_bfly(void)
136 {
137 2 LOCAL_ALIGNED_16(INTFLOAT, src0, [64]);
138 2 LOCAL_ALIGNED_16(INTFLOAT, src1, [64]);
139 2 LOCAL_ALIGNED_16(INTFLOAT, dst0, [128]);
140 2 LOCAL_ALIGNED_16(INTFLOAT, dst1, [128]);
141
142 2 declare_func(void, INTFLOAT *v, const INTFLOAT *src0, const INTFLOAT *src1);
143
144 2 memset(dst0, 0, 128 * sizeof(INTFLOAT));
145 2 memset(dst1, 0, 128 * sizeof(INTFLOAT));
146
147
2/2
✓ Branch 1 taken 128 times.
✓ Branch 2 taken 2 times.
130 randomize((INTFLOAT *)src0, 64);
148
2/2
✓ Branch 1 taken 128 times.
✓ Branch 2 taken 2 times.
130 randomize((INTFLOAT *)src1, 64);
149
1/2
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
2 call_ref(dst0, src0, src1);
150 2 call_new(dst1, src0, src1);
151
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
2 if (!float_near_abs_eps_array(dst0, dst1, EPS, 128))
152 fail();
153
1/18
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
2 bench_new(dst1, src0, src1);
154 2 }
155
156 3 static void test_autocorrelate(void)
157 {
158 3 LOCAL_ALIGNED_16(INTFLOAT, src, [40], [2]);
159 3 LOCAL_ALIGNED_16(INTFLOAT, dst0, [3], [2][2]);
160 3 LOCAL_ALIGNED_16(INTFLOAT, dst1, [3], [2][2]);
161
162 3 declare_func(void, const INTFLOAT x[40][2], INTFLOAT phi[3][2][2]);
163
164 3 memset(dst0, 0, 3 * 2 * 2 * sizeof(INTFLOAT));
165 3 memset(dst1, 0, 3 * 2 * 2 * sizeof(INTFLOAT));
166
167
2/2
✓ Branch 1 taken 240 times.
✓ Branch 2 taken 3 times.
243 randomize((INTFLOAT *)src, 80);
168
1/2
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
3 call_ref(src, dst0);
169 3 call_new(src, dst1);
170
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 3 times.
3 if (!float_near_abs_eps_array((INTFLOAT *)dst0, (INTFLOAT *)dst1, EPS, 3 * 2 * 2))
171 fail();
172
1/18
✗ Branch 1 not taken.
✓ Branch 2 taken 3 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
3 bench_new(src, dst1);
173 3 }
174
175 2 static void test_hf_gen(void)
176 {
177 2 LOCAL_ALIGNED_16(INTFLOAT, low, [128], [2]);
178 2 LOCAL_ALIGNED_16(INTFLOAT, alpha0, [2]);
179 2 LOCAL_ALIGNED_16(INTFLOAT, alpha1, [2]);
180 2 LOCAL_ALIGNED_16(INTFLOAT, dst0, [128], [2]);
181 2 LOCAL_ALIGNED_16(INTFLOAT, dst1, [128], [2]);
182 2 INTFLOAT bw = (INTFLOAT)rnd() / UINT_MAX;
183 int i;
184
185 2 declare_func(void, INTFLOAT (*X_high)[2], const INTFLOAT (*X_low)[2],
186 const INTFLOAT alpha0[2], const INTFLOAT alpha1[2],
187 INTFLOAT bw, int start, int end);
188
189
2/2
✓ Branch 1 taken 512 times.
✓ Branch 2 taken 2 times.
514 randomize((INTFLOAT *)low, 128 * 2);
190
2/2
✓ Branch 1 taken 4 times.
✓ Branch 2 taken 2 times.
6 randomize((INTFLOAT *)alpha0, 2);
191
2/2
✓ Branch 1 taken 4 times.
✓ Branch 2 taken 2 times.
6 randomize((INTFLOAT *)alpha1, 2);
192
2/2
✓ Branch 0 taken 62 times.
✓ Branch 1 taken 2 times.
64 for (i = 2; i < 64; i += 2) {
193 62 memset(dst0, 0, 128 * 2 * sizeof(INTFLOAT));
194 62 memset(dst1, 0, 128 * 2 * sizeof(INTFLOAT));
195
1/2
✗ Branch 2 not taken.
✓ Branch 3 taken 62 times.
62 call_ref(dst0, low, alpha0, alpha1, bw, i, 128);
196 62 call_new(dst1, low, alpha0, alpha1, bw, i, 128);
197
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 62 times.
62 if (!float_near_abs_eps_array((INTFLOAT *)dst0, (INTFLOAT *)dst1, EPS, 128 * 2))
198 fail();
199
1/18
✗ Branch 1 not taken.
✓ Branch 2 taken 62 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
62 bench_new(dst1, low, alpha0, alpha1, bw, i, 128);
200 }
201 2 }
202
203 2 static void test_hf_g_filt(void)
204 {
205 2 LOCAL_ALIGNED_16(INTFLOAT, high, [128], [40][2]);
206 2 LOCAL_ALIGNED_16(INTFLOAT, g_filt, [128]);
207 2 LOCAL_ALIGNED_16(INTFLOAT, dst0, [128], [2]);
208 2 LOCAL_ALIGNED_16(INTFLOAT, dst1, [128], [2]);
209
210 2 declare_func(void, INTFLOAT (*Y)[2], const INTFLOAT (*X_high)[40][2],
211 const INTFLOAT *g_filt, int m_max, intptr_t ixh);
212
213
2/2
✓ Branch 1 taken 20480 times.
✓ Branch 2 taken 2 times.
20482 randomize((INTFLOAT *)high, 128 * 40 * 2);
214
2/2
✓ Branch 1 taken 256 times.
✓ Branch 2 taken 2 times.
258 randomize((INTFLOAT *)g_filt, 128);
215
216
1/2
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
2 call_ref(dst0, high, g_filt, 128, 20);
217 2 call_new(dst1, high, g_filt, 128, 20);
218
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
2 if (!float_near_abs_eps_array((INTFLOAT *)dst0, (INTFLOAT *)dst1, EPS, 128 * 2))
219 fail();
220
1/18
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
2 bench_new(dst1, high, g_filt, 128, 20);
221 2 }
222
223 14 static void test_hf_apply_noise(const SBRDSPContext *sbrdsp)
224 {
225 14 LOCAL_ALIGNED_16(AAC_FLOAT, s_m, [128]);
226 14 LOCAL_ALIGNED_16(AAC_FLOAT, q_filt, [128]);
227 14 LOCAL_ALIGNED_16(INTFLOAT, ref, [128], [2]);
228 14 LOCAL_ALIGNED_16(INTFLOAT, dst0, [128], [2]);
229 14 LOCAL_ALIGNED_16(INTFLOAT, dst1, [128], [2]);
230 14 int noise = 0x2a;
231 int i, j;
232
233 14 declare_func(void, INTFLOAT (*Y)[2], const AAC_FLOAT *s_m,
234 const AAC_FLOAT *q_filt, int noise,
235 int kx, int m_max);
236
237
2/2
✓ Branch 1 taken 3584 times.
✓ Branch 2 taken 14 times.
3598 randomize((INTFLOAT *)ref, 128 * 2);
238
239
2/2
✓ Branch 0 taken 1792 times.
✓ Branch 1 taken 14 times.
1806 for (int i = 0; i < 128; i++)
240
2/2
✓ Branch 1 taken 852 times.
✓ Branch 2 taken 940 times.
1792 s_m[i] = (rnd() & 1) ? ((INTFLOAT)rnd() / UINT_MAX) : (INTFLOAT)0;
241
242
2/2
✓ Branch 1 taken 1792 times.
✓ Branch 2 taken 14 times.
1806 randomize((INTFLOAT *)q_filt, 128);
243
244
2/2
✓ Branch 0 taken 56 times.
✓ Branch 1 taken 14 times.
70 for (i = 0; i < 4; i++) {
245
2/2
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 48 times.
56 if (check_func(sbrdsp->hf_apply_noise[i], "hf_apply_noise_%d", i)) {
246
2/2
✓ Branch 0 taken 16 times.
✓ Branch 1 taken 8 times.
24 for (j = 0; j < 2; j++) {
247 16 memcpy(dst0, ref, 128 * 2 * sizeof(INTFLOAT));
248 16 memcpy(dst1, ref, 128 * 2 * sizeof(INTFLOAT));
249
1/2
✗ Branch 2 not taken.
✓ Branch 3 taken 16 times.
16 call_ref(dst0, s_m, q_filt, noise, j, 128);
250 16 call_new(dst1, s_m, q_filt, noise, j, 128);
251
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 16 times.
16 if (!float_near_abs_eps_array((INTFLOAT *)dst0, (INTFLOAT *)dst1, EPS, 128 * 2))
252 fail();
253
1/18
✗ Branch 1 not taken.
✓ Branch 2 taken 16 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
16 bench_new(dst1, s_m, q_filt, noise, j, 128);
254 }
255 }
256 }
257 14 }
258
259 14 void checkasm_check_sbrdsp(void)
260 {
261 SBRDSPContext sbrdsp;
262
263 14 ff_sbrdsp_init(&sbrdsp);
264
265
2/2
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 12 times.
14 if (check_func(sbrdsp.sum64x5, "sum64x5"))
266 2 test_sum64x5();
267 14 report("sum64x5");
268
269
2/2
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 12 times.
14 if (check_func(sbrdsp.sum_square, "sum_square"))
270 2 test_sum_square();
271 14 report("sum_square");
272
273
2/2
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 12 times.
14 if (check_func(sbrdsp.neg_odd_64, "neg_odd_64"))
274 2 test_neg_odd_64();
275 14 report("neg_odd_64");
276
277
2/2
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 12 times.
14 if (check_func(sbrdsp.qmf_pre_shuffle, "qmf_pre_shuffle"))
278 2 test_qmf_pre_shuffle();
279 14 report("qmf_pre_shuffle");
280
281
2/2
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 12 times.
14 if (check_func(sbrdsp.qmf_post_shuffle, "qmf_post_shuffle"))
282 2 test_qmf_post_shuffle();
283 14 report("qmf_post_shuffle");
284
285
2/2
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 12 times.
14 if (check_func(sbrdsp.qmf_deint_neg, "qmf_deint_neg"))
286 2 test_qmf_deint_neg();
287 14 report("qmf_deint_neg");
288
289
2/2
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 12 times.
14 if (check_func(sbrdsp.qmf_deint_bfly, "qmf_deint_bfly"))
290 2 test_qmf_deint_bfly();
291 14 report("qmf_deint_bfly");
292
293
2/2
✓ Branch 1 taken 3 times.
✓ Branch 2 taken 11 times.
14 if (check_func(sbrdsp.autocorrelate, "autocorrelate"))
294 3 test_autocorrelate();
295 14 report("autocorrelate");
296
297
2/2
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 12 times.
14 if (check_func(sbrdsp.hf_gen, "hf_gen"))
298 2 test_hf_gen();
299 14 report("hf_gen");
300
301
2/2
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 12 times.
14 if (check_func(sbrdsp.hf_g_filt, "hf_g_filt"))
302 2 test_hf_g_filt();
303 14 report("hf_g_filt");
304
305 14 test_hf_apply_noise(&sbrdsp);
306 14 report("hf_apply_noise");
307 14 }
308