45 const void *
data,
size_t data_size)
51 if (chain->
impl_size + op_size >
sizeof(chain->impl))
59 memcpy(&impl->
priv,
data, data_size);
70 out->priv = (
void *) chain;
78 int num_tables,
const SwsUOp *uop,
const int block_size,
90 for (
int n = 0; !match && n < num_tables; n++) {
92 if (
table->block_size &&
table->block_size != block_size ||
96 for (
int i = 0;
table->entries[
i];
i++) {
135 for (
int i = 0;
i < 4;
i++) {
153 default:
return AVERROR(EINVAL);
162 for (
int i = 0;
i < 4;
i++) {
169 default:
return AVERROR(EINVAL);
SwsAArch64OpImplParams params
static AVFormatContext * ctx
simple assert() macros that are a bit more flexible than ISO C assert().
#define av_assert0(cond)
assert() equivalent, that is always enabled.
#define i(width, name, range_min, range_max)
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers.
int(* func)(AVBPrint *dst, const char *in, const char *arg)
static atomic_int cpu_flags
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
Memory handling functions.
int ff_sws_op_chain_append(SwsOpChain *chain, SwsFuncPtr func, const void *ref, const void *data, size_t data_size)
int ff_sws_setup_vec4(const SwsImplParams *params, SwsImplResult *out)
SwsOpChain * ff_sws_op_chain_alloc(void)
Copyright (C) 2025 Niklas Haas.
void ff_sws_op_chain_attach(const SwsOpChain *chain, SwsCompiledOp *out)
Attach a SwsOpChain and all metadata to a SwsCompiledOp (as out->priv).
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...
void ff_sws_op_chain_free_cb(void *ptr)
int ff_sws_setup_scalar(const SwsImplParams *params, SwsImplResult *out)
void(* SwsFuncPtr)(void)
Per-kernel execution context.
#define SWS_OP_PRIV_PACK(out, data)
static const uint16_t table[]
void av_refstruct_unref(void *objp)
Decrement the reference count of the underlying object and automatically free the object if there are...
const void * av_refstruct_ref_c(const void *obj)
Analog of av_refstruct_ref(), but for constant objects.
#define FF_ARRAY_ELEMS(a)
Main external API structure.
Compiled "chain" of operations, which can be dispatched efficiently.
int(* setup)(const SwsImplParams *params, SwsImplResult *out)
Copyright (C) 2025 Niklas Haas.
union SwsUOp::@242237116251216327057105100216205033300341206345 data
static int ref[MAX_W *MAX_W]
static const uint8_t *const tables[]
void ff_sws_uop_name(const SwsUOp *op, char buf[SWS_UOP_NAME_MAX])
int ff_sws_uop_cmp(const SwsUOp *a, const SwsUOp *b)
Copyright (C) 2026 Niklas Haas.