ffmpeg/libswscale
Ramiro Polla 5640bd3a4f swscale/tests/swscale: require reference file to perform comparisons
The legacy scaler is no longer implicitly used to generate a reference
to perform comparisons for every conversion. It is now up to the user
to generate a reference file and use it as input for a separate run to
perform comparisons.

It is now possible to compare against previous runs of the graph-based
scaler, for example to test for newer optimizations.

This reduces the overall time necessary to obtain speedup numbers from
the legacy scaler to the graph-based scaler (or any other comparison,
for that matter) since the reference must only be run once.

For example, to check the speedup between the legacy scaler and the
graph-based scaler:
  ./libswscale/tests/swscale [...] -bench 50 -legacy 1 > legacy_ref.txt
  ./libswscale/tests/swscale [...] -bench 50 -ref legacy_ref.txt

If no -ref file is specified, we are assuming that we are generating a
reference file, and therefore all information is printed (including
ssim/loss, and benchmarks if -bench is used).

If a -ref file is specified, the output printed depends on whether we
are testing for correctness (ssim/loss only) or benchmarking (time/
speedup only, along with overall speedup).

Sponsored-by: Sovereign Tech Fund
Signed-off-by: Ramiro Polla <ramiro.polla@gmail.com>
2026-03-14 06:13:19 +00:00
..
aarch64 swscale/aarch64: add NEON rgb32tobgr24 and rgb24tobgr32 conversions 2026-03-04 10:30:08 +00:00
arm all: fix typos found by codespell 2025-08-03 13:48:47 +02:00
loongarch swscale/loongarch: fix LASX YUV2RGB residual for multi-row slices 2026-03-02 13:14:07 +00:00
ppc swscale/swscale_internal: Move altivec parts to ppc/ 2026-02-28 09:56:01 +01:00
riscv swscale/range_convert: saturate output instead of limiting input 2024-12-05 21:10:29 +01:00
tests swscale/tests/swscale: require reference file to perform comparisons 2026-03-14 06:13:19 +00:00
vulkan Revert "swscale/vulkan/ops: move buffer desc setting to helper function" 2026-03-09 12:16:42 +01:00
x86 swscale/x86/ops: add section comments (cosmetic) 2026-03-12 21:02:48 +00:00
alphablend.c swscale/alphablend: don't overread alpha plane on subsampled odd size 2025-07-31 11:32:20 +00:00
bayer_template.c swscale/internal: constify SwsFunc 2024-10-07 19:51:34 +02:00
cms.c all: fix typos found by codespell 2025-08-03 13:48:47 +02:00
cms.h swscale/utils: split off format code into new file 2025-03-14 19:50:44 +01:00
csputils.c swscale/csputils: Remove unused ff_sws_matrix3x3_rmul() 2025-04-03 06:04:57 +02:00
csputils.h swscale/csputils: Remove unused ff_sws_matrix3x3_rmul() 2025-04-03 06:04:57 +02:00
format.c swscale/graph: reintroduce SwsFrame 2026-03-01 21:57:53 +00:00
format.h swscale/graph: reintroduce SwsFrame 2026-03-01 21:57:53 +00:00
gamma.c swscale: rename SwsContext to SwsInternal 2024-10-24 22:50:00 +02:00
graph.c swscale: add enum SwsScaler, SwsContext.scaler to replace legacy flags 2026-03-12 22:09:04 +01:00
graph.h swscale/graph: allow setup() to return an error code 2026-03-12 21:02:48 +00:00
half2float.c swscale/input: add rgbaf16 input support 2022-08-19 22:09:36 +02:00
hscale.c swscale/range_convert: fix mpeg ranges in yuv range conversion for non-8-bit pixel formats 2024-12-05 21:10:29 +01:00
hscale_fast_bilinear.c swscale: rename SwsContext to SwsInternal 2024-10-24 22:50:00 +02:00
input.c Revert "swscale: add support for 10/12-bit grayscale MSB pixfmts" 2025-11-06 21:46:41 +01:00
libswscale.v
log2_tab.c
lut3d.c swscale/lut3d: remove unused function 2025-07-22 19:56:34 +02:00
lut3d.h swscale/utils: split off format code into new file 2025-03-14 19:50:44 +01:00
Makefile swscale/ops_dispatch: split off compile/dispatch code from ops.c 2026-03-05 23:34:56 +00:00
ops.c swscale/ops: simplify ff_sws_op_list_print 2026-03-09 11:25:57 +01:00
ops.h swscale/ops_dispatch: infer destination format from SwsOpList 2026-03-12 21:02:48 +00:00
ops_backend.c swscale/ops_dispatch: move on-stack mutation to ops backends 2026-03-05 23:34:56 +00:00
ops_backend.h swscale/ops_backend: allocate block storage up-front 2026-02-19 19:44:46 +00:00
ops_chain.c swscale/ops_chain: allow free callback to take SwsOpPriv 2026-03-12 21:02:48 +00:00
ops_chain.h swscale/ops_chain: add more integer types to SwsOpPriv 2026-03-12 21:02:48 +00:00
ops_dispatch.c swscale/ops_dispatch: move ENOTSUP error to ff_sws_compile_pass() 2026-03-12 21:02:48 +00:00
ops_dispatch.h swscale/ops_dispatch: add helper function to clean up SwsCompiledOp 2026-03-12 21:02:48 +00:00
ops_internal.h swscale/ops_dispatch: split off compile/dispatch code from ops.c 2026-03-05 23:34:56 +00:00
ops_memcpy.c swscale/ops: add SwsOpBackend.hw_format 2026-02-26 14:10:22 +01:00
ops_optimizer.c swscale/ops_optimizer: always clear unused dither components 2026-03-12 21:02:48 +00:00
ops_tmpl_common.c swscale/ops_backend: use in/out_bump[] in process() 2026-03-12 21:02:48 +00:00
ops_tmpl_float.c swscale/ops_chain: allow free callback to take SwsOpPriv 2026-03-12 21:02:48 +00:00
ops_tmpl_int.c swscale/ops_backend: allocate block storage up-front 2026-02-19 19:44:46 +00:00
options.c swscale: add enum SwsScaler, SwsContext.scaler to replace legacy flags 2026-03-12 22:09:04 +01:00
output.c swscale/output: fix integer overflows in chroma in yuv2rgba64_X_c_template() 2026-03-13 02:51:19 +01:00
rgb2rgb.c swscale/rgb2rgb: Remove set-but-unused functions 2026-03-01 23:45:11 +00:00
rgb2rgb.h swscale/rgb2rgb: Remove set-but-unused functions 2026-03-01 23:45:11 +00:00
rgb2rgb_template.c swscale/rgb2rgb: Remove set-but-unused functions 2026-03-01 23:45:11 +00:00
slice.c swscale/slice: fix init of 32 bpc planes 2024-12-16 12:21:55 +01:00
swscale.c swscale/graph: allow setup() to return an error code 2026-03-12 21:02:48 +00:00
swscale.h swscale: mark scale-related SwsFlags as deprecated 2026-03-12 22:09:13 +01:00
swscale_internal.h swscale: explicitly track if a context is "legacy" or not 2026-03-06 19:06:33 +01:00
swscale_unscaled.c swscale/unscaled: fix planarCopyWrapper for float formats with same endianness 2026-03-09 08:22:58 +00:00
swscaleres.rc
utils.c swscale: add enum SwsScaler, SwsContext.scaler to replace legacy flags 2026-03-12 22:09:04 +01:00
version.c lib*/version: Use static_assert for static asserts 2024-03-31 00:08:42 +01:00
version.h swscale: add enum SwsScaler, SwsContext.scaler to replace legacy flags 2026-03-12 22:09:04 +01:00
version_major.h libs: bump major version for all libraries 2025-03-28 14:44:34 -03:00
vscale.c swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
yuv2rgb.c swscale/aarch64: add NEON YUV420P/YUV422P/YUVA420P to RGB conversion 2026-03-02 13:14:07 +00:00