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]

Reply via email to