[PR] swscale/uops: reduce size of uop_names[] array (PR #23565)

Ramiro Polla via ffmpeg-devel <[email protected]>
Newsgroups gmane.comp.video.ffmpeg.devel
Message-ID <178223436255.59.14786451875590454074@29965ddac10e>
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]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.