|
FFmpeg
|
Go to the source code of this file.
Data Structures | |
| union | SwsPixel |
| struct | SwsShuffleUOp |
| struct | SwsShuffleMask |
| struct | SwsFilterUOp |
| struct | SwsShiftUOp |
| struct | SwsMoveUOp |
| struct | SwsPackUOp |
| struct | SwsClearUOp |
| struct | SwsLinearUOp |
| struct | SwsDitherUOp |
| struct | SwsLut3DUOp |
| union | SwsUOpParams |
| struct | SwsUOp |
| struct | SwsUOpList |
Macros | |
| #define | SWS_COMP(X) |
| #define | SWS_COMP_TEST(mask, X) |
| #define | SWS_COMP_INV(mask) |
| #define | SWS_COMP_ELEMS(N) |
| #define | SWS_COMP_COUNT(mask) |
| #define | SWS_COMP_MASK(X, Y, Z, W) |
| #define | ff_sws_comp_mask_str(mask) |
| #define | SWS_UOP_MOVE_MAX 6 |
| #define | SWS_MASK(I, J) |
| #define | SWS_MASK_OFF(I) |
| #define | SWS_MASK_ROW(I) |
| #define | SWS_MASK_COL(J) |
| #define | SWS_MASK_DIAG4 (0x41041) |
| #define | SWS_UOP_NAME_MAX 64 |
| Generate a unique name for a SwsUOp. | |
Typedefs | |
| typedef uint8_t | SwsCompMask |
| Bit-mask of components. | |
| typedef uint32_t | SwsUOpFlags |
Functions | |
| const char * | ff_sws_pixel_type_name (SwsPixelType type) |
| static av_const int | ff_sws_pixel_type_size (SwsPixelType type) |
| static av_const bool | ff_sws_pixel_type_is_int (SwsPixelType type) |
| static char * | ff_sws_comp_mask_print (SwsCompMask mask, char buf[5]) |
| int | ff_sws_dither_height (const SwsDitherUOp *dither) |
| Computes (1 << size_log2) + MAX(y_offset). | |
| int | ff_sws_uop_cmp (const SwsUOp *a, const SwsUOp *b) |
| Compare two SwsUOps for equality (excluding constant data). | |
| static int | ff_sws_uop_cmp_v (const void *a, const void *b) |
| void | ff_sws_uop_name (const SwsUOp *op, char buf[SWS_UOP_NAME_MAX]) |
| SwsUOpList * | ff_sws_uop_list_alloc (void) |
| void | ff_sws_uop_list_free (SwsUOpList **ops) |
| void | ff_sws_uop_list_remove_at (SwsUOpList *uops, int index, int count) |
| int | ff_sws_uop_list_append (SwsUOpList *uops, SwsUOp *uop) |
| int | ff_sws_uop_list_optimize (SwsContext *ctx, SwsUOpFlags flags, SwsUOpList *uops) |
| Called internally by ff_sws_ops_translate(). | |
| int | ff_sws_ops_translate (SwsContext *ctx, const SwsOpList *ops, SwsUOpFlags flags, SwsUOpList *uops) |
| Translate a list of operations down to micro-ops, which can be further optimized and then directly executed by backends. | |
| int | ff_sws_shuffle_mask (const SwsUOp *uop, int8_t shuffle[], int size) |
Compute a shuffle mask for pshufb-style ASM functions, by repeating the shuffle pattern for as many groups as will fit. | |
| #define SWS_COMP | ( | X | ) |
Definition at line 97 of file uops.h.
Referenced by asmgen_op_pack(), asmgen_setup_clear(), asmgen_setup_linear(), check_pack(), check_unpack(), clear_to_mask(), convert_to_aarch64_impl(), dither_to_mask(), emit_clear(), extract_constant_rows(), ff_sws_comp_mask_needed(), ff_sws_comp_mask_q4(), ff_sws_comp_mask_swizzle(), ff_sws_op_list_optimize(), ff_sws_op_list_update_comps(), nibble_mask(), op_list_get_plane_copy(), plane_mask_flags(), setup_filter_h(), setup_filter_h_4x4(), translate_dither_op(), translate_linear_op(), translate_op(), and translate_swizzle().
Definition at line 98 of file uops.h.
Referenced by check_compiled(), compile(), ff_sws_apply_op_q(), ff_sws_comp_mask_print(), ff_sws_comp_mask_swizzle(), ff_sws_op_list_optimize(), ff_sws_op_list_update_comps(), ff_sws_uop_name(), print_q4(), select_planes(), solve_shuffle(), translate_op(), and translate_swizzle().
| #define SWS_COMP_INV | ( | mask | ) |
| #define SWS_COMP_ELEMS | ( | N | ) |
Definition at line 100 of file uops.h.
Referenced by asmgen(), asmgen_op_read_packed_n(), asmgen_op_write_packed_n(), check_uop(), convert_to_aarch64_impl(), ff_sws_op_list_optimize(), ff_sws_op_list_split_planes(), setup_rw_packed(), solve_shuffle(), and translate_rw_op().
| #define SWS_COMP_COUNT | ( | mask | ) |
Definition at line 102 of file uops.h.
Referenced by convert_to_aarch64_impl(), and translate_rw_op().
| #define ff_sws_comp_mask_str | ( | mask | ) |
Definition at line 110 of file uops.h.
Referenced by compile_subpass(), ff_sws_uop_name(), and print_deps().
| #define SWS_UOP_MOVE_MAX 6 |
Definition at line 206 of file uops.h.
Referenced by DECL_FUNC(), DECL_FUNC(), and translate_swizzle().
| #define SWS_MASK | ( | I, | |
| J ) |
Definition at line 231 of file uops.h.
Referenced by aarch64_setup_linear(), asmgen_setup_linear(), check_linear(), convert_to_aarch64_impl(), extract_swizzle(), ff_sws_linear_mask(), ff_sws_uop_name(), linear_pass(), linear_to_mask(), and translate_linear_op().
| #define SWS_MASK_OFF | ( | I | ) |
| #define SWS_MASK_ROW | ( | I | ) |
Definition at line 233 of file uops.h.
Referenced by convert_to_aarch64_impl(), extract_constant_rows(), extract_swizzle(), ff_sws_op_list_optimize(), and translate_linear_op().
| #define SWS_MASK_COL | ( | J | ) |
Definition at line 234 of file uops.h.
Referenced by extract_swizzle(), and ff_sws_op_list_optimize().
| #define SWS_MASK_DIAG4 (0x41041) |
Definition at line 235 of file uops.h.
Referenced by extract_scalar().
| #define SWS_UOP_NAME_MAX 64 |
Generate a unique name for a SwsUOp.
Definition at line 297 of file uops.h.
Referenced by compile_uops_c(), compile_uops_x86(), ff_sws_uop_name(), generate_entry_args(), generate_entry_struct(), and print_ops().
| typedef uint8_t SwsCompMask |
| typedef uint32_t SwsUOpFlags |
| enum SwsPixelType |
| enum SwsUOpFlagBits |
| enum SwsUOpType |
| const char * ff_sws_pixel_type_name | ( | SwsPixelType | type | ) |
Definition at line 56 of file ops.c.
Referenced by ff_sws_op_desc(), ff_sws_op_list_print(), and ff_sws_uop_name().
|
inlinestatic |
Definition at line 50 of file uops.h.
Referenced by asmgen_op_convert(), asmgen_op_cps(), asmgen_op_expand(), asmgen_op_swap_bytes(), check_cast(), check_filter_fma(), check_scale(), check_uop(), compile(), compile_uops_x86(), convert_to_aarch64_impl(), emit_clear(), ff_sws_op_list_max_size(), ff_sws_op_list_optimize(), ff_sws_ops_translate(), ff_sws_pixel_expand(), get_planar_fmt(), pixel_is_1s(), pixel_is_repeating(), pixel_type_to_int(), pixel_type_to_int(), run_test(), rw_pixel_bits(), setup_filter_h(), setup_filter_h_4x4(), and solve_shuffle().
|
inlinestatic |
Definition at line 63 of file uops.h.
Referenced by check_cast(), check_dither(), check_filter_fma(), exact_prod(), ff_sws_apply_op_q(), ff_sws_op_list_optimize(), ff_sws_op_list_update_comps(), and op_commute_filter().
|
inlinestatic |
| int ff_sws_dither_height | ( | const SwsDitherUOp * | dither | ) |
Computes (1 << size_log2) + MAX(y_offset).
The dither matrix attached to the SwsUOp is always pre-padded to this number of lines.
Definition at line 232 of file uops.c.
Referenced by check_dither(), DECL_SETUP(), and translate_dither_op().
Compare two SwsUOps for equality (excluding constant data).
Compare two SwsUOps for equality (excluding constant data).
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 31 of file uops.c.
Referenced by ff_sws_uop_cmp_v(), and ff_sws_uop_lookup().
|
inlinestatic |
Definition at line 289 of file uops.h.
Referenced by register_uop().
| void ff_sws_uop_name | ( | const SwsUOp * | op, |
| char | buf[SWS_UOP_NAME_MAX] ) |
Definition at line 81 of file uops.c.
Referenced by compile_uops_c(), compile_uops_x86(), ff_sws_uop_lookup(), generate_entry_args(), generate_entry_struct(), and print_ops().
| SwsUOpList * ff_sws_uop_list_alloc | ( | void | ) |
Definition at line 203 of file uops.c.
Referenced by compile_c(), compile_x86(), print_ops(), and register_flags().
| void ff_sws_uop_list_free | ( | SwsUOpList ** | ops | ) |
Definition at line 189 of file uops.c.
Referenced by compile_c(), compile_x86(), print_ops(), and register_flags().
| void ff_sws_uop_list_remove_at | ( | SwsUOpList * | uops, |
| int | index, | ||
| int | count ) |
Definition at line 221 of file uops.c.
Referenced by ff_sws_uop_list_optimize().
| int ff_sws_uop_list_append | ( | SwsUOpList * | uops, |
| SwsUOp * | uop ) |
Definition at line 208 of file uops.c.
Referenced by ff_sws_uop_list_optimize(), translate_dither_op(), translate_linear_op(), translate_op(), translate_rw_op(), and translate_swizzle().
| int ff_sws_uop_list_optimize | ( | SwsContext * | ctx, |
| SwsUOpFlags | flags, | ||
| SwsUOpList * | uops ) |
Called internally by ff_sws_ops_translate().
Definition at line 1028 of file ops_optimizer.c.
Referenced by ff_sws_ops_translate().
| int ff_sws_ops_translate | ( | SwsContext * | ctx, |
| const SwsOpList * | ops, | ||
| SwsUOpFlags | flags, | ||
| SwsUOpList * | uops ) |
Translate a list of operations down to micro-ops, which can be further optimized and then directly executed by backends.
Return 0 or a negative error code.
Definition at line 677 of file uops.c.
Referenced by compile_c(), compile_x86(), print_ops(), and register_flags().
| int ff_sws_shuffle_mask | ( | const SwsUOp * | uop, |
| int8_t | shuffle[], | ||
| int | size ) |
Compute a shuffle mask for pshufb-style ASM functions, by repeating the shuffle pattern for as many groups as will fit.
| uop | An operation of type SWS_UOP_RW_SHUFFLE. |
| shuffle | The output shuffle index mask (or -1 to clear bytes). |
| size | The maximum size (in bytes) of the output shuffle mask. |
Definition at line 869 of file ops_optimizer.c.
Referenced by solve_shuffle(), and translate_shuffle().