aboutsummaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* lavc/riscv: drop probing for F & D extensionsRémi Denis-Courmont2024-08-011-2/+0
| | | | | | | | | | F and D extensions are included in all RISC-V application profiles ever made (so starting from RV64GC a.k.a. RVA20). Realistically they need to be selected at compilation time. Currently, there are no consumers for these two flags. If there is ever a need to reintroduce F- or D-specific optimisations, we can always use __riscv_f or __riscv_d compiler predefined macros respectively.
* checkasm/riscv: preserve T1 whilst calling...Rémi Denis-Courmont2024-08-011-5/+5
| | | | | | | | | | | | | | | | | This preserves T1 whilst calling the instrumented function. In a Sci-Fi setting where type-based Control Flow Integrity (CFI) is supported, the calling code (i.e., the `checkasm` test case) will set T1 to the expected value of the landing pad label (LPL) of the instrumented function. The call wrapper will always use LPL zero which is a wild card. We should preserve the value of T1 at least until the indirect call to the instrumented function. Of course this is Sci-Fi, because: 1) there is no hardware (or even QEMU) support yet, 2) all our assembler functions currently use LPL zero anyway. This uses T3 rather than T2 because indirect branches with T2 is reserved for notionally direct calls made with an indirect call instruction (e.g. due to GOT indirection), and are exempted from forward-edge CFI checks.
* tests/fate/vcodec: add vsynth tests for FFV1 version 2Anton Khirnov2024-08-015-1/+18
|
* fftools/ffprobe: implement dv_md_compressionNiklas Haas2024-07-282-0/+2
|
* checkasm/riscv: align the landing padsRémi Denis-Courmont2024-07-251-0/+3
|
* checkasm/riscv: add forward-edge CFI landing padsRémi Denis-Courmont2024-07-251-0/+4
|
* lavu/riscv: add CPU flag for B bit manipulationsRémi Denis-Courmont2024-07-251-0/+1
| | | | | | | | The B extension was finally ratified in May 2024, encompassing: - Zba (addresses), - Zbb (basics) and - Zbs (single bits). It does not include Zbc (base-2 polynomials).
* checkasm: Increase the tolerance for ac3_sum_square_butterfly_floatMartin Storsjö2024-07-241-1/+1
| | | | | | | | Increase the tolerance from 10 ulp to 11 ulp. This fixes occasional errors for some inputs; the errors could be reproduced on aarch64/neon builds, with "checkasm --test=ac3dsp 3446175925". Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm/h264dsp: test TX bypassRémi Denis-Courmont2024-07-211-14/+23
|
* fate/png: add mDCv and cLLi read and write testLeo Izen2024-07-192-0/+28
| | | | | | | | | | | This test confirms that we can write mDCv and cLLi chunks and read them back via the png decoder. It uses an HEVC conformance sample with this metadata as the base source for the side data in the frames. Signed-off-by: Leo Izen <leo.izen@gmail.com> Reported-by: Jan Ekström <jeebjp@gmail.com> Reviewed-by: Jan Ekström <jeebjp@gmail.com> Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* checkasm/lls: increase epsilon value for the update_lls testJames Almer2024-07-191-1/+1
| | | | | | Should fix failures for some seeds on x86_32. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/iamf: byteswap values in OpusHeaderJames Almer2024-07-182-8/+8
| | | | | | | | | | Clause 3.11.1 of IAMF[1] states the values are stored in big endian, in contrast to the Ogg Encapsulation for Opus[2] where they are in little endian. [1]https://aomediacodec.github.io/iamf/v1.0.0-errata.html#opus-specific [2]https://datatracker.ietf.org/doc/html/rfc7845#section-5.1 Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/movenc: fix channel count and samplerate fields for IAMF tracksFelicia Lim2024-07-184-4/+4
| | | | | | | | Clause 6.2.3 of IAMF[1] states both of these shall be set to 0. [1]https://aomediacodec.github.io/iamf/v1.0.0-errata.html#iasampleentry-section Signed-off-by: James Almer <jamrial@gmail.com>
* fate/lavf-container: add a test for L-HEVC remuxingJames Almer2024-07-152-0/+5
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/movenc: support writing cropping valuesJames Almer2024-07-111-8/+8
| | | | | | Finishes implementing ticket #7437. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mov: export cropping values from clap boxesJames Almer2024-07-113-20/+20
| | | | | | Addresses part of ticket #7437. Signed-off-by: James Almer <jamrial@gmail.com>
* fftools/ffmpeg_mux_init: default to input timebase for streamcopyAnton Khirnov2024-07-092-3/+3
| | | | | Stop trying to invent some "framerate-based" timebase when there is no reason to think the stream is CFR at all.
* avformat/hevc: don't write NALUs with nuh_layer_id > 0 in hvcC boxesJames Almer2024-07-073-5/+5
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat: Add a new stream disposition for multilayer videoDerek Buitenhuis2024-07-0749-37/+182
| | | | | | | This lets us detect when a container has flagged a stream as multilayer. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* tests/fate/mov: add a test for VFR muxingAnton Khirnov2024-07-071-0/+5
|
* tests/fate/filter-audio: convert atempo test to oneoffAnton Khirnov2024-07-071-1/+3
| | | | Filter output is not bitexact.
* fate/filter-video: add missing swscale flags to tiltandshift testsJames Almer2024-07-064-149/+149
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* fate/filter-video: tests more pixel formats with the tiltandshift filterJames Almer2024-07-064-0/+169
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* tests: Add a missing dependency for the filter-atempo testMartin Storsjö2024-07-041-0/+1
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* fftools/ffmpeg_mux_init: apply encoder options manuallyAnton Khirnov2024-07-038-8/+8
| | | | | | | | | | | | | | | Do not pass an options dictionary to the avcodec_open2() in enc_open(). This is cleaner and more robust, as previously various bits of code would try to interpret the contents of the options dictionary, with varying degrees of correctness. Now they can just access the encoder AVCodecContext directly. Cf. 372c78dd42f2b1ca743473b9c32fad71c65919e0 - analogous change for decoding. A non-progressive field order is now written on the container level in interlaced ProRes encoding tests.
* tests/fate/filter-audio.mak: add test for atempo audio filterRajiv Harlalka2024-07-032-0/+73
| | | | | Signed-off-by: Rajiv Harlalka <rajivharlalka009@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* checkasm: add tests for yuv2rgbRamiro Polla2024-06-285-1/+215
|
* libavcodec/mjpeg: preserve unclipped last_dc valueRamiro Polla2024-06-281-1/+1
| | | | | | | | | | | Perform av_clip_int16(val) _after_ copying the value to last_dc. This change ensures that clipping is applied only within the context of the current block, preventing the propagation of clipped values to subsequent DC components. Related commits: c28f648b19d and dffae122d0f Related ticket: 4683
* checkasm/vvc_alf: ensure right and bottom boundaries are not overwritten by asmNuo Mi2024-06-251-4/+4
|
* checkasm/vvc_alf: random select alf virtual boundaries positionNuo Mi2024-06-251-4/+11
| | | | | A picture's virtual boundaries will split a CTU into 4 ALF blocks. The ALF virtual boundary may cross or not cross a ALF block.
* checkasm/vvc_alf: only check the valid filter and classify sizesNuo Mi2024-06-251-27/+34
|
* lavu/stereo3d: change the horizontal FOV field to a rationalLynne2024-06-245-9/+9
| | | | | | | | | | | This avoids hardcoding any implementation-specific limitiations as part of the API, and allows for future expandability. This also allows API users to more conveniently convert the values into floats without hardcoding specific conversion constants. The API was committed a few days ago, so changing this field now is within the realms of acceptable.
* fate/jpeg2000dec: add support for p0_10.j2kPierre-Anthony Lemieux2024-06-242-0/+9
| | | | | p0_10.j2k is one of the reference codestreams included in Rec. ITU-T T.803 | ISO/IEC 15444-4. Adding this test was made possible by commit 6f4a95cfb8e6ed97fdd1027251181caded44860f.
* movenc: Add an option for resilient, hybrid fragmented/non-fragmented muxingMartin Storsjö2024-06-242-1/+5
| | | | | | | | | | | | | | This allows ending up with a normal, non-fragmented file when the file is finished, while keeping the file readable if writing is aborted abruptly at any point. (Normally when writing a mov/mp4 file, the unfinished file is completely useless unless it is finished properly.) This results in a file where the mdat atom contains (and hides) all the moof atoms that were part of the fragmented file structure initially. Signed-off-by: Martin Storsjö <martin@martin.st>
* avutil/stereo3d: set a sane default value for AVRational fieldsJames Almer2024-06-205-9/+9
| | | | | | Prevent potential divisions by 0 when using them immediately after allocation. Signed-off-by: James Almer <jamrial@gmail.com>
* ffprobe: always print all Stereo3D fieldsJames Almer2024-06-205-0/+27
| | | | | | | ffprobe is meant to generate parseable output, and if a field is present, it should be printed even if it has a default value. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/h261enc: Fix ac_vlc_length tablesAndreas Rheinhardt2024-06-203-12/+12
| | | | | | | | | | | | | | | | | | | | | | These tables are supposed to contain the number of bits needed to encode a given (run, level) pair. Yet the number of bits for pairs needing the escape code was wrong (it only contained the escape code and not the bits needed for run and level). Furthermore, H.261 (a format with explicit end-of-block codes) does not work well together with the RLTable API from rl.c: The EOB code is the first one in ff_h261_rl_tcoeff's VLC table and has a run value of zero. Therefore the result of get_rl_index() is off by one for run == 0 and level values with explicit (run, level) pair. Fixing this necessitated changing the ref files of the vsynth*-h261-trellis tests. Both filesizes as well as PSNR decreased. If one used a qscale value of 11 for this test, one would have received files with about the same size as before this patch (with qscale 12), but with better PSNR. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/me_cmp: Zero MECmpContext in ff_me_cmp_init()Andreas Rheinhardt2024-06-201-3/+0
| | | | | | | | | Not every function will be set, so zero the context to initialize everything. This also allows to remove an initialization in dvenc.c. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/me_cmp,dvenc,mpegvideo: Move ildct_cmp to its usersAndreas Rheinhardt2024-06-201-1/+0
| | | | | | | | | | | | MECmpContext.ildct_cmp is an array of function pointers that are not set by ff_me_cmp_init(), but that are set by users to one of the other arrays via ff_set_cmp(). Remove these pointers from MECmpContext and add pointers for the actually used functions to its users. (The DV encoder already did so.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/me_cmp, mpegvideo: Move frame_skip_cmp to MpegEncContextAndreas Rheinhardt2024-06-201-1/+0
| | | | | | | | | | | | | | | MECmpContext has several arrays of function pointers that are not set by ff_me_cmp_init(), but that are set by users to one of the other arrays via ff_set_cmp(). One of these other users is mpegvideo_enc; it is the only user of MECmpContext.frame_skip_cmp and it only uses one of these function pointers at all. This commit therefore moves this function pointer to MpegEncContext; and removes the array from MECmpContext. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/me_cmp, motion_est: Move me_(pre_)?_cmp etc. to MotionEstContextAndreas Rheinhardt2024-06-201-4/+0
| | | | | | | | | | | | | | | | MECmpContext has several arrays of function pointers that are not set by ff_me_cmp_init(), but that are set by users to one of the other arrays via ff_set_cmp(). One of these other users is the motion estimation API. It uses MECmpContext.(me_pre|me|me_sub|mb)_cmp. It is basically the only user of these arrays. This commit therefore moves these arrays to MotionEstContext; this has the additional advantage of making motion_est.c more independent from MpegEncContext. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/vvc: add vvc-conformance-RPR_A_4Frank Plowman2024-06-202-0/+10
| | | | | | | | | | | Before After ------------------------------------------------- make fate-vvc CPU Time (No ASM) 131.52s 134.83s libavcodec/vvc/* Line Coverage 95.3% 96.9% inter_template.c Line Coverage 74.3% 88.2% inter.c Line Coverage 85.3% 99.2% Signed-off-by: Frank Plowman <post@frankplowman.com>
* avformat/evc: fix writing reserved bitsJames Almer2024-06-191-1/+1
| | | | | | They are all zeroes, not ones. Signed-off-by: James Almer <jamrial@gmail.com>
* fate/lavf-container: add extract_extradata BSF dependency to lavf-fate-hevc.mp4James Almer2024-06-181-1/+1
| | | | | | | | Otherwise a bunch of SEI units that should not be in hvcC will be included, and generate different output with builds where extract_extradata_bsf is not present. Signed-off-by: James Almer <jamrial@gmail.com>
* fate/lavf-container: add a hevc in ISOBMFF remux testJames Almer2024-06-182-0/+5
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* fftools/ffprobe: Print more Stereo 3D info from side dataDerek Buitenhuis2024-06-185-0/+18
| | | | Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* tests/checkasm: Remove check on linux perf fd in uninitZhao Zhili2024-06-181-2/+1
| | | | | | | The check should be >= 0, not > 0. The check itself is redundant since uninit only being called after init is success. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* fate/checkasm: run the sw_range_convert testJames Almer2024-06-151-0/+1
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* checkasm: add tests for {lum,chr}ConvertRangeRamiro Polla2024-06-164-1/+137
|
* checkasm/lls: add missing random values to the test buffersJames Almer2024-06-131-1/+1
| | | | | | Fixes valgrind warnings after 18adaf9fe558587cb1b707c647af83015b69da48. Signed-off-by: James Almer <jamrial@gmail.com>