FFmpeg
tests
checkasm
vorbisdsp.c
Go to the documentation of this file.
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 <
float.h
>
20
21
#include "
libavutil/mem_internal.h
"
22
23
#include "
libavcodec/vorbisdsp.h
"
24
25
#include "
checkasm.h
"
26
27
#define LEN 512
28
29
static
void
test_inverse_coupling
(
void
)
30
{
31
LOCAL_ALIGNED_16
(
float
,
src0
, [
LEN
]);
32
LOCAL_ALIGNED_16
(
float
,
src1
, [
LEN
]);
33
LOCAL_ALIGNED_16
(
float
, cdst, [
LEN
]);
34
LOCAL_ALIGNED_16
(
float
, odst, [
LEN
]);
35
LOCAL_ALIGNED_16
(
float
, cdst1, [
LEN
]);
36
LOCAL_ALIGNED_16
(
float
, odst1, [
LEN
]);
37
38
declare_func
(
void
,
float
*restrict mag,
float
*restrict ang,
39
ptrdiff_t blocksize);
40
41
randomize_stddev
(
src0
,
LEN
, 10.0);
42
randomize_stddev
(
src1
,
LEN
, 10.0);
43
44
memcpy(cdst,
src0
,
LEN
*
sizeof
(*
src0
));
45
memcpy(cdst1,
src1
,
LEN
*
sizeof
(*
src1
));
46
memcpy(odst,
src0
,
LEN
*
sizeof
(*
src0
));
47
memcpy(odst1,
src1
,
LEN
*
sizeof
(*
src1
));
48
49
call_ref
(cdst, cdst1,
LEN
);
50
call_new
(odst, odst1,
LEN
);
51
for
(
int
i
= 0;
i
<
LEN
;
i
++) {
52
if
(!
float_near_abs_eps
(cdst[
i
], odst[
i
], FLT_EPSILON) ||
53
!
float_near_abs_eps
(cdst1[
i
], odst1[
i
], FLT_EPSILON)) {
54
fprintf(stderr,
"%d: %- .12f - %- .12f = % .12g\n"
,
55
i
, cdst[
i
], odst[
i
], cdst[
i
] - odst[
i
]);
56
fprintf(stderr,
"%d: %- .12f - %- .12f = % .12g\n"
,
57
i
, cdst1[
i
], odst1[
i
], cdst1[
i
] - odst1[
i
]);
58
fail
();
59
break
;
60
}
61
}
62
bench_new
(
src0
,
src1
,
LEN
);
63
}
64
65
void
checkasm_check_vorbisdsp
(
void
)
66
{
67
VorbisDSPContext
dsp;
68
69
ff_vorbisdsp_init
(&dsp);
70
71
if
(
check_func
(dsp.
vorbis_inverse_coupling
,
"inverse_coupling"
))
72
test_inverse_coupling
();
73
report
(
"inverse_coupling"
);
74
}
checkasm_check_vorbisdsp
void checkasm_check_vorbisdsp(void)
Definition:
vorbisdsp.c:65
mem_internal.h
src1
const pixel * src1
Definition:
h264pred_template.c:420
check_func
#define check_func
Definition:
test.h:480
float.h
bench_new
#define bench_new
Definition:
test.h:486
call_ref
#define call_ref
Definition:
test.h:484
checkasm.h
VorbisDSPContext
Definition:
vorbisdsp.h:24
LEN
#define LEN
Definition:
vorbisdsp.c:27
declare_func
#define declare_func
Definition:
test.h:488
LOCAL_ALIGNED_16
#define LOCAL_ALIGNED_16(t, v,...)
Definition:
mem_internal.h:130
fail
#define fail
Definition:
test.h:478
float_near_abs_eps
#define float_near_abs_eps
Definition:
utils.h:371
VorbisDSPContext::vorbis_inverse_coupling
void(* vorbis_inverse_coupling)(float *mag, float *ang, ptrdiff_t blocksize)
Definition:
vorbisdsp.h:26
i
#define i(width, name, range_min, range_max)
Definition:
cbs_h264.c:63
vorbisdsp.h
call_new
#define call_new
Definition:
test.h:485
test_inverse_coupling
static void test_inverse_coupling(void)
Definition:
vorbisdsp.c:29
ff_vorbisdsp_init
av_cold void ff_vorbisdsp_init(VorbisDSPContext *dsp)
Definition:
vorbisdsp.c:46
src0
const pixel *const src0
Definition:
h264pred_template.c:419
report
#define report
Definition:
test.h:479
randomize_stddev
#define randomize_stddev(buf, size, stddev)
Definition:
checkasm.h:140
Generated on Fri Jul 17 2026 19:22:51 for FFmpeg by
1.8.17