FFmpeg
Macros | Functions
ops_internal.h File Reference
#include "libavutil/mem_internal.h"
#include "ops.h"
#include "ops_dispatch.h"

Go to the source code of this file.

Macros

#define Q(N)   ((AVRational64) { N, 1 })
 Copyright (C) 2025 Niklas Haas. More...
 

Functions

static AVRational64 ff_sws_pixel_expand (SwsPixelType from, SwsPixelType to)
 
static void ff_sws_pack_op_decode (const SwsOp *op, uint64_t mask[4], int shift[4])
 
int ff_sws_op_list_split_at (SwsOpList *ops1, SwsOpList **ops2, int index)
 Split an op list into two at the given index. More...
 
int ff_sws_op_list_split_planes (SwsOpList *ops1, SwsOpList **ops2, SwsCompMask planes)
 Reduce an op list into a reduced subset that operates only on a given subset of planes. More...
 

Macro Definition Documentation

◆ Q

#define Q (   N)    ((AVRational64) { N, 1 })

Copyright (C) 2025 Niklas Haas.

This file is part of FFmpeg.

FFmpeg is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

FFmpeg is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with FFmpeg; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Definition at line 29 of file ops_internal.h.

Function Documentation

◆ ff_sws_pixel_expand()

static AVRational64 ff_sws_pixel_expand ( SwsPixelType  from,
SwsPixelType  to 
)
inlinestatic

Definition at line 31 of file ops_internal.h.

Referenced by ff_sws_apply_op_q(), and ff_sws_op_list_optimize().

◆ ff_sws_pack_op_decode()

static void ff_sws_pack_op_decode ( const SwsOp op,
uint64_t  mask[4],
int  shift[4] 
)
inlinestatic

Definition at line 43 of file ops_internal.h.

Referenced by ff_sws_apply_op_q().

◆ ff_sws_op_list_split_at()

int ff_sws_op_list_split_at ( SwsOpList ops1,
SwsOpList **  ops2,
int  index 
)

Split an op list into two at the given index.

The split will be mediated by a set of planar read/write operations, plus a swizzle (if necessary) to re-order only used components. If a split is performed, both output lists will be optimized before returning.

Parameters
ops1The first part of the split op list. Will be modified in-place.
ops2The second part of the split op list will be returned here, or NULL if no split was necessary.
indexThe index of the operation to split before. The operation itself will be absent from ops1 and instead moved to the start of ops2.

Returnse 0 or a negative error code.

Not all components may be needed; but we need the ones that are used to be contiguous for the write/read operations. So, first compress them into a linearly ascending list of components

Definition at line 1101 of file ops_optimizer.c.

Referenced by compile_subpass().

◆ ff_sws_op_list_split_planes()

int ff_sws_op_list_split_planes ( SwsOpList ops1,
SwsOpList **  ops2,
SwsCompMask  planes 
)

Reduce an op list into a reduced subset that operates only on a given subset of planes.

No effect if the output is not planar, or if the plane mask is empty or equal to all planes.

Parameters
ops1Updated in-place to contain only the selected planes.
ops2The removed remainder is returned here, or NULL if no-op.
planesA mask of the plane indices to keep.

Returns 0 or a negative error code.

Definition at line 824 of file ops_optimizer.c.

Referenced by compile_subpass().