PR #23565 opened by Ramiro Polla (ramiro) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23565 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23565.patch
Uses an offset into the full name to get the macro name. Also spells out the names of the types (not going through a macro) to make the code easier to grep. >From 0e8d92399d01c0ab09b67e7c6d9db710a6ea76a9 Mon Sep 17 00:00:00 2001 From: Ramiro Polla <[email protected]> Date: Tue, 23 Jun 2026 18:02:03 +0200 Subject: [PATCH] swscale/uops: reduce size of uop_names[] array Uses an offset into the full name to get the macro name. Also spells out the names of the types (not going through a macro) to make the code easier to grep. --- libswscale/uops.c | 77 +++++++++++++++++++++++------------------------ 1 file changed, 37 insertions(+), 40 deletions(-) diff --git a/libswscale/uops.c b/libswscale/uops.c index 096621466c..c77a56b913 100644 --- a/libswscale/uops.c +++ b/libswscale/uops.c @@ -43,46 +43,43 @@ int ff_sws_uop_cmp(const SwsUOp *a, const SwsUOp *b) static const struct { char full[32]; char abbr[32]; - char macro[32]; } uop_names[SWS_UOP_TYPE_NB] = { -#define UOP_NAME(OP, ABBR) [SWS_UOP_##OP] = { "SWS_UOP_" #OP, ABBR, #OP } - UOP_NAME(INVALID, "invalid"), - UOP_NAME(READ_PLANAR, "read_planar"), - UOP_NAME(READ_PLANAR_FH, "read_planar_fh"), - UOP_NAME(READ_PLANAR_FV, "read_planar_fv"), - UOP_NAME(READ_PLANAR_FV_FMA,"read_planar_fv_fma"), - UOP_NAME(READ_PACKED, "read_packed"), - UOP_NAME(READ_NIBBLE, "read_nibble"), - UOP_NAME(READ_BIT, "read_bit"), - UOP_NAME(READ_PALETTE, "read_palette"), - UOP_NAME(WRITE_PLANAR, "write_planar"), - UOP_NAME(WRITE_PACKED, "write_packed"), - UOP_NAME(WRITE_NIBBLE, "write_nibble"), - UOP_NAME(WRITE_BIT, "write_bit"), - UOP_NAME(PERMUTE, "permute"), - UOP_NAME(COPY, "copy"), - UOP_NAME(MOVE, "move"), - UOP_NAME(SWAP_BYTES, "swap_bytes"), - UOP_NAME(EXPAND_BIT, "expand_bit"), - UOP_NAME(EXPAND_PAIR, "expand_pair"), - UOP_NAME(EXPAND_QUAD, "expand_quad"), - UOP_NAME(TO_U8, "to_u8"), - UOP_NAME(TO_U16, "to_u16"), - UOP_NAME(TO_U32, "to_u32"), - UOP_NAME(TO_F32, "to_f32"), - UOP_NAME(SCALE, "scale"), - UOP_NAME(LINEAR, "linear"), - UOP_NAME(LINEAR_FMA, "linear_fma"), - UOP_NAME(ADD, "add"), - UOP_NAME(MIN, "min"), - UOP_NAME(MAX, "max"), - UOP_NAME(UNPACK, "unpack"), - UOP_NAME(PACK, "pack"), - UOP_NAME(LSHIFT, "lshift"), - UOP_NAME(RSHIFT, "rshift"), - UOP_NAME(CLEAR, "clear"), - UOP_NAME(DITHER, "dither"), -#undef UOP_NAME + [SWS_UOP_INVALID] = { "SWS_UOP_INVALID", "invalid" }, + [SWS_UOP_READ_PLANAR] = { "SWS_UOP_READ_PLANAR", "read_planar" }, + [SWS_UOP_READ_PLANAR_FH] = { "SWS_UOP_READ_PLANAR_FH", "read_planar_fh" }, + [SWS_UOP_READ_PLANAR_FV] = { "SWS_UOP_READ_PLANAR_FV", "read_planar_fv" }, + [SWS_UOP_READ_PLANAR_FV_FMA] = { "SWS_UOP_READ_PLANAR_FV_FMA", "read_planar_fv_fma" }, + [SWS_UOP_READ_PACKED] = { "SWS_UOP_READ_PACKED", "read_packed" }, + [SWS_UOP_READ_NIBBLE] = { "SWS_UOP_READ_NIBBLE", "read_nibble" }, + [SWS_UOP_READ_BIT] = { "SWS_UOP_READ_BIT", "read_bit" }, + [SWS_UOP_READ_PALETTE] = { "SWS_UOP_READ_PALETTE", "read_palette" }, + [SWS_UOP_WRITE_PLANAR] = { "SWS_UOP_WRITE_PLANAR", "write_planar" }, + [SWS_UOP_WRITE_PACKED] = { "SWS_UOP_WRITE_PACKED", "write_packed" }, + [SWS_UOP_WRITE_NIBBLE] = { "SWS_UOP_WRITE_NIBBLE", "write_nibble" }, + [SWS_UOP_WRITE_BIT] = { "SWS_UOP_WRITE_BIT", "write_bit" }, + [SWS_UOP_PERMUTE] = { "SWS_UOP_PERMUTE", "permute" }, + [SWS_UOP_COPY] = { "SWS_UOP_COPY", "copy" }, + [SWS_UOP_MOVE] = { "SWS_UOP_MOVE", "move" }, + [SWS_UOP_SWAP_BYTES] = { "SWS_UOP_SWAP_BYTES", "swap_bytes" }, + [SWS_UOP_EXPAND_BIT] = { "SWS_UOP_EXPAND_BIT", "expand_bit" }, + [SWS_UOP_EXPAND_PAIR] = { "SWS_UOP_EXPAND_PAIR", "expand_pair" }, + [SWS_UOP_EXPAND_QUAD] = { "SWS_UOP_EXPAND_QUAD", "expand_quad" }, + [SWS_UOP_TO_U8] = { "SWS_UOP_TO_U8", "to_u8" }, + [SWS_UOP_TO_U16] = { "SWS_UOP_TO_U16", "to_u16" }, + [SWS_UOP_TO_U32] = { "SWS_UOP_TO_U32", "to_u32" }, + [SWS_UOP_TO_F32] = { "SWS_UOP_TO_F32", "to_f32" }, + [SWS_UOP_SCALE] = { "SWS_UOP_SCALE", "scale" }, + [SWS_UOP_LINEAR] = { "SWS_UOP_LINEAR", "linear" }, + [SWS_UOP_LINEAR_FMA] = { "SWS_UOP_LINEAR_FMA", "linear_fma" }, + [SWS_UOP_ADD] = { "SWS_UOP_ADD", "add" }, + [SWS_UOP_MIN] = { "SWS_UOP_MIN", "min" }, + [SWS_UOP_MAX] = { "SWS_UOP_MAX", "max" }, + [SWS_UOP_UNPACK] = { "SWS_UOP_UNPACK", "unpack" }, + [SWS_UOP_PACK] = { "SWS_UOP_PACK", "pack" }, + [SWS_UOP_LSHIFT] = { "SWS_UOP_LSHIFT", "lshift" }, + [SWS_UOP_RSHIFT] = { "SWS_UOP_RSHIFT", "rshift" }, + [SWS_UOP_CLEAR] = { "SWS_UOP_CLEAR", "clear" }, + [SWS_UOP_DITHER] = { "SWS_UOP_DITHER", "dither" }, }; static const struct { @@ -1057,7 +1054,7 @@ int ff_sws_uops_macros_gen(char **out_str) SwsUOp key = { .data.opaque = bp }; for (key.type = SWS_PIXEL_NONE + 1; key.type < SWS_PIXEL_TYPE_NB; key.type++) { for (key.uop = SWS_UOP_INVALID + 1; key.uop < SWS_UOP_TYPE_NB; key.uop++) { - const char *macro = uop_names[key.uop].macro; + const char *macro = uop_names[key.uop].full + 8; const char *prefix = pixel_types[key.type].prefix; av_bprintf(bp, "#define SWS_FOR_%s%s(MACRO, ...)", prefix, macro); av_tree_enumerate(root, &key, enum_type, generate_entry_args); -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
