This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit 5163b05552edbbdc98712257bda0353dfc45bb02 Author: Niklas Haas <[email protected]> AuthorDate: Tue Jun 9 12:44:41 2026 +0200 Commit: Niklas Haas <[email protected]> CommitDate: Sat Jun 20 14:08:49 2026 +0000 swscale/uops: add SWS_UOP_READ_PALETTE This commit only adds the uop itself; it does not yet add any implementations. Sponsored-by: Sovereign Tech Fund Signed-off-by: Niklas Haas <[email protected]> --- libswscale/uops.c | 5 ++++- libswscale/uops.h | 1 + libswscale/uops_macros.h | 8 ++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/libswscale/uops.c b/libswscale/uops.c index 3c3edaf9d1..6045dd4bfd 100644 --- a/libswscale/uops.c +++ b/libswscale/uops.c @@ -54,6 +54,7 @@ static const struct { 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"), @@ -500,7 +501,9 @@ static int translate_rw_op(SwsContext *ctx, SwsUOpList *ops, SwsUOpFlags flags, return AVERROR(ENOTSUP); uop.uop = is_read ? SWS_UOP_READ_PACKED : SWS_UOP_WRITE_PACKED; } else if (op->rw.mode == SWS_RW_PALETTE) { - return AVERROR(ENOTSUP); + if (op->rw.frac || !is_read) + return AVERROR(ENOTSUP); + uop.uop = SWS_UOP_READ_PALETTE; } else if (op->rw.frac == 3) { uop.uop = is_read ? SWS_UOP_READ_BIT : SWS_UOP_WRITE_BIT; } else if (op->rw.frac == 1) { diff --git a/libswscale/uops.h b/libswscale/uops.h index b2e9af30a4..533d036ca6 100644 --- a/libswscale/uops.h +++ b/libswscale/uops.h @@ -96,6 +96,7 @@ typedef enum SwsUOpType { SWS_UOP_READ_PACKED, /* simple packed byte-aligned read */ SWS_UOP_READ_NIBBLE, /* fractional read (4 bits) from single plane */ SWS_UOP_READ_BIT, /* fractional read (1 bit) from single plane */ + SWS_UOP_READ_PALETTE, /* indexed read from palette in plane 1 */ SWS_UOP_WRITE_PLANAR, /* simple planar byte-aligned write */ SWS_UOP_WRITE_PACKED, /* simple packed byte-aligned write */ diff --git a/libswscale/uops_macros.h b/libswscale/uops_macros.h index 77a4900248..9166a72850 100644 --- a/libswscale/uops_macros.h +++ b/libswscale/uops_macros.h @@ -75,6 +75,8 @@ MACRO(__VA_ARGS__, u8_read_bit_x , SWS_PIXEL_U8 , SWS_UOP_READ_BIT , 0x1) #define SWS_FOR_STRUCT_U8_READ_BIT(MACRO, ...) \ MACRO(__VA_ARGS__, u8_read_bit_x , .type = SWS_PIXEL_U8 , .uop = SWS_UOP_READ_BIT , .mask = 0x1) +#define SWS_FOR_U8_READ_PALETTE(MACRO, ...) +#define SWS_FOR_STRUCT_U8_READ_PALETTE(MACRO, ...) #define SWS_FOR_U8_WRITE_PLANAR(MACRO, ...) \ MACRO(__VA_ARGS__, u8_write_planar_x , SWS_PIXEL_U8 , SWS_UOP_WRITE_PLANAR , 0x1) \ MACRO(__VA_ARGS__, u8_write_planar_xy , SWS_PIXEL_U8 , SWS_UOP_WRITE_PLANAR , 0x3) \ @@ -393,6 +395,8 @@ #define SWS_FOR_STRUCT_U16_READ_NIBBLE(MACRO, ...) #define SWS_FOR_U16_READ_BIT(MACRO, ...) #define SWS_FOR_STRUCT_U16_READ_BIT(MACRO, ...) +#define SWS_FOR_U16_READ_PALETTE(MACRO, ...) +#define SWS_FOR_STRUCT_U16_READ_PALETTE(MACRO, ...) #define SWS_FOR_U16_WRITE_PLANAR(MACRO, ...) \ MACRO(__VA_ARGS__, u16_write_planar_x , SWS_PIXEL_U16, SWS_UOP_WRITE_PLANAR , 0x1) \ MACRO(__VA_ARGS__, u16_write_planar_xy , SWS_PIXEL_U16, SWS_UOP_WRITE_PLANAR , 0x3) \ @@ -681,6 +685,8 @@ #define SWS_FOR_STRUCT_U32_READ_NIBBLE(MACRO, ...) #define SWS_FOR_U32_READ_BIT(MACRO, ...) #define SWS_FOR_STRUCT_U32_READ_BIT(MACRO, ...) +#define SWS_FOR_U32_READ_PALETTE(MACRO, ...) +#define SWS_FOR_STRUCT_U32_READ_PALETTE(MACRO, ...) #define SWS_FOR_U32_WRITE_PLANAR(MACRO, ...) \ MACRO(__VA_ARGS__, u32_write_planar_x , SWS_PIXEL_U32, SWS_UOP_WRITE_PLANAR , 0x1) \ MACRO(__VA_ARGS__, u32_write_planar_xy , SWS_PIXEL_U32, SWS_UOP_WRITE_PLANAR , 0x3) \ @@ -945,6 +951,8 @@ #define SWS_FOR_STRUCT_F32_READ_NIBBLE(MACRO, ...) #define SWS_FOR_F32_READ_BIT(MACRO, ...) #define SWS_FOR_STRUCT_F32_READ_BIT(MACRO, ...) +#define SWS_FOR_F32_READ_PALETTE(MACRO, ...) +#define SWS_FOR_STRUCT_F32_READ_PALETTE(MACRO, ...) #define SWS_FOR_F32_WRITE_PLANAR(MACRO, ...) #define SWS_FOR_STRUCT_F32_WRITE_PLANAR(MACRO, ...) #define SWS_FOR_F32_WRITE_PACKED(MACRO, ...) _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
