Commit Graph

2037 Commits

Author SHA1 Message Date
Mark Thompson
fbd63170bc cbs: Add test dependencies
Fixes the MPEG-2 failure with --disable-error-resilience.
2017-10-17 20:25:07 +01:00
Martin Storsjö
516c479172 checkasm: Test more h264 idct variants
Signed-off-by: Martin Storsjö <martin@martin.st>
2017-09-27 13:58:39 +03:00
Mark Thompson
3cae7f8b9b cbs: Add some read/write tests
Use the appropriate metadata filter for each codec - in the absence of any
options to modify the stream, the output bitstream should be identical to
the input (though the output file may differ in padding).

All tests use conformance bitstreams, the MPEG-2 streams are newly added
from the conformance test streams
<http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_IEC_13818-4_2004_Conformance_Testing/Video/>
2017-09-26 23:33:36 +01:00
Mark Thompson
b5859e0b04 mpeg12: Move finding the best frame rate to common code
Previously in the mpeg2_metadata filter.  Also adds a test.
2017-09-12 22:11:56 +01:00
Martin Storsjö
e12f1cd616 Revert "checkasm: Test more h264 idct variants"
This reverts commit 547db1eaec.

This commit wasn't supposed to be pushed (yet) since it hasn't
been reviewed.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-09-02 22:23:30 +03:00
Martin Storsjö
547db1eaec checkasm: Test more h264 idct variants 2017-08-31 14:55:34 +03:00
Martin Storsjö
39e16ee228 Revert "fate: Skip the checkasm test if CONFIG_STATIC is disabled"
When we use dllexport properly for shared libraries on windows,
there's no longer any issue with linking the object files for
e.g. libavcodec statically into checkasm. (It's still not possible
to link the built object files for e.g. libavformat statically to
libavcodec though, since libavformat exepcts to load av_export_*
symbols from a DLL.)

This reverts commit 4e62b57ee0.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-08-31 14:22:47 +03:00
Mark Thompson
4c0588b456 mpeg2enc: Don't mark all streams as component video
Since there is no information about the source format, "unspecified"
is the correct value to write here.

All tests using the MPEG-2 encoder are updated, as this changes the
header on all outputs.
2017-08-20 15:14:37 +01:00
Anton Khirnov
770cf1dbc2 fate/hevc: specify output pixel format explicitly
This allows running those tests with hwaccel.
2017-07-28 14:12:36 +02:00
Diego Biurrun
5be9939b46 fate: Add cinepak encoder vsynth tests 2017-07-05 13:05:54 +02:00
Martin Storsjö
7c35bee025 movenc-test: Add tests for negative cts offsets
Signed-off-by: Martin Storsjö <martin@martin.st>
2017-05-15 14:08:53 +03:00
Martin Storsjö
d05c9cde0e checkasm: aarch64: Specify alignment for the register_init const array
Loads from this strictly doesn't require alignment, but specify it
just for consistency with the arm version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-05-15 10:19:46 +03:00
Martin Storsjö
e00db9f78b checkasm: hevc: Add a hevc_ prefix to the add_residual functions
This makes it easier to group them with the rest when running e.g.
--bench=hevc.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-04-21 13:32:44 +03:00
Michael Niedermayer
ac29b82ec5 swscale: Add gbrap10 output
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-04-15 15:37:10 +02:00
Diego Biurrun
4d4d7cf9d5 fmvc: Add FATE tests 2017-04-13 12:35:47 +02:00
Diego Biurrun
dcc39ee10e lavc: Remove deprecated XvMC support hacks
Deprecated in 11/2013.
2017-03-23 10:09:14 +01:00
Diego Biurrun
b57a95d014 cfhd: Add FATE tests 2017-03-09 18:37:29 +01:00
Vittorio Giovara
a825980f9f mov: Export bounds and padding from spherical metadata
Update the fate test as needed.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2017-03-07 11:07:02 -05:00
Vittorio Giovara
b44bd7ee7f pixlet: Fix architecture-dependent code and values
The constants used in the decoder used floating point precision,
and this caused different values to be generated on different
architectures. Additionally on big endian machines, the fate test
would output bytes in native order, which is different from the one
hardcoded in the test.

So, eradicate floating point numbers and use fixed point (32.32)
arithmetics everywhere, replacing constants with precomputed integer
values, and force the pixel format output to be the same in the fate
test.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2017-03-06 18:15:02 -05:00
Paul B Mahol
aba5b94859 Add Apple Pixlet decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2017-03-01 11:52:29 -05:00
Diego Biurrun
db869f4ea4 fate: Add build-only targets to FATE 2017-03-01 11:06:52 +01:00
Diego Biurrun
39e208f4d4 build: Generalize yasm/nasm-related variable names
None of them are specific to the YASM assembler.
2017-03-01 10:18:15 +01:00
Diego Biurrun
7cb1d9e2db build: Fine-grained link-time dependency settings
Previously, all link-time dependencies were added for all libraries,
resulting in bogus link-time dependencies since not all dependencies
are shared across libraries. Also, in some cases like libavutil, not
all dependencies were taken into account, resulting in some cases of
underlinking.

To address all this mess a machinery is added for tracking which
dependency belongs to which library component and then leveraged
to determine correct dependencies for all individual libraries.
2017-03-01 09:00:40 +01:00
Diego Biurrun
e1a6d63c7e fate: Rename WMV8_DRM decoder tests to WMV3_DRM
The codec used in those files is WMV3/WMV9, not WMV2/WMV8.
2017-02-28 13:00:20 +01:00
Diego Biurrun
698ac8f9ca fate: Make null comparison method more useful
This allows dropping /dev/null as reference value when no output is generated.
2017-02-27 13:57:35 +01:00
Diego Biurrun
4141a5a240 Use modern avconv syntax for codec selection in documentation and tests 2017-02-27 10:36:45 +01:00
Diego Biurrun
da8093f712 fate: Use bitexact optimizations in the svq3-2 test
This fixes the test with mmxext disabled because the current reference
frame hashes correspond to the non-bitexact mmxext optimizations.
2017-02-27 10:36:44 +01:00
Diego Biurrun
8e4d4efc67 fate: Add another SVQ3 test to increase coverage 2017-02-24 10:59:42 +01:00
Luca Barbato
04d2afa93b mkv: Update the seek test to match 5d3953a5dc 2017-02-22 10:15:00 +01:00
John Stebbins
fec3456ce1 fate: Update fate-lavf-mkv after commit 5d3953a5dc 2017-02-21 21:04:25 -07:00
Mark Thompson
156bc0193b fate: Add webp alpha test 2017-02-21 23:19:08 +00:00
Martin Storsjö
4e62b57ee0 fate: Skip the checkasm test if CONFIG_STATIC is disabled
When building DLLs with MSVC, CONFIG_STATIC is disabled (see
d66c52c2b3 for a more verbose explanation) since the built
object files can't be linked statically (which checkasm does).

This worked up until recently, only by luck.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-01-09 13:57:02 +02:00
Martin Storsjö
eef860dd92 fate: Tweak printing of ignored tests
Use a tab instead of two spaces, skip the fate prefix for the test name.

This makes IGNORE line fit in even better with the other make printouts.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-12-29 21:50:20 +02:00
Martin Storsjö
5c83b4d550 fate: Unset the sig variable if ignoring a test failure
Otherwise the .rep file would still contain a signal instead of a
zero, even if the process returned success.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-12-29 21:50:07 +02:00
Janne Grunau
35d1f726eb fate: Add --ignore-tests configure option for omitting specific FATE tests
This can be useful to filter out noise in known-broken scenarios like
miscompilation by legacy compilers and similar.

Originally based on a patch by Diego Biurrun.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-12-28 18:10:32 +01:00
Diego Biurrun
11a9320de5 build: Move build-system-related helper files to a separate subdirectory
This unclutters the top-level directory and groups related files together.
2016-12-22 11:07:50 +01:00
Derek Buitenhuis
e94b9313b2 fate: Add h264 test for frame num gaps
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-12-14 11:01:50 +01:00
Wan-Teh Chang
2170017a1c avutil: fix data race in av_get_cpu_flags()
Make the one-time initialization in av_get_cpu_flags() thread-safe. The
static variables |flags|, |cpuflags_mask|, and |checked| in
libavutil/cpu.c are read and written using normal load and store
operations. These are considered as data races. The fix is to use atomic
load and store operations.

Remove the |checked| variable because the invalid value of -1 for
|flags| can be used to indicate the same condition. Rename |flags| to
|cpu_flags| and move it to file scope.

The fix can be verified by running the libavutil/tests/cpu_init.c test
program under ThreadSanitizer:
    ./configure --toolchain=clang-tsan
    make libavutil/tests/cpu_init
    libavutil/tests/cpu_init

There should be no warnings from ThreadSanitizer.

Co-author: Dmitry Vyukov of Google, who suggested the data race fix.

Signed-off-by: Wan-Teh Chang <wtc@google.com>
2016-12-08 15:53:58 -05:00
Vittorio Giovara
cf1cae58b0 fate: Add spherical and stereo3d mov tests 2016-12-07 14:35:08 -05:00
Diego Biurrun
3794062ab1 Remove Plan 9 support
Supporting the system was a nice joke for the 9 release, but it has
run its course. Nowadays Plan 9 receives no testing and has no
practical usefulness.
2016-12-03 09:15:01 +01:00
Martin Storsjö
9c8bc74c2b arm: vp9itxfm: Skip empty slices in the first pass of idct_idct 16x16 and 32x32
This work is sponsored by, and copyright, Google.

Previously all subpartitions except the eob=1 (DC) case ran with
the same runtime:

                                     Cortex A7       A8       A9      A53
vp9_inv_dct_dct_16x16_sub16_add_neon:   3188.1   2435.4   2499.0   1969.0
vp9_inv_dct_dct_32x32_sub32_add_neon:  18531.7  16582.3  14207.6  12000.3

By skipping individual 4x16 or 4x32 pixel slices in the first pass,
we reduce the runtime of these functions like this:

vp9_inv_dct_dct_16x16_sub1_add_neon:     274.6    189.5    211.7    235.8
vp9_inv_dct_dct_16x16_sub2_add_neon:    2064.0   1534.8   1719.4   1248.7
vp9_inv_dct_dct_16x16_sub4_add_neon:    2135.0   1477.2   1736.3   1249.5
vp9_inv_dct_dct_16x16_sub8_add_neon:    2446.7   1828.7   1993.6   1494.7
vp9_inv_dct_dct_16x16_sub12_add_neon:   2832.4   2118.3   2266.5   1735.1
vp9_inv_dct_dct_16x16_sub16_add_neon:   3211.7   2475.3   2523.5   1983.1
vp9_inv_dct_dct_32x32_sub1_add_neon:     756.2    456.7    862.0    553.9
vp9_inv_dct_dct_32x32_sub2_add_neon:   10682.2   8190.4   8539.2   6762.5
vp9_inv_dct_dct_32x32_sub4_add_neon:   10813.5   8014.9   8518.3   6762.8
vp9_inv_dct_dct_32x32_sub8_add_neon:   11859.6   9313.0   9347.4   7514.5
vp9_inv_dct_dct_32x32_sub12_add_neon:  12946.6  10752.4  10192.2   8280.2
vp9_inv_dct_dct_32x32_sub16_add_neon:  14074.6  11946.5  11001.4   9008.6
vp9_inv_dct_dct_32x32_sub20_add_neon:  15269.9  13662.7  11816.1   9762.6
vp9_inv_dct_dct_32x32_sub24_add_neon:  16327.9  14940.1  12626.7  10516.0
vp9_inv_dct_dct_32x32_sub28_add_neon:  17462.7  15776.1  13446.2  11264.7
vp9_inv_dct_dct_32x32_sub32_add_neon:  18575.5  17157.0  14249.3  12015.1

I.e. in general a very minor overhead for the full subpartition case due
to the additional loads and cmps, but a significant speedup for the cases
when we only need to process a small part of the actual input data.

In common VP9 content in a few inspected clips, 70-90% of the non-dc-only
16x16 and 32x32 IDCTs only have nonzero coefficients in the upper left
8x8 or 16x16 subpartitions respectively.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-11-30 23:54:07 +02:00
Ronald S. Bultje
06fec74cac checkasm: vp9dsp: benchmark all sub-IDCTs (but not WHT or ADST).
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-11-23 23:55:38 +02:00
Martin Storsjö
effc1430b2 Revert "checkasm: vp9dsp: Benchmark the dc-only version of idct_idct separately"
This reverts commit 81d7f0bbca.

Instead of just benchmarking dc separately, test all relevant subparts
(in the next commit).

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-11-23 23:55:26 +02:00
Martin Storsjö
286ab878bd fate.sh: Allow setting other make flags for running tests
If makeopts_fate is set, these makeopts are used for running the
tests instead of the normal makeopts. If it isn't set, the normal
makeopts variable is used as before.

This is useful if remote testing on a lesser machine where a large
number of parallel jobs might be undesireable, while wanting to speed
up the build with many parallel processes.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-11-23 15:05:51 +02:00
Vittorio Giovara
481ff3cf01 fate: Add h264 and hevc extradata reload tests
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-11-16 11:17:27 -05:00
Martin Storsjö
81d7f0bbca checkasm: vp9dsp: Benchmark the dc-only version of idct_idct separately
The dc-only mode is already checked to work correctly above, but this
allows benchmarking this mode for performance tuning, and allows making
sure that it actually is correctly hooked up.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-11-16 10:06:32 +02:00
Ronald S. Bultje
0b37cd09a6 checkasm: add vp9dsp.itxfm_add tests.
This includes fixes by Henrik Gramner.

The forward transforms are derived from the reference encoder.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-11-11 11:09:05 +02:00
Diego Biurrun
4537647c04 fate: checkasm: Split monolithic test into individual components 2016-11-08 17:32:25 +01:00
Diego Biurrun
9498237049 checkasm: Add --test parameter to check only specific components
Inspired by a patch from Martin Storsjö <martin@martin.st>.
2016-11-08 17:32:25 +01:00
Luca Barbato
ab839054e6 swscale: Add GRAY12 2016-11-07 22:42:00 +01:00