FFmpeg coverage


Directory: ../../../ffmpeg/
File: src/tests/checkasm/apv_dsp.c
Date: 2026-04-22 13:46:37
Exec Total Coverage
Lines: 20 21 95.2%
Functions: 2 2 100.0%
Branches: 6 14 42.9%

Line Branch Exec Source
1 /*
2 * This file is part of FFmpeg.
3 *
4 * FFmpeg is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (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 GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with FFmpeg; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18
19 #include <stdint.h>
20
21 #include "checkasm.h"
22
23 #include "libavutil/attributes.h"
24 #include "libavutil/mem_internal.h"
25 #include "libavcodec/apv_dsp.h"
26
27 2 static void check_decode_transquant_10(void)
28 {
29 2 LOCAL_ALIGNED_16( int16_t, input, [64]);
30 2 LOCAL_ALIGNED_16( int16_t, qmatrix, [64]);
31 2 LOCAL_ALIGNED_16(uint16_t, new_output, [64]);
32 2 LOCAL_ALIGNED_16(uint16_t, ref_output, [64]);
33
34 2 declare_func(void,
35 void *output,
36 ptrdiff_t pitch,
37 const int16_t *input,
38 const int16_t *qmatrix,
39 int bit_depth,
40 int qp_shift);
41
42
2/2
✓ Branch 0 taken 128 times.
✓ Branch 1 taken 2 times.
130 for (int i = 0; i < 64; i++) {
43 // Any signed 14-bit integer.
44 128 input[i] = rnd() % 16384 - 8192;
45
46 // qmatrix input is premultiplied by level_scale, so
47 // range is 1 to 255 * 71. Interesting values are all
48 // at the low end of that, though.
49 128 qmatrix[i] = 16; //rnd() % 16 + 16;
50 }
51
52 2 call_ref(ref_output, 16, input, qmatrix, 10, 4);
53 2 call_new(new_output, 16, input, qmatrix, 10, 4);
54
55
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
2 if (memcmp(new_output, ref_output, 64 * sizeof(*ref_output)))
56 fail();
57
58
1/8
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
2 bench_new(new_output, 16, input, qmatrix, 10, 4);
59 2 }
60
61 14 void checkasm_check_apv_dsp(void)
62 {
63 APVDSPContext dsp;
64
65 14 ff_apv_dsp_init(&dsp);
66
67
2/2
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 12 times.
14 if (check_func(dsp.decode_transquant, "decode_transquant_10"))
68 2 check_decode_transquant_10();
69
70 14 report("decode_transquant");
71 14 }
72