1
mirror of https://code.videolan.org/videolan/dav1d synced 2024-11-14 22:58:33 +01:00
Commit Graph

78 Commits

Author SHA1 Message Date
Martin Storsjö
9dcdf20ce9 checkasm: Fix building with some bitdepths disabled 2018-10-19 10:02:11 +02:00
Martin Storsjö
38da7af64e checkasm: Include windows.h for the MSVC ARM64 readtime macro 2018-10-19 10:22:03 +03:00
Ronald S. Bultje
1f32abd286 Add infrastructure for LR SIMD and unit tests.
wiener_luma_8bpc_c: 326272.1
wiener_luma_8bpc_avx2: 19841.5

Decoding time of first 1000 frames of Chimera-8bit-1920x1080.ivf goes
from 27.471 to 23.558 seconds.
2018-10-17 08:48:58 -07:00
Martin Storsjö
7d3cebc419 checkasm: Don't use readtime for checkasm seed
On ARM, the readtime implementations are instructions that might
not always be allowed at runtime (depending on whether the kernel
has allowed user mode code to access the cycle counter registers).
In order to allow building checkasm with the option for benchmarking,
while still running on devices where benchmarking isn't possible,
don't use readtime anywhere unless --bench has been specified.

Use GetTickCount for the seed on windows, and gettimeofday on unix.
2018-10-13 22:09:08 +03:00
Martin Storsjö
d9b1ca877f checkasm: Add code for reading ARM cycle counter registers 2018-10-13 22:09:08 +03:00
Henrik Gramner
53389fcda5 checkasm: Add unit tests for intra prediction 2018-10-08 15:35:54 +02:00
Ronald S. Bultje
24effd4762 Add horizontal loopfilter to unit test 2018-10-08 08:57:48 -04:00
Ronald S. Bultje
bf7a4786bf Rewrite horizontal loopfilter
Loop inside SIMD (instead of in the caller) so that we can handle
multiple 4px blocks per iteration, allowing for more efficient
SIMD. To make this easier, also transpose the masks for the hor
filter.
2018-10-08 08:57:48 -04:00
Ronald S. Bultje
04b70ea56d Add vertical loopfilter AVX2 SIMD 2018-10-08 08:57:45 -04:00
Ronald S. Bultje
a146437d88 Add vertical loopfilter unit test 2018-10-08 08:46:48 -04:00
Henrik Gramner
42fc47242b checkasm: Fix itx coef input ranges
Input coefficients for transforms of sizes 16x32/32x16 and above were
larger than they should be, which in rare cases could cause tests to
incorrectly fail.
2018-10-08 13:23:23 +02:00
Janne Grunau
7e693a1d26 fuzzer: fix ivf parsing 2018-10-05 16:06:19 +02:00
Janne Grunau
e664029a46 fuzzer: use only external API and do not depend on config.h
Makes building under oss-fuzz easier.
2018-10-05 16:06:19 +02:00
Janne Grunau
a8d24ea168 API: always unref input buffer after consuming it completely 2018-10-04 19:08:33 +02:00
Henrik Gramner
9923967842 Correctly use dav1d_ prefix for global symbols 2018-10-04 14:06:10 +02:00
Janne Grunau
858689e1df tests: add libfuzzer test target
Disabled by default, enabble with `meson -Dbuild_libfuzzer=true -Db_lundef=false ...`.
Fuzz target improved by the paralell work by Thierry Foucu in !138.
2018-10-03 16:15:35 +02:00
Henrik Gramner
58caeed2ff checkasm: Add inverse transform unit tests 2018-10-03 15:03:47 +02:00
Marvin Scholz
9684908d2f Build: Fix static library building
Due to bugs in meson the approach with the intermediate static library
for tests does not work very well, see #44. Therefore this commits
removes that helper library and instead uses extract_all_objects for
the tests.

Due to the removal of the static helper library, it means we can no
longer force static linking for dav1d tool on windows which means that
when building a shared library the dav1d.exe will not be runnable in
the build directory again.

Fix #44
2018-10-02 11:39:43 +02:00
Martin Storsjö
bfbbf1413f checkasm: Define the default call_new if not using a checked_call wrapper
We support building for iOS/ARM64, but the aarch64 checked_call
wrapper is skipped in that case.
2018-09-30 22:54:42 +03:00
Marvin Scholz
b12445523d Fix include order of config.h 2018-09-29 19:58:23 +02:00
Janne Grunau
35e777f378 build: add support for arm/aarch64 asm and integrate checkasm 2018-09-29 17:22:24 +02:00
Marvin Scholz
604e62c987 checkasm: Fix comparison of different int signs
Casting here should be safe as the case name_length < 0 is already
checked before.
2018-09-29 15:37:49 +02:00
Marvin Scholz
b8be5f6439 checkasm: Fix missing-field-initializers warnings 2018-09-29 15:37:49 +02:00
Marvin Scholz
a6ada33b97 Build: Add missing license header 2018-09-29 12:41:26 +02:00
Marvin Scholz
bebe5ec8de Build: Add option to disable building tests 2018-09-29 12:41:11 +02:00
Marvin Scholz
afa5479f82 Build: Add checkasm test 2018-09-28 18:17:42 +02:00
Henrik Gramner
190da6aeda checkasm: Add MC unit test 2018-09-28 18:12:56 +02:00
Henrik Gramner
f2ee7a2a43 Add 'checkasm' asm testing/benchmarking framework
Some of the code originally written by, or based by code written by,
the following authors who have agreed to relicense it to 2-clause BSD:

  Anton Mitrofanov
  Diego Biurrun
  Janne Grunau
  Loren Merritt
  Luca Barbato
  Martin Storsjö
  Michael Niedermayer
2018-09-28 18:12:56 +02:00