summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAge
* fate/aacenc: increase tolerance for ln-128k testLynne2022-11-24
| | | | | | | | | | | The encoder is sensitive to changes in precision, and its test target was a compromise. It was already close to failing on x87 FPUs. ff_mdct_init used double precision entirely from the scale to computing the MDCT exp tables. av_tx_init uses single-precision for the scale, with a small input change which was enough to tip the test into failing on x87 FPUs. Increase the fuzz factor in line with other AAC encoder tests to fix.
* fate: Mark the tiff-zip-* tests as requiring zlibMartin Storsjö2022-11-17
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec/tiff: add read support for compressed rgb floating point formatsMark Reid2022-11-16
| | | | | | | floating point uses a slightly different predictor technique describe here http://chriscox.org/TIFFTN3d1.pdf Signed-off-by: Anton Khirnov <anton@khirnov.net>
* libavfilter/x86/vf_convolution: add sobel filter optimization and unit test ↵bwang302022-11-14
| | | | | | | | | | | | with intel AVX512 VNNI This commit enabled assembly code with intel AVX512 VNNI and added unit test for sobel filter sobel_c: 4537 sobel_avx512icl 2136 Signed-off-by: bwang30 <bin.wang@intel.com> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* fate/video: vqc testcasePeter Ross2022-11-07
|
* fate/audio: msnsiren test casePeter Ross2022-11-07
|
* fate/microsoft: add mss2 region test casePeter Ross2022-11-07
|
* imc: convert to lavu/tx, remove NIH iMDCT and replace with a standard oneLynne2022-11-06
|
* dcaenc: convert to lavu/txLynne2022-11-06
| | | | | | The encoder is fixed point, and uses an MDCT only for analysis. Due to the slightly different rounding, the encoder makes a different decision, so the tests have to be adjusted as well.
* dca_core: convert to lavu/txLynne2022-11-06
| | | | | Thanks to Martin Storsjö <martin@martin.st> for fixing and testing the arm32 and aarch64 changes.
* aacdec: convert to lavu/tx and support fixed-point 960-sample decodingLynne2022-11-06
| | | | | | | | | | | This patch replaces the transform used in AAC with lavu/tx and removes the limitation on only being able to decode 960-sample files with the float decoder. This commit also removes a whole bunch of unnecessary and slow lifting steps the decoder did to compensate for the poor accuracy of the old integer transformation code. Overall float decoder speedup on Zen 3 for 64kbps: 32%
* ac3: convert to lavu/txLynne2022-11-06
|
* checkasm: add a verbose check function for uint32_t dataJames Darnley2022-11-04
|
* avutil/channel_layout: add a 7.1(top) channel layoutJames Almer2022-11-03
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/tests/imf: add CPL timecode testPierre-Anthony Lemieux2022-11-03
|
* avcodec/svq1: fix interframe mean VLC symbolsPeter Ross2022-11-01
| | | | | | | | | | | | | | | | | | Fixes ticket #128. The SVQ1 interframe mean VLC symbols -128 and 128 are incorrectly swapped in our SVQ1 implementation, resulting in visible artifacts for some videos. This patch unswaps the order of these two symbols. The most noticable example of the artiacts caused by this error can be observed in https://trac.ffmpeg.org/attachment/ticket/128/svq1_set.7z '352_288_k_50.mov'. The artifacts are not observed when using the reference decoder (QuickTime 7.7.9 x86 binary). As a result of this patch, the reference data for the fate-svq1 test ($SAMPLES/svq1/marymary-shackles.mov) must be modified. For this file, our decoder output is now bitwise identical to the reference decoder. I have tested patch with various other samples and they are all now bitwise identical.
* avcodec/svq1enc: output ident string in extradata fieldPeter Ross2022-11-01
| | | | | This will enable the acurate identification of FFmpeg produced SVQ1 streams, should there be new bugs found in the encoder.
* avcodec/svq1enc: do not use ambiguous interframe mean symbolsPeter Ross2022-11-01
| | | | Don't emit interframe mean symbols -128 and 128.
* avutil/channel_layout: add a cube channel layoutJames Almer2022-10-30
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* ffmpeg: Add display_{rotation, hflip, vflip} optionsJan Ekström2022-10-19
| | | | | | | | | This enables overriding the rotation as well as horizontal/vertical flip state of a specific video stream on the input side. Additionally, switch the singular test that was utilizing the rotation metadata to instead override the input display rotation, thus leading to the same result.
* checkasm/idctdsp: Use declare_func_emms only when neededAndreas Rheinhardt2022-10-11
| | | | | | | | | There is no MMX code for (add|put|put_signed)_pixels_clamped since commit bfb28b5ce89f3e950214b67ea95b45e3355c2caf, so use declare_func instead of declare_func_emms() to also test that we are not in MMX mode after return. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* checkasm/llviddspenc: Use declare_func_emms only when neededAndreas Rheinhardt2022-10-11
| | | | | | | | | There is no MMX code for diff_bytes since commit 230ea38de143368729ee1cce47b3a87fbafad8e4, so use declare_func instead of declare_func_emms() to also test that we are not in MMX mode after return. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* checkasm/huffyuvdsp: Use declare_func_emms only when neededAndreas Rheinhardt2022-10-11
| | | | | | | | | There is no MMX code for add_int16 since commit 4b6ffc2880e33d05ed1ab6bbc38e5a795f14b504, so use declare_func instead of declare_func_emms() to also test that we are not in MMX mode after return. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* checkasm/llviddsp: Be strict about MMXAndreas Rheinhardt2022-10-11
| | | | | | | | | There is no MMX code for llviddsp after commit fed07efcde72824ac1ada80d4af4e91ac4fcfc14, so use declare_func instead of declare_func_emms() to also test that we are not in MMX mode after return. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* checkasm/pixblockdsp: Be strict about MMXAndreas Rheinhardt2022-10-11
| | | | | | | | | There is no MMX code for pixblockdsp after commit 92b58002776edd3a3df03c90e8a3ab24b8f987de, so use declare_func instead of declare_func_emms() to also test that we are not in MMX mode after return. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* checkasm/audiodsp: Be strict about MMXAndreas Rheinhardt2022-10-11
| | | | | | | | | There is no MMX code for audiodsp after commit 3d716d38abdae1982e84e30becb57458244656bd, so use declare_func instead of declare_func_emms() to also test that we are not in MMX mode after return. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* checkasm/blockdsp: Be strict about MMXAndreas Rheinhardt2022-10-11
| | | | | | | | | There is no MMX code for blockdsp after commit ee551a21ddcbf81afe183d9489c534ee80f263a0, so use declare_func instead of declare_func_emms() to also test that we are not in MMX mode after return. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* checkasm/vc1dsp: Use declare_func_emms only when neededAndreas Rheinhardt2022-10-11
| | | | | | | | | There is no MMX code for vc1_inv_trans_8x8 or vc1_unescape_buffer, so use declare_func instead of declare_func_emms() to also test that we are not in MMX mode after return. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* checkasm: RISC-V 64-bit assembler test harnessRémi Denis-Courmont2022-10-10
|
* checkasm/vp8dsp: Use declare_func_emms only when neededAndreas Rheinhardt2022-10-08
| | | | | | | | | | There is no MMX code for loop filters since commit 6a551f14050674fb685920eb1b0640810cacccf9, so use declare_func instead of declare_func_emms() to also test that we are not in MMX mode after return. Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/vcodec: Add speedhq testsAndreas Rheinhardt2022-10-06
| | | | | | The vsynth3 tests are disabled, because the encoder produces garbage. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/sgidec: Use planar pixel formatsAndreas Rheinhardt2022-10-05
| | | | | | | The data in SGI images is stored planar, so exporting it via planar pixel formats is natural. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* lavu/riscv: CPU flag for the Zbb extensionRémi Denis-Courmont2022-10-05
| | | | | | | | | | | | Unfortunately, it is common, and will remain so, that the Bit manipulations are not enabled at compilation time. This is an official policy for Debian ports in general (though they do not support RISC-V officially as of yet) to stick to the minimal target baseline, which does not include the B extension or even its Zbb subset. For inline helpers (CPOP, REV8), compiler builtins (CTZ, CLZ) or even plain C code (MIN, MAX, MINU, MAXU), run-time detection seems impractical. But at least it can work for the byte-swap DSP functions.
* tests/fate/truehd: Add test for shortened Ticket1726 testcaseMichael Niedermayer2022-10-04
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fate/opus: add silk LBRR test (refs #9890)Tristan Matthews2022-10-04
| | | | | | This adds a fate test for a sample with LBRR packets. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avcodec/rl2: Remove wrong checkAndreas Rheinhardt2022-10-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This check is intended to be avoid buffer overflows, yet there are four problems with it: 1. It has an in-built off-by-one error: len == out_end - out is perfectly fine and nothing to worry about. This off-by-one error led to the pixel in the lower-right corner not being set properly for the back frame of the sample from the rl2 FATE-test. This pixel is copied to every frame which is the reason for the update to the reference file of said test. With this patch, the output of the decoder matches the output as captured from the reference decoder* (apart from the fact that said reference somehow lacks the top part of the frame (copied over from the background frame)). 2. Given that the stride of the buffer may be different from the width of the video (despite one pixel taking one byte), there is a second check lateron making the first check redundant (if one returns immediately; a simple break at the second check is not sufficient, because it only exits the inner loop). 3. The check is based around the assumption of the stride being positive (it has this in common with the other check which will be fixed in a future commit). 4. Even after fixing the off-by-one error, the check in question is still triggered by all the non-background frames in the FATE sample as well as by A1100100.RL2. In all these cases, they use len == 255 and val == 128. For videos with background frame this just means "copy from the background frame", which would be done anyway lateron.* Yet for videos without it copying it is necessary to avoid leaving uninitialized parts in the video. *: Available in https://samples.mplayerhq.hu/game-formats/voyeur-rl2/ **: Due to this, the code that copies the rest from the back frame is no longer executed for any of the samples available on the sample server. Given that these are only the files from the demo version of this game, I don't know whether this code is executed for any file in existence or not. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* lavu/cpu: CPU flags for the RISC-V Vector extensionRémi Denis-Courmont2022-09-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RVV defines a total of 12 different extensions, including: - 5 different instruction subsets: - Zve32x: 8-, 16- and 32-bit integers, - Zve32f: Zve32x plus single precision floats, - Zve64x: Zve32x plus 64-bit integers, - Zve64f: Zve32f plus Zve64x, - Zve64d: Zve64f plus double precision floats. - 6 different vector lengths: - Zvl32b (embedded only), - Zvl64b (embedded only), - Zvl128b, - Zvl256b, - Zvl512b, - Zvl1024b, - and the V extension proper: equivalent to Zve64f and Zvl128b. In total, there are 6 different possible sets of supported instructions (including the empty set), but for convenience we allocate one bit for each type sets: up-to-32-bit ints (RVV_I32), floats (RVV_F32), 64-bit ints (RVV_I64) and doubles (RVV_F64). Whence the vector size is needed, it can be retrieved by reading the unprivileged read-only vlenb CSR. This should probably be a separate helper macro if needed at a later point.
* lavu/cpu: detect RISC-V base extensionsRémi Denis-Courmont2022-09-27
| | | | | | | | | | This introduces compile-time and run-time CPU detection on RISC-V. In practice, I doubt that FFmpeg will ever see a RISC-V CPU without all of I, F and D extensions, and if it does, it probably won't have run-time detection. So the flags are essentially always set. But as things stand, checkasm wants them that way. Compare the ARMV8 flag on AArch64. We are nowhere near running short on CPU flag bits.
* avutil: add RGBA single-float precision packed formatsPaul B Mahol2022-09-25
|
* avutil: add RGB single-precision float formatsPaul B Mahol2022-09-25
|
* fate/cbs: Add tests for h264_redundant_pps BSFAndreas Rheinhardt2022-09-25
| | | | | | | | This also tests writing slice data in the unaligned mode (some of these files use CAVLC) as well as updating side data as well as parsing ISOBMFF avcc extradata. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* x86/tx_float: add 15xN PFA FFT AVX SIMDLynne2022-09-23
| | | | | | | | | ~4x faster than the C version. The shuffles in the 15pt dim1 are seriously expensive. Not happy with it, but I'm contempt. Can be easily converted to pure AVX by removing all vpermpd/vpermps instructions.
* tests/checkasm/lpc: correct arithmetic when randomizing buffersLynne2022-09-23
| | | | Results weren't signed.
* tests/checkasm/lpc: reduce range and use signed valuesLynne2022-09-23
| | | | | This is more similar to its regular use, and prevents inaccuracies of huge float*float multiplications from failing the tests.
* tests/checkasm/lpc: print mismatching valuesJames Almer2022-09-22
| | | | | | Will help debugging. Signed-off-by: James Almer <jamrial@gmail.com>
* tests/checkasm/lpc: randomize buffer lengthJames Almer2022-09-22
| | | | | | | Simplifies the test, while trying more values and preventing pointlessly running benchmarks in a loop. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/lpc: use ptrdiff_t for length parametersJames Almer2022-09-22
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* fate/checkasm: add LPC test to listLynne2022-09-22
|
* x86/lpc: fix even scalar loop overreads/writesLynne2022-09-22
| | | | Passes checkasm with valgrind, tested to sizes of more than 4000 samples.
* avcodec/fmtconvert: Remove unused AVCodecContext parameterAndreas Rheinhardt2022-09-21
| | | | | | | Unused since d74a8cb7e42f703be5796eeb485f06af710ae8ca. Reviewed-by: Rémi Denis-Courmont <remi@remlab.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>