On 10/14/2024 10:41 PM, Lynne via ffmpeg-devel wrote:
On 14/10/2024 17:24, James Almer wrote:On 10/14/2024 12:11 PM, Lynne via ffmpeg-devel wrote:On 12/10/2024 01:01, Lynne wrote:This format is useful for doing certain lossless transforms on images, RCT in particular, which require you to escalate the size from 16 to 32 bits to avoid overflows.APIchanges will be done alongside when comitting. --- libavutil/pixdesc.c | 27 +++++++++++++++++++++++++++ libavutil/pixfmt.h | 5 +++++ 2 files changed, 32 insertions(+) diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index 43b9c08e14..8736e4f47d 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c@@ -2803,6 +2803,33 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {.flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_FLOAT | AV_PIX_FMT_FLAG_ALPHA, }, + [AV_PIX_FMT_RGBA128BE] = { + .name = "rgba128be", + .nb_components = 4, + .log2_chroma_w = 0, + .log2_chroma_h = 0, + .comp = { + { 0, 16, 0, 0, 32 }, /* R */ + { 0, 16, 4, 0, 32 }, /* G */ + { 0, 16, 8, 0, 32 }, /* B */ + { 0, 16, 12, 0, 32 }, /* A */ + }, + .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB | + AV_PIX_FMT_FLAG_ALPHA, + }, + [AV_PIX_FMT_RGBA128LE] = { + .name = "rgba128le", + .nb_components = 4, + .log2_chroma_w = 0, + .log2_chroma_h = 0, + .comp = { + { 0, 16, 0, 0, 32 }, /* R */ + { 0, 16, 4, 0, 32 }, /* G */ + { 0, 16, 8, 0, 32 }, /* B */ + { 0, 16, 12, 0, 32 }, /* A */ + }, + .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA, + }, [AV_PIX_FMT_P212BE] = { .name = "p212be", .nb_components = 3, diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h index 3caa183ba0..f03e4d701d 100644 --- a/libavutil/pixfmt.h +++ b/libavutil/pixfmt.h @@ -448,6 +448,9 @@ enum AVPixelFormat {AV_PIX_FMT_V30XBE, ///< packed VYUX 4:4:4 like XV30, 32bpp, (msb)10V 10Y 10U 2X(lsb), big-endian AV_PIX_FMT_V30XLE, ///< packed VYUX 4:4:4 like XV30, 32bpp, (msb)10V 10Y 10U 2X(lsb), little-endian + AV_PIX_FMT_RGBA128BE, ///< packed RGBA 32:32:32:32, 128bpp, RGBARGBA..., big-endian + AV_PIX_FMT_RGBA128LE, ///< packed RGBA 32:32:32:32, 128bpp, RGBARGBA..., little-endian+AV_PIX_FMT_NB ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions}; @@ -558,6 +561,8 @@ enum AVPixelFormat { #define AV_PIX_FMT_RGBF32 AV_PIX_FMT_NE(RGBF32BE, RGBF32LE) #define AV_PIX_FMT_RGBAF32 AV_PIX_FMT_NE(RGBAF32BE, RGBAF32LE) +#define AV_PIX_FMT_RGBA128 AV_PIX_FMT_NE(RGBA128BE, RGBA128LE) + /** * Chromaticity coordinates of the source primaries.* These values match the ones defined by ISO/IEC 23091-2_2019 subclause 8.1 and ITU-T H.273.Planning to push this patchset tomorrow unless there are comments.Support for these in swscale will require considerable changes afaics, since they'd be the first non-float formats that use more than 16 bits per component.I'm hoping that the rewrite/sws v2 will make this simpler. For now, do you have issues with this landing?
Not really. If they are useful without sws support then it's fine.
OpenPGP_signature.asc
Description: OpenPGP digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".