|
FFmpeg
|
Go to the source code of this file.
Data Structures | |
| struct | SwsOpBackend |
Macros | |
| #define | Q(N) ((AVRational) { N, 1 }) |
| Copyright (C) 2025 Niklas Haas. More... | |
Functions | |
| static AVRational | 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_ops_compile_backend (SwsContext *ctx, const SwsOpBackend *backend, const SwsOpList *ops, SwsCompiledOp *out) |
| Attempt to compile a list of operations using a specific backend. More... | |
| int | ff_sws_ops_compile (SwsContext *ctx, const SwsOpList *ops, SwsCompiledOp *out) |
| Compile a list of operations using the best available backend. More... | |
| int | ff_sws_solve_shuffle (const SwsOpList *ops, uint8_t shuffle[], int size, uint8_t clear_val, int *read_bytes, int *write_bytes) |
| "Solve" an op list into a fixed shuffle mask, with an optional ability to also directly clear the output value (for e.g. More... | |
| int | ff_sws_op_list_subpass (SwsOpList *ops, SwsOpList **out_rest) |
| Eliminate SWS_OP_FILTER_* operations by merging them with prior SWS_OP_READ operations. More... | |
Variables | |
| const SwsOpBackend *const | ff_sws_op_backends [] |
| #define Q | ( | N | ) | ((AVRational) { 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.
|
inlinestatic |
Definition at line 31 of file ops_internal.h.
Referenced by ff_sws_apply_op_q(), and ff_sws_op_list_optimize().
|
inlinestatic |
Definition at line 43 of file ops_internal.h.
Referenced by ff_sws_apply_op_q().
| int ff_sws_ops_compile_backend | ( | SwsContext * | ctx, |
| const SwsOpBackend * | backend, | ||
| const SwsOpList * | ops, | ||
| SwsCompiledOp * | out | ||
| ) |
Attempt to compile a list of operations using a specific backend.
Returns 0 on success, or a negative error code on failure.
Definition at line 55 of file ops_dispatch.c.
Referenced by check_ops(), and ff_sws_ops_compile().
| int ff_sws_ops_compile | ( | SwsContext * | ctx, |
| const SwsOpList * | ops, | ||
| SwsCompiledOp * | out | ||
| ) |
Compile a list of operations using the best available backend.
Returns 0 on success, or a negative error code on failure.
Definition at line 82 of file ops_dispatch.c.
Referenced by compile().
| int ff_sws_solve_shuffle | ( | const SwsOpList * | ops, |
| uint8_t | shuffle[], | ||
| int | size, | ||
| uint8_t | clear_val, | ||
| int * | read_bytes, | ||
| int * | write_bytes | ||
| ) |
"Solve" an op list into a fixed shuffle mask, with an optional ability to also directly clear the output value (for e.g.
rgb24 -> rgb0). This can accept any operation chain that only consists of the following operations:
Basically, any operation that purely consists of moving around and reordering bytes within a single plane, can be turned into a shuffle mask.
| ops | The operation list to decompose. |
| shuffle | The output shuffle mask. |
| size | The size (in bytes) of the output shuffle mask. |
| clear_val | If nonzero, this index will be used to clear the output. |
| read_bytes | Returns the number of bytes read per shuffle iteration. |
| write_bytes | Returns the number of bytes written per shuffle iteration. |
Definition at line 779 of file ops_optimizer.c.
Referenced by solve_shuffle().
Eliminate SWS_OP_FILTER_* operations by merging them with prior SWS_OP_READ operations.
This may require splitting the op list into multiple subpasses, along filter boundaries. After this function, ops will no longer contain bare filtering operations. The remainder, if any, is output to out_rest.
Returns 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 929 of file ops_optimizer.c.
Referenced by ff_sws_compile_pass().
| const SwsOpBackend* const ff_sws_op_backends[] |
Definition at line 44 of file ops.c.
Referenced by check_ops(), and ff_sws_ops_compile().
1.8.17