56 chain->
free[idx + 1] = free;
61#define q2pixel(type, q) ((q).den ? (type) (q).num / (q).den : 0)
73 default:
return AVERROR(EINVAL);
82 for (
int i = 0;
i < 4;
i++) {
89 default:
return AVERROR(EINVAL);
99 for (
int i = 0;
i < 4;
i++) {
108 default:
return AVERROR(EINVAL);
117 int num_tables,
const SwsUOp *uop,
const int block_size,
129 for (
int n = 0; !match && n < num_tables; n++) {
131 if (
table->block_size &&
table->block_size != block_size ||
135 for (
int i = 0;
table->entries[
i];
i++) {
137 const SwsUOp entry_uop = {
176 for (
int i = 0;
i < 4;
i++) {
194 default:
return AVERROR(EINVAL);
203 for (
int i = 0;
i < 4;
i++) {
210 default:
return AVERROR(EINVAL);
SwsAArch64OpImplParams params
simple assert() macros that are a bit more flexible than ISO C assert().
#define av_assert1(cond)
assert() equivalent, that does not lie in speed critical code.
#define i(width, name, range_min, range_max)
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers.
static int op(uint8_t **dst, const uint8_t *dst_end, GetByteContext *gb, int pixel, int count, int *x, int width, int linesize)
Perform decode operation.
int(* func)(AVBPrint *dst, const char *in, const char *arg)
static const int factor[16]
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, void(*free)(SwsOpPriv *), const SwsOpPriv *priv)
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...
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.
int ff_sws_setup_clamp(const SwsImplParams *params, SwsImplResult *out)
int ff_sws_setup_scale(const SwsImplParams *params, SwsImplResult *out)
int ff_sws_setup_clear(const SwsImplParams *params, SwsImplResult *out)
static const uint16_t table[]
Utilities for rational number calculation.
64-bit Rational number (pair of numerator and denominator).
Main external API structure.
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)
Copyright (C) 2025 Niklas Haas.
union SwsUOp::@242237116251216327057105100216205033300341206345 data
static AVFormatContext * ctx
static const uint8_t *const tables[]
Private data for each kernel.
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.
static double limit(double x)