ffmpeg/libswscale/x86
Niklas Haas 2a091d4f2e swscale: introduce new, dynamic scaling API
As part of a larger, ongoing effort to modernize and partially rewrite
libswscale, it was decided and generally agreed upon to introduce a new
public API for libswscale. This API is designed to be less stateful, more
explicitly defined, and considerably easier to use than the existing one.

Most of the API work has been already accomplished in the previous commits,
this commit merely introduces the ability to use sws_scale_frame()
dynamically, without prior sws_init_context() calls. Instead, the new API
takes frame properties from the frames themselves, and the implementation is
based on the new SwsGraph API, which we simply reinitialize as needed.

This high-level wrapper also recreates the logic that used to live inside
vf_scale for scaling interlaced frames, enabling it to be reused more easily
by end users.

Finally, this function is designed to simply copy refs directly when nothing
needs to be done, substantially improving throughput of the noop fast path.

Sponsored-by: Sovereign Tech Fund
Signed-off-by: Niklas Haas <git@haasn.dev>
2024-11-25 11:03:50 +01:00
..
hscale_fast_bilinear_simd.c swscale: rename SwsContext to SwsInternal 2024-10-24 22:50:00 +02:00
input.asm swscale/x86/rgb2rgb: fix deinterleaveBytes for unaligned dst pointers 2024-09-06 23:05:01 +02:00
Makefile
output.asm swscale: introduce new, dynamic scaling API 2024-11-25 11:03:50 +01:00
range_convert.asm
rgb2rgb.c swscale/x86/rgb2rgb: add optimized versions of the remaining shuffle_bytes functions 2024-11-02 15:01:31 -03:00
rgb_2_rgb.asm swscale/x86/rgb2rgb: add optimized versions of the remaining shuffle_bytes functions 2024-11-02 15:01:31 -03:00
scale_avx2.asm swscale: rename SwsContext to SwsInternal 2024-10-24 22:50:00 +02:00
scale.asm swscale: rename SwsContext to SwsInternal 2024-10-24 22:50:00 +02:00
swscale_template.c swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
swscale.c swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
w64xmmtest.c swscale: rename SwsContext to SwsInternal 2024-10-24 22:50:00 +02:00
yuv2rgb.c swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
yuv2yuvX.asm
yuv_2_rgb.asm swscale/x86/yuv2rgb: add ssse3 yuv42{0,2}p -> gbrp unscaled colorspace converters 2024-08-18 22:26:14 +02:00