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);
42void checkasm_check_base64(void);
44void checkasm_check_blend(void);
47void checkasm_check_cavsdsp(void);
50void checkasm_check_crc(void);
51void checkasm_check_dcadsp(void);
53void checkasm_check_exrdsp(void);
54void checkasm_check_fdctdsp(void);
56void 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);
92void checkasm_check_qpeldsp(void);
93void checkasm_check_sbcdsp(void);
94void checkasm_check_sbrdsp(void);
95void checkasm_check_rv34dsp(void);
96void checkasm_check_rv40dsp(void);
98void checkasm_check_snowdsp(void);
99void checkasm_check_svq1enc(void);
101void checkasm_check_sw_gbrp(void);
103void checkasm_check_sw_rgb(void);
104void checkasm_check_sw_scale(void);
108void checkasm_check_sw_ops(void);
109void checkasm_check_takdsp(void);
113void checkasm_check_v210dec(void);
114void checkasm_check_v210enc(void);
115void checkasm_check_vc1dsp(void);
116void checkasm_check_vf_bwdif(void);
117void checkasm_check_vf_eq(void);
118void checkasm_check_vf_fspp(void);
119void checkasm_check_vf_gblur(void);
120void checkasm_check_vf_hflip(void);
121void checkasm_check_vf_pp7(void);
123void checkasm_check_vf_sobel(void);
124void checkasm_check_vp3dsp(void);
125void checkasm_check_vp6dsp(void);
126void checkasm_check_vp8dsp(void);
127void checkasm_check_vp9dsp(void);
128void checkasm_check_videodsp(void);
129void checkasm_check_vorbisdsp(void);
130void checkasm_check_vvc_alf(void);
131void checkasm_check_vvc_mc(void);
132void checkasm_check_vvc_sao(void);
133
134void checkasm_uninit_crc(void);
135void checkasm_uninit_tx(void);
136
137#define rnd checkasm_rand_uint32
138#define declare_func_float declare_func
139#define bench(...) checkasm_bench(__VA_ARGS__)
140
141#define randomize_stddev(buf, size, stddev) \
142 checkasm_randomize_distf(buf, size, (CheckasmDist){ 0.0, stddev })
143#define randomize_stddev_dbl(buf, size, stddev) \
144 checkasm_randomize_dist(buf, size, (CheckasmDist){ 0.0, stddev })
145
146#define PIXEL_RECT(name, w, h) \
147 BUF_RECT(uint16_t, name##_16, w, h); \
148 av_unused ptrdiff_t name##_stride = name##_16_stride; \
149 av_unused int name##_buf_h = name##_16_buf_h; \
150 av_unused uint8_t* name##_buf = (uint8_t*)name##_16_buf; \
151 uint8_t* name = (uint8_t*)name##_16
152
153#define CLEAR_PIXEL_RECT(name) CLEAR_BUF_RECT(name##_16)
154
155/* This assumes that there is a local variable named "bit_depth".
156 * For tests that don't have that and only operate on a single
157 * bitdepth, just call checkasm_check(uint8_t, ...) directly. */
158#define checkasm_check_pixel2(buf1, stride1, buf2, stride2, ...) \
159 ((bit_depth > 8) ? \
160 checkasm_check2(uint16_t, (const uint16_t*)buf1, stride1, \
161 (const uint16_t*)buf2, stride2, \
162 __VA_ARGS__) : \
163 checkasm_check2(uint8_t, (const uint8_t*) buf1, stride1, \
164 (const uint8_t*) buf2, stride2, \
165 __VA_ARGS__))
166#define checkasm_check_pixel(...) \
167 checkasm_check_pixel2(__VA_ARGS__, 0, 0, 0)
168#define checkasm_check_pixel_padded(...) \
169 checkasm_check_pixel2(__VA_ARGS__, 1, 1, 8)
170#define checkasm_check_pixel_padded_align(...) \
171 checkasm_check_pixel2(__VA_ARGS__, 8)
172
173/* This assumes that there is a local variable named "bit_depth"
174 * and that the type-specific buffers obey the name ## _BITDEPTH
175 * convention.
176 * For tests that don't have that and only operate on a single
177 * bitdepth, just call checkasm_check(uint8_t, ...) directly. */
178#define checkasm_check_dctcoef(buf1, stride1, buf2, stride2, ...) \
179 ((bit_depth > 8) ? \
180 checkasm_check(int32_t, buf1 ## _32, stride1, \
181 buf2 ## _32, stride2, \
182 __VA_ARGS__) : \
183 checkasm_check(int16_t, buf1 ## _16, stride1, \
184 buf2 ## _16, stride2, \
185 __VA_ARGS__))
186
187typedef uint8_t pixel;
188
189#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:624
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:216
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_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:495
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_proresdsp(void)
Definition proresdsp.c:69
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_check_base64(void)
Definition base64.c:71
void checkasm_uninit_crc(void)
Definition crc.c:48
common internal API header
Test writing API for checkasm.
Utility functions for checkasm tests.