mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2026-11-06 05:17:42 +00:00
avutil: add AV_PIX_FMT_XYZP12
Planar 12-bit XYZ, the natural planar layout for DCI JPEG2000 content. Also wire it into the Vulkan format table and shader format helpers.
This commit is contained in:
1 parent
47313ad3f9
commit
2983c23762
11 files changed
+58
-2
No files matched your search
@@ -2,6 +2,9 @@ The last version increases of all libraries were on 2026-06-23.
|
||||
|
||||
API changes, most recent first:
|
||||
|
||||
2026-10-03 - xxxxxxxxxx - lavu 61.11.100 - pixfmt.h
|
||||
Add AV_PIX_FMT_XYZP12LE, AV_PIX_FMT_XYZP12BE, and AV_PIX_FMT_XYZP12.
|
||||
|
||||
2026-09-xx - xxxxxxxxxx - lavfi 12.5.100 - avfilter.h buffersrc.h buffersink.h
|
||||
Add AVFilterLink.chroma_location, AVBufferSrcParameters.chroma_location and
|
||||
av_buffersink_get_chroma_location().
|
||||
|
||||
@@ -514,6 +514,9 @@ static const struct FFVkFormatEntry {
|
||||
{ VK_FORMAT_R16_SFLOAT, AV_PIX_FMT_GBRPF16, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_SFLOAT, VK_FORMAT_R16_SFLOAT, VK_FORMAT_R16_SFLOAT } },
|
||||
{ VK_FORMAT_R32_SFLOAT, AV_PIX_FMT_GBRPF32, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R32_SFLOAT, VK_FORMAT_R32_SFLOAT, VK_FORMAT_R32_SFLOAT } },
|
||||
|
||||
/* XYZ */
|
||||
{ VK_FORMAT_R16_UNORM, AV_PIX_FMT_XYZP12, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } },
|
||||
|
||||
/* Planar RGB + Alpha */
|
||||
{ VK_FORMAT_R8_UNORM, AV_PIX_FMT_GBRAP, VK_IMAGE_ASPECT_COLOR_BIT, 4, 4, 4, { VK_FORMAT_R8_UNORM, VK_FORMAT_R8_UNORM, VK_FORMAT_R8_UNORM, VK_FORMAT_R8_UNORM } },
|
||||
{ VK_FORMAT_R16_UNORM, AV_PIX_FMT_GBRAP10, VK_IMAGE_ASPECT_COLOR_BIT, 4, 4, 4, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } },
|
||||
|
||||
@@ -2145,6 +2145,30 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
|
||||
},
|
||||
.flags = AV_PIX_FMT_FLAG_XYZ | AV_PIX_FMT_FLAG_BE,
|
||||
},
|
||||
[AV_PIX_FMT_XYZP12LE] = {
|
||||
.name = "xyzp12le",
|
||||
.nb_components = 3,
|
||||
.log2_chroma_w = 0,
|
||||
.log2_chroma_h = 0,
|
||||
.comp = {
|
||||
{ 0, 2, 0, 4, 12 }, /* X */
|
||||
{ 1, 2, 0, 4, 12 }, /* Y */
|
||||
{ 2, 2, 0, 4, 12 }, /* Z */
|
||||
},
|
||||
.flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_XYZ,
|
||||
},
|
||||
[AV_PIX_FMT_XYZP12BE] = {
|
||||
.name = "xyzp12be",
|
||||
.nb_components = 3,
|
||||
.log2_chroma_w = 0,
|
||||
.log2_chroma_h = 0,
|
||||
.comp = {
|
||||
{ 0, 2, 0, 4, 12 }, /* X */
|
||||
{ 1, 2, 0, 4, 12 }, /* Y */
|
||||
{ 2, 2, 0, 4, 12 }, /* Z */
|
||||
},
|
||||
.flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_XYZ | AV_PIX_FMT_FLAG_BE,
|
||||
},
|
||||
|
||||
#define BAYER8_DESC_COMMON \
|
||||
.nb_components= 3, \
|
||||
|
||||
@@ -505,6 +505,9 @@ enum AVPixelFormat {
|
||||
*/
|
||||
AV_PIX_FMT_CUARRAY,
|
||||
|
||||
AV_PIX_FMT_XYZP12LE, ///< planar XYZ 4:4:4, 36 bpp, (msb) 12X, 12Y, 12Z (lsb), the 2-byte value for each X/Y/Z is stored as little-endian, the 4 lower bits are set to 0
|
||||
AV_PIX_FMT_XYZP12BE, ///< planar XYZ 4:4:4, 36 bpp, (msb) 12X, 12Y, 12Z (lsb), the 2-byte value for each X/Y/Z is stored as big-endian, the 4 lower bits are set to 0
|
||||
|
||||
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
|
||||
};
|
||||
|
||||
@@ -603,6 +606,8 @@ enum AVPixelFormat {
|
||||
#define AV_PIX_FMT_YUVA444P16 AV_PIX_FMT_NE(YUVA444P16BE, YUVA444P16LE)
|
||||
|
||||
#define AV_PIX_FMT_XYZ12 AV_PIX_FMT_NE(XYZ12BE, XYZ12LE)
|
||||
#define AV_PIX_FMT_XYZP12 AV_PIX_FMT_NE(XYZP12BE, XYZP12LE)
|
||||
|
||||
#define AV_PIX_FMT_NV20 AV_PIX_FMT_NE(NV20BE, NV20LE)
|
||||
#define AV_PIX_FMT_AYUV64 AV_PIX_FMT_NE(AYUV64BE, AYUV64LE)
|
||||
#define AV_PIX_FMT_P010 AV_PIX_FMT_NE(P010BE, P010LE)
|
||||
|
||||
+1
-1
@@ -79,7 +79,7 @@
|
||||
*/
|
||||
|
||||
#define LIBAVUTIL_VERSION_MAJOR 61
|
||||
#define LIBAVUTIL_VERSION_MINOR 10
|
||||
#define LIBAVUTIL_VERSION_MINOR 11
|
||||
#define LIBAVUTIL_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||
|
||||
@@ -1707,6 +1707,7 @@ int ff_vk_mt_is_np_rgb(enum AVPixelFormat pix_fmt)
|
||||
pix_fmt == AV_PIX_FMT_X2RGB10 || pix_fmt == AV_PIX_FMT_X2BGR10 ||
|
||||
pix_fmt == AV_PIX_FMT_RGBAF32 || pix_fmt == AV_PIX_FMT_RGBF32 ||
|
||||
pix_fmt == AV_PIX_FMT_RGBA128 || pix_fmt == AV_PIX_FMT_RGB96 ||
|
||||
pix_fmt == AV_PIX_FMT_XYZP12 ||
|
||||
pix_fmt == AV_PIX_FMT_GBRP || pix_fmt == AV_PIX_FMT_BAYER_RGGB16)
|
||||
return 1;
|
||||
return 0;
|
||||
@@ -1875,6 +1876,7 @@ const char *ff_vk_shader_rep_fmt(enum AVPixelFormat pix_fmt,
|
||||
case AV_PIX_FMT_GBRP14:
|
||||
case AV_PIX_FMT_GBRP16:
|
||||
case AV_PIX_FMT_GBRPF16:
|
||||
case AV_PIX_FMT_XYZP12:
|
||||
case AV_PIX_FMT_YUV420P10:
|
||||
case AV_PIX_FMT_YUV420P12:
|
||||
case AV_PIX_FMT_YUV420P16:
|
||||
|
||||
@@ -266,5 +266,7 @@ Testing gbrp12msbbe... no: unsupported
|
||||
Testing gbrp12msble... ok
|
||||
Testing ohcodec... no: unsupported
|
||||
Testing cuarray... no: unsupported
|
||||
Testing xyzp12le... no: unsupported
|
||||
Testing xyzp12be... no: unsupported
|
||||
half transparent red over transparent rgba by mask: 128 0 0 128
|
||||
half transparent red over transparent rgba by rectangle: 128 0 0 128
|
||||
@@ -306,6 +306,8 @@ gbrp10msbbe planes: 3, linesizes: 128 128 128 0, plane_sizes: 6144 6144
|
||||
gbrp10msble planes: 3, linesizes: 128 128 128 0, plane_sizes: 6144 6144 6144 0, plane_offsets: 6144 6144 0, total_size: 18432
|
||||
gbrp12msbbe planes: 3, linesizes: 128 128 128 0, plane_sizes: 6144 6144 6144 0, plane_offsets: 6144 6144 0, total_size: 18432
|
||||
gbrp12msble planes: 3, linesizes: 128 128 128 0, plane_sizes: 6144 6144 6144 0, plane_offsets: 6144 6144 0, total_size: 18432
|
||||
xyzp12le planes: 3, linesizes: 128 128 128 0, plane_sizes: 6144 6144 6144 0, plane_offsets: 6144 6144 0, total_size: 18432
|
||||
xyzp12be planes: 3, linesizes: 128 128 128 0, plane_sizes: 6144 6144 6144 0, plane_offsets: 6144 6144 0, total_size: 18432
|
||||
|
||||
image_fill_black tests
|
||||
yuv420p total_size: 4608, black_unknown_crc: 0xd00f6cc6, black_tv_crc: 0xd00f6cc6, black_pc_crc: 0x234969af
|
||||
@@ -559,3 +561,5 @@ gbrp10msbbe total_size: 18432, black_unknown_crc: 0x00000000, black_tv_cr
|
||||
gbrp10msble total_size: 18432, black_unknown_crc: 0x00000000, black_tv_crc: 0x00000000, black_pc_crc: 0x00000000
|
||||
gbrp12msbbe total_size: 18432, black_unknown_crc: 0x00000000, black_tv_crc: 0x00000000, black_pc_crc: 0x00000000
|
||||
gbrp12msble total_size: 18432, black_unknown_crc: 0x00000000, black_tv_crc: 0x00000000, black_pc_crc: 0x00000000
|
||||
xyzp12le total_size: 18432, black_unknown_crc: 0x00000000, black_tv_crc: 0x00000000, black_pc_crc: 0x00000000
|
||||
xyzp12be total_size: 18432, black_unknown_crc: 0x00000000, black_tv_crc: 0x00000000, black_pc_crc: 0x00000000
|
||||
@@ -281,3 +281,5 @@ Testing pixel format descriptors
|
||||
pix fmt gbrp12msble avg_bpp:48 planes:3
|
||||
pix fmt ohcodec avg_bpp:0 planes:0
|
||||
pix fmt cuarray avg_bpp:0 planes:0
|
||||
pix fmt xyzp12le avg_bpp:48 planes:3
|
||||
pix fmt xyzp12be avg_bpp:48 planes:3
|
||||
@@ -1 +1 @@
|
||||
bc046cee81413c33100cc3c71f058e9d
|
||||
b4ea23c724f642b3e43d329ed4981d38
|
||||
@@ -105,6 +105,8 @@ isNBPS:
|
||||
xv36le
|
||||
xyz12be
|
||||
xyz12le
|
||||
xyzp12be
|
||||
xyzp12le
|
||||
y210be
|
||||
y210le
|
||||
y212be
|
||||
@@ -221,6 +223,7 @@ isBE:
|
||||
xv36be
|
||||
xv48be
|
||||
xyz12be
|
||||
xyzp12be
|
||||
y210be
|
||||
y212be
|
||||
y216be
|
||||
@@ -303,6 +306,8 @@ isYUV:
|
||||
xv48le
|
||||
xyz12be
|
||||
xyz12le
|
||||
xyzp12be
|
||||
xyzp12le
|
||||
y210be
|
||||
y210le
|
||||
y212be
|
||||
@@ -419,6 +424,8 @@ isPlanarYUV:
|
||||
p412le
|
||||
p416be
|
||||
p416le
|
||||
xyzp12be
|
||||
xyzp12le
|
||||
yuv410p
|
||||
yuv411p
|
||||
yuv420p
|
||||
@@ -1035,6 +1042,8 @@ Planar:
|
||||
p412le
|
||||
p416be
|
||||
p416le
|
||||
xyzp12be
|
||||
xyzp12le
|
||||
yuv410p
|
||||
yuv411p
|
||||
yuv420p
|
||||
@@ -1241,6 +1250,8 @@ DataInHighBits:
|
||||
xv36le
|
||||
xyz12be
|
||||
xyz12le
|
||||
xyzp12be
|
||||
xyzp12le
|
||||
y210be
|
||||
y210le
|
||||
y212be
|
||||
|
||||
Reference in new issue
Block a user