1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
FFmpeg/libswscale
Niklas Haas bf738412e8 swscale/graph: add new high-level scaler dispatch mechanism
This interface has been designed from the ground up to serve as a new
framework for dispatching various scaling operations at a high level. This
will eventually replace the old ad-hoc system of using cascaded contexts,
as well as allowing us to plug in more dynamic scaling passes requiring
intermediate steps, such as colorspace conversions, etc.

The starter implementation merely piggybacks off the existing sws_init() and
sws_scale(), functions, though it does bring the immediate improvement of
splitting up cascaded functions and pre/post conversion functions into
separate filter passes, which allows them to e.g. be executed in parallel
even when the main scaler is required to be single threaded. Additionally,
a dedicated (multi-threaded) noop memcpy pass substantially improves
throughput of that fast path.

Follow-up commits will eventually expand this to move all of the scaling
decision logic into the graph init function, and also eliminate some of the
current special cases.

Sponsored-by: Sovereign Tech Fund
Signed-off-by: Niklas Haas <git@haasn.dev>
2024-11-25 11:02:16 +01:00
..
aarch64 swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
arm swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
loongarch swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
ppc swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
riscv swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
tests swscale: rename SwsContext to SwsInternal 2024-10-24 22:50:00 +02:00
x86 swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
alphablend.c swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
bayer_template.c swscale/internal: constify SwsFunc 2024-10-07 19:51:34 +02:00
gamma.c swscale: rename SwsContext to SwsInternal 2024-10-24 22:50:00 +02:00
graph.c swscale/graph: add new high-level scaler dispatch mechanism 2024-11-25 11:02:16 +01:00
graph.h swscale/graph: add new high-level scaler dispatch mechanism 2024-11-25 11:02:16 +01:00
half2float.c
hscale_fast_bilinear.c swscale: rename SwsContext to SwsInternal 2024-10-24 22:50:00 +02:00
hscale.c swscale: rename SwsContext to SwsInternal 2024-10-24 22:50:00 +02:00
input.c swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
libswscale.v
log2_tab.c
Makefile swscale/graph: add new high-level scaler dispatch mechanism 2024-11-25 11:02:16 +01:00
options.c swscale: eliminate redundant SwsInternal accesses 2024-11-25 10:59:52 +01:00
output.c swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
rgb2rgb_template.c swscale/swscale_unscaled: add unscaled conversion for AYUV/VUYA/UYVA 2024-11-02 15:01:31 -03:00
rgb2rgb.c swscale/swscale_unscaled: add unscaled x2rgb10le to packed RGB 2024-11-06 17:34:32 -03:00
rgb2rgb.h swscale/swscale_unscaled: add unscaled x2rgb10le to packed RGB 2024-11-06 17:34:32 -03:00
slice.c swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
swscale_internal.h swscale/internal: expose sws_init_single_context() internally 2024-11-25 11:02:16 +01:00
swscale_unscaled.c swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
swscale.c swscale: eliminate redundant SwsInternal accesses 2024-11-25 10:59:52 +01:00
swscale.h swscale: organize and better document flags 2024-11-25 11:02:12 +01:00
swscaleres.rc
utils.c swscale/internal: expose sws_init_single_context() internally 2024-11-25 11:02:16 +01:00
utils.h swscale: add new frame testing API 2024-10-23 23:06:16 +02:00
version_major.h libs: bump major version for all libraries 2024-03-07 11:29:43 -03:00
version.c lib*/version: Use static_assert for static asserts 2024-03-31 00:08:42 +01:00
version.h swscale: organize and better document flags 2024-11-25 11:02:12 +01:00
vscale.c swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00
yuv2rgb.c swscale/internal: group user-facing options together 2024-11-21 12:49:56 +01:00