Go to the documentation of this file.
45 int diff =
field->cmp_val((
void *) (((uintptr_t) pa) +
field->offset),
46 (
void *) (((uintptr_t) pb) +
field->offset));
80 const int read_planes =
read ? (
read->rw.packed ? 1 :
read->rw.elems) : 0;
85 for (
int i = 0;
i <
FFMAX(read_planes, write_planes);
i++)
147 buf_appendf(&buf, &
size,
"{");
151 void *
p = (
void *) (((uintptr_t) params) +
field->offset);
153 buf_appendf(&buf, &
size,
",");
154 buf_appendf(&buf, &
size,
" .%s = ",
field->name);
157 buf_appendf(&buf, &
size,
" }");
165 FILE *fp = (FILE *) opaque;
169 fprintf(fp,
"%s,\n", buf);
177 int main(
int argc,
char *argv[])
183 _setmode(_fileno(stdout), _O_BINARY);
198 printf(
" * This file is automatically generated. Do not edit manually.\n");
199 printf(
" * To regenerate, run: make sws_ops_entries_aarch64\n");
static void error(const char *err)
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later. That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another. Frame references ownership and permissions
__device__ int printf(const char *,...)
The following structure is used to describe one field from SwsAArch64OpImplParams.
const SwsOp * ff_sws_op_list_input(const SwsOpList *ops)
Returns the input operation for a given op list, or NULL if there is none (e.g.
static int aarch64_collect_process(const SwsOpList *ops, struct AVTreeNode **root)
void * av_tree_insert(AVTreeNode **tp, void *key, int(*cmp)(const void *key, const void *b), AVTreeNode **next)
Insert or remove an element.
int ff_sws_op_list_max_size(const SwsOpList *ops)
Returns the size of the largest pixel type used in ops.
struct AVTreeNode * av_tree_node_alloc(void)
Allocate an AVTreeNode.
void av_tree_enumerate(AVTreeNode *t, void *opaque, int(*cmp)(void *opaque, void *elem), int(*enu)(void *opaque, void *elem))
Apply enu(opaque, &elem) to all the elements in the tree in a given range.
void * av_memdup(const void *p, size_t size)
Duplicate a buffer with av_malloc().
uint16_t SwsAArch64OpMask
#define av_assert0(cond)
assert() equivalent, that is always enabled.
static AVFormatContext * ctx
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this field
const SwsOp * ff_sws_op_list_output(const SwsOpList *ops)
Returns the output operation for a given op list, or NULL if there is none.
static const ParamField * op_fields[AARCH64_SWS_OP_TYPE_NB][MAX_LEVELS]
the definition of that something depends on the semantic of the filter The callback must examine the status of the filter s links and proceed accordingly The status of output links is stored in the status_in and status_out fields and tested by the then the processing requires a frame on this link and the filter is expected to make efforts in that direction The status of input links is stored by the fifo and status_out fields
static int aarch64_op_impl_cmp(const void *a, const void *b)
static int print_op(void *opaque, void *elem)
void av_tree_destroy(AVTreeNode *t)
static void copy(const float *p1, float *p2, const int length)
SwsContext * sws_alloc_context(void)
Allocate an empty SwsContext and set its fields to default values.
#define i(width, name, range_min, range_max)
static av_always_inline int diff(const struct color_info *a, const struct color_info *b, const int trans_thresh)
The reader does not expect b to be semantically here and if the code is changed by maybe adding a a division or other the signedness will almost certainly be mistaken To avoid this confusion a new type was SUINT is the C unsigned type but it holds a signed int to use the same example SUINT a
SwsAArch64LinearOp linear
int ff_sws_enum_op_lists(SwsContext *ctx, void *opaque, enum AVPixelFormat src_fmt, enum AVPixelFormat dst_fmt, int(*cb)(SwsContext *ctx, void *opaque, SwsOpList *ops))
Helper function to enumerate over all possible (optimized) operation lists, under the current set of ...
#define MASK_SET(mask, idx, val)
static int convert_to_aarch64_impl(SwsContext *ctx, const SwsOpList *ops, int n, int block_size, SwsAArch64OpImplParams *out)
Convert SwsOp to a SwsAArch64OpImplParams.
int main(int argc, char *argv[])
static int aarch64_collect_op(const SwsAArch64OpImplParams *params, struct AVTreeNode **root)
IDirect3DDxgiInterfaceAccess _COM_Outptr_ void ** p
static int register_op(SwsContext *ctx, void *opaque, SwsOpList *ops)
uint8_t elems
Examples: rgba = 4x u8 packed yuv444p = 3x u8 rgb565 = 1x u16 <- use SWS_OP_UNPACK to unpack monow = ...
SwsAArch64OpImplParams describes the parameters for an SwsAArch64OpType operation.
@ AARCH64_SWS_OP_PROCESS_RETURN
void sws_free_context(SwsContext **ctx)
Free the context and everything associated with it, and write NULL to the provided pointer.
Helper struct for representing a list of operations.
static void serialize_op(char *buf, size_t size, const SwsAArch64OpImplParams *params)
Main external API structure.
static uint32_t BS_FUNC() read(BSCTX *bc, unsigned int n)
Return n bits from the buffer, n has to be in the 0-32 range.