mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-17 20:17:55 +02:00
lavu/pixfmt: add high-bit-depth semi-planar 4:2:2/4:4:4 formats
These are used by VideoToolbox hardware decoders.
This commit is contained in:
parent
4b54818981
commit
b2cd1fb2ec
@ -14,6 +14,9 @@ libavutil: 2021-04-27
|
||||
|
||||
API changes, most recent first:
|
||||
|
||||
2021-11-22 - xxxxxxxxxx - lavu 57.9.100 - pixfmt.h
|
||||
Add AV_PIX_FMT_P210, AV_PIX_FMT_P410, AV_PIX_FMT_P216, and AV_PIX_FMT_P416.
|
||||
|
||||
2021-11-17 - xxxxxxxxxx - lavf 57.9.100 - frame.h
|
||||
Add AV_FRAME_DATA_DOVI_RPU_BUFFER.
|
||||
|
||||
|
@ -2393,6 +2393,102 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
|
||||
.name = "vulkan",
|
||||
.flags = AV_PIX_FMT_FLAG_HWACCEL,
|
||||
},
|
||||
[AV_PIX_FMT_P210BE] = {
|
||||
.name = "p210be",
|
||||
.nb_components = 3,
|
||||
.log2_chroma_w = 1,
|
||||
.log2_chroma_h = 0,
|
||||
.comp = {
|
||||
{ 0, 2, 0, 6, 10 }, /* Y */
|
||||
{ 1, 4, 0, 6, 10 }, /* U */
|
||||
{ 1, 4, 2, 6, 10 }, /* V */
|
||||
},
|
||||
.flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE,
|
||||
},
|
||||
[AV_PIX_FMT_P210LE] = {
|
||||
.name = "p210le",
|
||||
.nb_components = 3,
|
||||
.log2_chroma_w = 1,
|
||||
.log2_chroma_h = 0,
|
||||
.comp = {
|
||||
{ 0, 2, 0, 6, 10 }, /* Y */
|
||||
{ 1, 4, 0, 6, 10 }, /* U */
|
||||
{ 1, 4, 2, 6, 10 }, /* V */
|
||||
},
|
||||
.flags = AV_PIX_FMT_FLAG_PLANAR,
|
||||
},
|
||||
[AV_PIX_FMT_P410BE] = {
|
||||
.name = "p410be",
|
||||
.nb_components = 3,
|
||||
.log2_chroma_w = 0,
|
||||
.log2_chroma_h = 0,
|
||||
.comp = {
|
||||
{ 0, 2, 0, 6, 10 }, /* Y */
|
||||
{ 1, 4, 0, 6, 10 }, /* U */
|
||||
{ 1, 4, 2, 6, 10 }, /* V */
|
||||
},
|
||||
.flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE,
|
||||
},
|
||||
[AV_PIX_FMT_P410LE] = {
|
||||
.name = "p410le",
|
||||
.nb_components = 3,
|
||||
.log2_chroma_w = 0,
|
||||
.log2_chroma_h = 0,
|
||||
.comp = {
|
||||
{ 0, 2, 0, 6, 10 }, /* Y */
|
||||
{ 1, 4, 0, 6, 10 }, /* U */
|
||||
{ 1, 4, 2, 6, 10 }, /* V */
|
||||
},
|
||||
.flags = AV_PIX_FMT_FLAG_PLANAR,
|
||||
},
|
||||
[AV_PIX_FMT_P216BE] = {
|
||||
.name = "p216be",
|
||||
.nb_components = 3,
|
||||
.log2_chroma_w = 1,
|
||||
.log2_chroma_h = 0,
|
||||
.comp = {
|
||||
{ 0, 2, 0, 0, 16 }, /* Y */
|
||||
{ 1, 4, 0, 0, 16 }, /* U */
|
||||
{ 1, 4, 2, 0, 16 }, /* V */
|
||||
},
|
||||
.flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE,
|
||||
},
|
||||
[AV_PIX_FMT_P216LE] = {
|
||||
.name = "p216le",
|
||||
.nb_components = 3,
|
||||
.log2_chroma_w = 1,
|
||||
.log2_chroma_h = 0,
|
||||
.comp = {
|
||||
{ 0, 2, 0, 0, 16 }, /* Y */
|
||||
{ 1, 4, 0, 0, 16 }, /* U */
|
||||
{ 1, 4, 2, 0, 16 }, /* V */
|
||||
},
|
||||
.flags = AV_PIX_FMT_FLAG_PLANAR,
|
||||
},
|
||||
[AV_PIX_FMT_P416BE] = {
|
||||
.name = "p416be",
|
||||
.nb_components = 3,
|
||||
.log2_chroma_w = 0,
|
||||
.log2_chroma_h = 0,
|
||||
.comp = {
|
||||
{ 0, 2, 0, 0, 16 }, /* Y */
|
||||
{ 1, 4, 0, 0, 16 }, /* U */
|
||||
{ 1, 4, 2, 0, 16 }, /* V */
|
||||
},
|
||||
.flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE,
|
||||
},
|
||||
[AV_PIX_FMT_P416LE] = {
|
||||
.name = "p416le",
|
||||
.nb_components = 3,
|
||||
.log2_chroma_w = 0,
|
||||
.log2_chroma_h = 0,
|
||||
.comp = {
|
||||
{ 0, 2, 0, 0, 16 }, /* Y */
|
||||
{ 1, 4, 0, 0, 16 }, /* U */
|
||||
{ 1, 4, 2, 0, 16 }, /* V */
|
||||
},
|
||||
.flags = AV_PIX_FMT_FLAG_PLANAR,
|
||||
},
|
||||
};
|
||||
|
||||
static const char * const color_range_names[] = {
|
||||
|
@ -352,6 +352,19 @@ enum AVPixelFormat {
|
||||
AV_PIX_FMT_X2RGB10BE, ///< packed RGB 10:10:10, 30bpp, (msb)2X 10R 10G 10B(lsb), big-endian, X=unused/undefined
|
||||
AV_PIX_FMT_X2BGR10LE, ///< packed BGR 10:10:10, 30bpp, (msb)2X 10B 10G 10R(lsb), little-endian, X=unused/undefined
|
||||
AV_PIX_FMT_X2BGR10BE, ///< packed BGR 10:10:10, 30bpp, (msb)2X 10B 10G 10R(lsb), big-endian, X=unused/undefined
|
||||
|
||||
AV_PIX_FMT_P210BE, ///< interleaved chroma YUV 4:2:2, 20bpp, data in the high bits, big-endian
|
||||
AV_PIX_FMT_P210LE, ///< interleaved chroma YUV 4:2:2, 20bpp, data in the high bits, little-endian
|
||||
|
||||
AV_PIX_FMT_P410BE, ///< interleaved chroma YUV 4:4:4, 30bpp, data in the high bits, big-endian
|
||||
AV_PIX_FMT_P410LE, ///< interleaved chroma YUV 4:4:4, 30bpp, data in the high bits, little-endian
|
||||
|
||||
AV_PIX_FMT_P216BE, ///< interleaved chroma YUV 4:2:2, 32bpp, big-endian
|
||||
AV_PIX_FMT_P216LE, ///< interleaved chroma YUV 4:2:2, 32bpp, liddle-endian
|
||||
|
||||
AV_PIX_FMT_P416BE, ///< interleaved chroma YUV 4:4:4, 48bpp, big-endian
|
||||
AV_PIX_FMT_P416LE, ///< interleaved chroma YUV 4:4:4, 48bpp, 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
|
||||
};
|
||||
|
||||
@ -444,6 +457,11 @@ enum AVPixelFormat {
|
||||
#define AV_PIX_FMT_X2RGB10 AV_PIX_FMT_NE(X2RGB10BE, X2RGB10LE)
|
||||
#define AV_PIX_FMT_X2BGR10 AV_PIX_FMT_NE(X2BGR10BE, X2BGR10LE)
|
||||
|
||||
#define AV_PIX_FMT_P210 AV_PIX_FMT_NE(P210BE, P210LE)
|
||||
#define AV_PIX_FMT_P410 AV_PIX_FMT_NE(P410BE, P410LE)
|
||||
#define AV_PIX_FMT_P216 AV_PIX_FMT_NE(P216BE, P216LE)
|
||||
#define AV_PIX_FMT_P416 AV_PIX_FMT_NE(P416BE, P416LE)
|
||||
|
||||
/**
|
||||
* 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.
|
||||
|
@ -238,3 +238,11 @@ x2rgb10le planes: 1, linesizes: 256 0 0 0, plane_sizes: 12288 0
|
||||
x2rgb10be planes: 1, linesizes: 256 0 0 0, plane_sizes: 12288 0 0 0, plane_offsets: 0 0 0, total_size: 12288
|
||||
x2bgr10le planes: 1, linesizes: 256 0 0 0, plane_sizes: 12288 0 0 0, plane_offsets: 0 0 0, total_size: 12288
|
||||
x2bgr10be planes: 1, linesizes: 256 0 0 0, plane_sizes: 12288 0 0 0, plane_offsets: 0 0 0, total_size: 12288
|
||||
p210be planes: 2, linesizes: 128 128 0 0, plane_sizes: 6144 6144 0 0, plane_offsets: 6144 0 0, total_size: 12288
|
||||
p210le planes: 2, linesizes: 128 128 0 0, plane_sizes: 6144 6144 0 0, plane_offsets: 6144 0 0, total_size: 12288
|
||||
p410be planes: 2, linesizes: 128 256 0 0, plane_sizes: 6144 12288 0 0, plane_offsets: 6144 0 0, total_size: 18432
|
||||
p410le planes: 2, linesizes: 128 256 0 0, plane_sizes: 6144 12288 0 0, plane_offsets: 6144 0 0, total_size: 18432
|
||||
p216be planes: 2, linesizes: 128 128 0 0, plane_sizes: 6144 6144 0 0, plane_offsets: 6144 0 0, total_size: 12288
|
||||
p216le planes: 2, linesizes: 128 128 0 0, plane_sizes: 6144 6144 0 0, plane_offsets: 6144 0 0, total_size: 12288
|
||||
p416be planes: 2, linesizes: 128 256 0 0, plane_sizes: 6144 12288 0 0, plane_offsets: 6144 0 0, total_size: 18432
|
||||
p416le planes: 2, linesizes: 128 256 0 0, plane_sizes: 6144 12288 0 0, plane_offsets: 6144 0 0, total_size: 18432
|
||||
|
@ -13,6 +13,10 @@ is16BPS:
|
||||
gray16le
|
||||
p016be
|
||||
p016le
|
||||
p216be
|
||||
p216le
|
||||
p416be
|
||||
p416le
|
||||
rgb48be
|
||||
rgb48le
|
||||
rgba64be
|
||||
@ -57,6 +61,10 @@ isNBPS:
|
||||
nv20le
|
||||
p010be
|
||||
p010le
|
||||
p210be
|
||||
p210le
|
||||
p410be
|
||||
p410le
|
||||
x2bgr10be
|
||||
x2bgr10le
|
||||
x2rgb10be
|
||||
@ -140,6 +148,10 @@ isBE:
|
||||
nv20be
|
||||
p010be
|
||||
p016be
|
||||
p210be
|
||||
p216be
|
||||
p410be
|
||||
p416be
|
||||
rgb444be
|
||||
rgb48be
|
||||
rgb555be
|
||||
@ -193,6 +205,14 @@ isYUV:
|
||||
p010le
|
||||
p016be
|
||||
p016le
|
||||
p210be
|
||||
p210le
|
||||
p216be
|
||||
p216le
|
||||
p410be
|
||||
p410le
|
||||
p416be
|
||||
p416le
|
||||
uyvy422
|
||||
uyyvyy411
|
||||
xyz12be
|
||||
@ -287,6 +307,14 @@ isPlanarYUV:
|
||||
p010le
|
||||
p016be
|
||||
p016le
|
||||
p210be
|
||||
p210le
|
||||
p216be
|
||||
p216le
|
||||
p410be
|
||||
p410le
|
||||
p416be
|
||||
p416le
|
||||
yuv410p
|
||||
yuv411p
|
||||
yuv420p
|
||||
@ -370,6 +398,14 @@ isSemiPlanarYUV:
|
||||
p010le
|
||||
p016be
|
||||
p016le
|
||||
p210be
|
||||
p210le
|
||||
p216be
|
||||
p216le
|
||||
p410be
|
||||
p410le
|
||||
p416be
|
||||
p416le
|
||||
|
||||
isRGB:
|
||||
0bgr
|
||||
@ -751,6 +787,14 @@ Planar:
|
||||
p010le
|
||||
p016be
|
||||
p016le
|
||||
p210be
|
||||
p210le
|
||||
p216be
|
||||
p216le
|
||||
p410be
|
||||
p410le
|
||||
p416be
|
||||
p416le
|
||||
yuv410p
|
||||
yuv411p
|
||||
yuv420p
|
||||
|
Loading…
x
Reference in New Issue
Block a user