21#ifndef SWSCALE_OPS_CHAIN_H
22#define SWSCALE_OPS_CHAIN_H
63static_assert(
sizeof(
SwsOpPriv) == 16,
"SwsOpPriv size mismatch");
76static_assert(
sizeof(
SwsOpImpl) == 32,
"SwsOpImpl layout mismatch");
77static_assert(offsetof(
SwsOpImpl, priv) == 16,
"SwsOpImpl layout mismatch");
167 int num_tables,
const SwsUOp *uop,
const int block_size,
SwsAArch64OpImplParams params
int(* func)(AVBPrint *dst, const char *in, const char *arg)
Memory handling functions.
static void ff_sws_op_chain_free(SwsOpChain *chain)
int ff_sws_op_chain_append(SwsOpChain *chain, SwsFuncPtr func, void(*free)(SwsOpPriv *), const SwsOpPriv *priv)
void ff_sws_op_chain_free_cb(void *chain)
static void ff_op_priv_unref(SwsOpPriv *priv)
void(* SwsFuncPtr)(void)
Per-kernel execution context.
int ff_sws_setup_clamp(const SwsImplParams *params, SwsImplResult *out)
int ff_sws_setup_vec4(const SwsImplParams *params, SwsImplResult *out)
SwsOpChain * ff_sws_op_chain_alloc(void)
Copyright (C) 2025 Niklas Haas.
int ff_sws_uop_lookup(SwsContext *ctx, const SwsUOpTable *const tables[], int num_tables, const SwsUOp *uop, const int block_size, SwsOpChain *chain)
"Compile" a single uop by looking it up in a list of fixed size uop tables, in decreasing order of pr...
int ff_sws_setup_scale(const SwsImplParams *params, SwsImplResult *out)
static void ff_op_priv_free(SwsOpPriv *priv)
int ff_sws_setup_scalar(const SwsImplParams *params, SwsImplResult *out)
int ff_sws_setup_clear(const SwsImplParams *params, SwsImplResult *out)
void av_refstruct_unref(void *objp)
Decrement the reference count of the underlying object and automatically free the object if there are...
Main external API structure.
const SwsUOpTable * table
void(* free)(SwsOpPriv *priv)
Compiled "chain" of operations, which can be dispatched efficiently.
SwsOpImpl impl[SWS_MAX_OPS+1]
void(* free[SWS_MAX_OPS+1])(SwsOpPriv *)
int(* setup)(const SwsImplParams *params, SwsImplResult *out)
bool(* check)(const SwsImplParams *params)
Copyright (C) 2025 Niklas Haas.
const SwsUOpEntry * entries[]
static AVFormatContext * ctx
static const uint8_t *const tables[]
Private data for each kernel.
DECLARE_ALIGNED_16(char, data)[16]
uint8_t SwsCompMask
Bit-mask of components.