FFmpeg
Loading...
Searching...
No Matches
checkasm.h
Go to the documentation of this file.
1/*
2 * Assembly testing and benchmarking tool
3 * Copyright (c) 2015 Henrik Gramner
4 * Copyright (c) 2008 Loren Merritt
5 *
6 * This file is part of FFmpeg.
7 *
8 * FFmpeg is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * FFmpeg is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License along
19 * with FFmpeg; if not, write to the Free Software Foundation, Inc.,
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 */
22
23#ifndef TESTS_CHECKASM_CHECKASM_H
24#define TESTS_CHECKASM_CHECKASM_H
25
26#include <stdint.h>
27#include <checkasm/test.h>
28#include <checkasm/utils.h>
29
30#include "libavutil/cpu.h"
31#include "libavutil/internal.h"
32
35void checkasm_check_ac3dsp(void);
36void checkasm_check_aes(void);
37void checkasm_check_afir(void);
38void checkasm_check_alacdsp(void);
39void checkasm_check_apv_dsp(void);
41void checkasm_check_av_tx(void);
43void checkasm_check_blend(void);
46void checkasm_check_cavsdsp(void);
49void checkasm_check_crc(void);
50void checkasm_check_dcadsp(void);
52void checkasm_check_exrdsp(void);
53void checkasm_check_fdctdsp(void);
55void checkasm_check_flacdsp(void);
58void checkasm_check_g722dsp(void);
59void checkasm_check_h263dsp(void);
61void checkasm_check_h264dsp(void);
71void checkasm_check_hpeldsp(void);
74void checkasm_check_idctdsp(void);
75void checkasm_check_idet(void);
78void checkasm_check_lls(void);
81void checkasm_check_lpc(void);
82void checkasm_check_motion(void);
86void checkasm_check_nlmeans(void);
87void checkasm_check_opusdsp(void);
90void checkasm_check_png(void);
91void checkasm_check_qpeldsp(void);
92void checkasm_check_sbcdsp(void);
93void checkasm_check_sbrdsp(void);
94void checkasm_check_rv34dsp(void);
95void checkasm_check_rv40dsp(void);
97void checkasm_check_snowdsp(void);
98void checkasm_check_svq1enc(void);
100void checkasm_check_sw_gbrp(void);
102void checkasm_check_sw_rgb(void);
103void checkasm_check_sw_scale(void);
107void checkasm_check_sw_ops(void);
108void checkasm_check_takdsp(void);
112void checkasm_check_v210dec(void);
113void checkasm_check_v210enc(void);
114void checkasm_check_vc1dsp(void);
115void checkasm_check_vf_bwdif(void);
116void checkasm_check_vf_eq(void);
117void checkasm_check_vf_fspp(void);
118void checkasm_check_vf_gblur(void);
119void checkasm_check_vf_hflip(void);
120void checkasm_check_vf_pp7(void);
122void checkasm_check_vf_sobel(void);
123void checkasm_check_vp3dsp(void);
124void checkasm_check_vp6dsp(void);
125void checkasm_check_vp8dsp(void);
126void checkasm_check_vp9dsp(void);
127void checkasm_check_videodsp(void);
128void checkasm_check_vorbisdsp(void);
129void checkasm_check_vvc_alf(void);
130void checkasm_check_vvc_mc(void);
131void checkasm_check_vvc_sao(void);
132
133void checkasm_uninit_crc(void);
134void checkasm_uninit_tx(void);
135
136#define rnd checkasm_rand_uint32
137#define declare_func_float declare_func
138#define bench(...) checkasm_bench(__VA_ARGS__)
139
140#define randomize_stddev(buf, size, stddev) \
141 checkasm_randomize_distf(buf, size, (CheckasmDist){ 0.0, stddev })
142#define randomize_stddev_dbl(buf, size, stddev) \
143 checkasm_randomize_dist(buf, size, (CheckasmDist){ 0.0, stddev })
144
145#define PIXEL_RECT(name, w, h) \
146 BUF_RECT(uint16_t, name##_16, w, h); \
147 av_unused ptrdiff_t name##_stride = name##_16_stride; \
148 av_unused int name##_buf_h = name##_16_buf_h; \
149 av_unused uint8_t* name##_buf = (uint8_t*)name##_16_buf; \
150 uint8_t* name = (uint8_t*)name##_16
151
152#define CLEAR_PIXEL_RECT(name) CLEAR_BUF_RECT(name##_16)
153
154/* This assumes that there is a local variable named "bit_depth".
155 * For tests that don't have that and only operate on a single
156 * bitdepth, just call checkasm_check(uint8_t, ...) directly. */
157#define checkasm_check_pixel2(buf1, stride1, buf2, stride2, ...) \
158 ((bit_depth > 8) ? \
159 checkasm_check2(uint16_t, (const uint16_t*)buf1, stride1, \
160 (const uint16_t*)buf2, stride2, \
161 __VA_ARGS__) : \
162 checkasm_check2(uint8_t, (const uint8_t*) buf1, stride1, \
163 (const uint8_t*) buf2, stride2, \
164 __VA_ARGS__))
165#define checkasm_check_pixel(...) \
166 checkasm_check_pixel2(__VA_ARGS__, 0, 0, 0)
167#define checkasm_check_pixel_padded(...) \
168 checkasm_check_pixel2(__VA_ARGS__, 1, 1, 8)
169#define checkasm_check_pixel_padded_align(...) \
170 checkasm_check_pixel2(__VA_ARGS__, 8)
171
172/* This assumes that there is a local variable named "bit_depth"
173 * and that the type-specific buffers obey the name ## _BITDEPTH
174 * convention.
175 * For tests that don't have that and only operate on a single
176 * bitdepth, just call checkasm_check(uint8_t, ...) directly. */
177#define checkasm_check_dctcoef(buf1, stride1, buf2, stride2, ...) \
178 ((bit_depth > 8) ? \
179 checkasm_check(int32_t, buf1 ## _32, stride1, \
180 buf2 ## _32, stride2, \
181 __VA_ARGS__) : \
182 checkasm_check(int16_t, buf1 ## _16, stride1, \
183 buf2 ## _16, stride2, \
184 __VA_ARGS__))
185
186typedef uint8_t pixel;
187
188#endif /* TESTS_CHECKASM_CHECKASM_H */
#define pixel
void checkasm_check_mpegvideo_unquantize(void)
void checkasm_check_qpeldsp(void)
Definition qpeldsp.c:53
void checkasm_check_h264dsp(void)
Definition h264dsp.c:503
void checkasm_check_huffyuvencdsp(void)
void checkasm_check_opusdsp(void)
Definition opusdsp.c:88
void checkasm_check_hevc_sao(void)
Definition hevc_sao.c:136
void checkasm_check_sw_gbrp(void)
Definition sw_gbrp.c:398
void checkasm_check_hevc_idct(void)
Definition hevc_idct.c:108
void checkasm_check_aes(void)
Definition aes.c:30
void checkasm_check_rv40dsp(void)
Definition rv40dsp.c:71
void checkasm_check_hpeldsp(void)
Definition hpeldsp.c:54
void checkasm_check_huffyuvdsp(void)
Definition huffyuvdsp.c:137
void checkasm_check_sw_rgb(void)
Definition sw_rgb.c:808
void checkasm_check_llvidencdsp(void)
void checkasm_check_flacdsp(void)
Definition flacdsp.c:181
void checkasm_check_crc(void)
Definition crc.c:83
void checkasm_check_nlmeans(void)
Definition vf_nlmeans.c:36
void checkasm_check_bswapdsp(void)
Definition bswapdsp.c:60
void checkasm_check_mpeg4videodsp(void)
void checkasm_check_aacencdsp(void)
Definition aacencdsp.c:100
void checkasm_check_dcadsp(void)
Definition dcadsp.c:109
void checkasm_check_h264qpel(void)
Definition h264qpel.c:51
void checkasm_check_colorspace(void)
void checkasm_check_h263dsp(void)
Definition h263dsp.c:54
void checkasm_check_idet(void)
Definition vf_idet.c:58
void checkasm_check_blend(void)
Definition vf_blend.c:89
void checkasm_check_pixblockdsp(void)
Definition pixblockdsp.c:82
void checkasm_check_vf_sobel(void)
void checkasm_check_cavsdsp(void)
Definition cavsdsp.c:117
void checkasm_check_motion(void)
Definition motion.c:139
void checkasm_check_h264pred(void)
Definition h264pred.c:234
void checkasm_check_vp8dsp(void)
Definition vp8dsp.c:511
void checkasm_check_llviddsp(void)
Definition llviddsp.c:190
void checkasm_check_vf_pp7(void)
Definition vf_pp7.c:59
void checkasm_check_takdsp(void)
Definition takdsp.c:145
void checkasm_check_rv34dsp(void)
Definition rv34dsp.c:129
void checkasm_check_float_dsp(void)
Definition float_dsp.c:286
void checkasm_check_idctdsp(void)
Definition idctdsp.c:95
void checkasm_check_sbcdsp(void)
Definition sbcdsp.c:109
void checkasm_check_audiodsp(void)
Definition audiodsp.c:52
void checkasm_check_vf_fspp(void)
Definition vf_fspp.c:165
void checkasm_check_exrdsp(void)
Definition exrdsp.c:77
void checkasm_check_h264chroma(void)
Definition h264chroma.c:83
void checkasm_check_hevc_dequant(void)
void checkasm_check_g722dsp(void)
Definition g722dsp.c:53
void checkasm_check_afir(void)
Definition af_afir.c:134
void checkasm_check_sw_ops(void)
Definition sw_ops.c:673
void checkasm_check_ac3dsp(void)
Definition ac3dsp.c:193
void checkasm_uninit_tx(void)
Definition av_tx.c:49
void checkasm_check_v210dec(void)
Definition v210dec.c:47
void checkasm_check_ttaencdsp(void)
void checkasm_check_blackdetect(void)
void checkasm_check_vf_bwdif(void)
Definition vf_bwdif.c:72
void checkasm_check_ttadsp(void)
void checkasm_check_scene_sad(void)
Definition scene_sad.c:66
void checkasm_check_fixed_dsp(void)
Definition fixed_dsp.c:133
void checkasm_check_sw_range_convert(void)
void checkasm_check_vvc_sao(void)
Definition vvc_sao.c:134
void checkasm_check_hevc_pred(void)
Definition hevc_pred.c:302
void checkasm_check_diracdsp(void)
Definition diracdsp.c:88
void checkasm_check_blockdsp(void)
Definition blockdsp.c:78
void checkasm_check_fmtconvert(void)
Definition fmtconvert.c:46
void checkasm_check_alacdsp(void)
Definition alacdsp.c:116
void checkasm_check_lpc(void)
Definition lpc.c:96
void checkasm_check_jpeg2000dsp(void)
Definition jpeg2000dsp.c:92
void checkasm_check_av_tx(void)
Definition av_tx.c:101
void checkasm_check_sw_yuv2yuv(void)
Definition sw_yuv2yuv.c:130
void checkasm_check_vf_eq(void)
Definition vf_eq.c:76
void checkasm_check_llauddsp(void)
Definition llauddsp.c:108
void checkasm_check_vf_threshold(void)
void checkasm_check_svq1enc(void)
Definition svq1enc.c:63
void checkasm_check_sw_scale(void)
Definition sw_scale.c:460
void checkasm_check_aacpsdsp(void)
Definition aacpsdsp.c:236
void checkasm_check_vp9dsp(void)
Definition vp9dsp.c:627
void checkasm_check_utvideodsp(void)
Definition utvideodsp.c:90
void checkasm_check_v210enc(void)
Definition v210enc.c:83
void checkasm_check_vc1dsp(void)
Definition vc1dsp.c:518
void checkasm_check_hevc_deblock(void)
void checkasm_check_hevc_pel(void)
Definition hevc_pel.c:621
void checkasm_check_vvc_mc(void)
Definition vvc_mc.c:471
void checkasm_check_hevc_add_res(void)
void checkasm_check_mpegvideoencdsp(void)
void checkasm_check_apv_dsp(void)
Definition apv_dsp.c:61
void checkasm_check_vorbisdsp(void)
Definition vorbisdsp.c:67
void checkasm_check_colordetect(void)
void checkasm_check_vf_gblur(void)
Definition vf_gblur.c:82
void checkasm_check_synth_filter(void)
void checkasm_check_snowdsp(void)
Definition snowdsp.c:136
void checkasm_check_vp6dsp(void)
Definition vp6dsp.c:39
void checkasm_check_png(void)
Definition png.c:107
void checkasm_check_vp3dsp(void)
Definition vp3dsp.c:193
void checkasm_check_sw_yuv2rgb(void)
Definition sw_yuv2rgb.c:251
void checkasm_check_vvc_alf(void)
Definition vvc_alf.c:178
void checkasm_check_vf_hflip(void)
Definition vf_hflip.c:72
void checkasm_check_fdctdsp(void)
Definition fdctdsp.c:67
void checkasm_check_sbrdsp(void)
Definition sbrdsp.c:259
void checkasm_check_lls(void)
Definition lls.c:76
void checkasm_check_videodsp(void)
Definition videodsp.c:80
void checkasm_check_pixelutils(void)
Definition pixelutils.c:95
void checkasm_check_sw_xyz2rgb(void)
Definition sw_xyz2rgb.c:104
void checkasm_uninit_crc(void)
Definition crc.c:48
common internal API header
Test writing API for checkasm.
Utility functions for checkasm tests.