blob: c7fc837c73c86d1ca21de887f4b946f71d18313d [file] [log] [blame]
Media Types
-----------
video/x-raw
width, G_TYPE_INT, mandatory
The width of the image in pixels.
height, G_TYPE_INT, mandatory
The height of the image in pixels
framerate, GST_TYPE_FRACTION, default 0/1
The framerate of the video 0/1 for variable framerate
max-framerate, GST_TYPE_FRACTION, default as framerate
For variable framerates this would be the maximum framerate that
is expected. This value is only valid when the framerate is 0/1
views, G_TYPE_INT, default 1
The number of views for multiview video. Each buffer contains
multiple GstVideoMeta buffers that describe each view. use the frame id to
get access to the different views.
interlace-mode, G_TYPE_STRING, default progressive
The interlace mode. The following values are possible:
"progressive" : all frames are progressive
"interleaved" : 2 fields are interleaved in one video frame. Extra buffer
flags describe the field order.
"mixed" : progressive and interleaved frames, extra buffer flags describe
the frame and fields.
"fields" : 2 fields are stored in one buffer, use the frame ID
to get access to the required field. For multiview (the
'views' property > 1) the fields of view N can be found at
frame ID (N * 2) and (N * 2) + 1.
Each view has only half the amount of lines as noted in the
height property, pads specifying the "fields" property
must be prepared for this. This mode requires multiple
GstVideoMeta metadata to describe the fields.
chroma-site, G_TYPE_STRING, default UNKNOWN
The chroma siting of the video frames.
"jpeg" : GST_VIDEO_CHROMA_SITE_JPEG
"mpeg2": GST_VIDEO_CHROMA_SITE_MPEG2
"dv" : GST_VIDEO_CHROMA_SITE_DV
colorimetry, G_TYPE_STRING, default UNKNOWN
The colorimetry of the video frames predefined colorimetry is given with
the following values:
"bt601"
"bt709"
"smpte240m"
pixel-aspect-ratio, GST_TYPE_FRACTION, default 1/1
The pixel aspect ration of the video
format, G_TYPE_STRING, mandatory
The format of the video, see the Formats section for a list of valid format
strings.
Metadata
--------
"GstVideoMeta"
contains the description of one video field or frame. It has
stride support and support for having multiple memory regions per frame.
Multiple GstVideoMeta can be added to a buffer and can be identified with a
unique id. This id can be used to select fields in interlaced formats or
views in multiview formats.
"GstVideoCropMeta"
Contains the cropping region of the video.
Formats
-------
"I420" planar 4:2:0 YUV
Component 0: Y
depth: 8
pstride: 1
default offset: 0
default rstride: RU4 (width)
default size: rstride (component0) * RU2 (height)
Component 1: U
depth: 8
pstride: 1
default offset: size (component0)
default rstride: RU4 (RU2 (width) / 2)
default size: rstride (component1) * RU2 (height) / 2
Component 2: V
depth 8
pstride: 1
default offset: offset (component1) + size (component1)
default rstride: RU4 (RU2 (width) / 2)
default size: rstride (component2) * RU2 (height) / 2
Image
default size: size (component0) +
size (component1) +
size (component2)
"YV12" planar 4:2:0 YUV
Same as I420 but with U and V planes swapped
Component 0: Y
depth: 8
pstride: 1
default offset: 0
default rstride: RU4 (width)
default size: rstride (component0) * RU2 (height)
Component 1: U
depth 8
pstride: 1
default offset: offset (component2) + size (component2)
default rstride: RU4 (RU2 (width) / 2)
default size: rstride (component1) * RU2 (height) / 2
Component 2: V
depth: 8
pstride: 1
default offset: size (component0)
default rstride: RU4 (RU2 (width) / 2)
default size: rstride (component2) * RU2 (height) / 2
Image
default size: size (component0) +
size (component1) +
size (component2)
"YUY2" packed 4:2:2 YUV
+--+--+--+--+ +--+--+--+--+
|Y0|U0|Y1|V0| |Y2|U2|Y3|V2| ...
+--+--+--+--+ +--+--+--+--+
Component 0: Y
depth: 8
pstride: 2
offset: 0
Component 1: U
depth: 8
offset: 1
pstride: 4
Component 2: V
depth 8
offset: 3
pstride: 4
Image
default rstride: RU4 (width * 2)
default size: rstride (image) * height
"YVYU" packed 4:2:2 YUV
Same as "YUY2" but with U and V planes swapped
+--+--+--+--+ +--+--+--+--+
|Y0|V0|Y1|U0| |Y2|V2|Y3|U2| ...
+--+--+--+--+ +--+--+--+--+
Component 0: Y
depth: 8
pstride: 2
offset: 0
Component 1: U
depth: 8
pstride: 4
offset: 3
Component 2: V
depth 8
pstride: 4
offset: 1
Image
default rstride: RU4 (width * 2)
default size: rstride (image) * height
"UYVY" packed 4:2:2 YUV
+--+--+--+--+ +--+--+--+--+
|U0|Y0|V0|Y1| |U2|Y2|V2|Y3| ...
+--+--+--+--+ +--+--+--+--+
Component 0: Y
depth: 8
pstride: 2
offset: 1
Component 1: U
depth: 8
pstride: 4
offset: 0
Component 2: V
depth 8
pstride: 4
offset: 2
Image
default rstride: RU4 (width * 2)
default size: rstride (image) * height
"AYUV" packed 4:4:4 YUV with alpha channel
+--+--+--+--+ +--+--+--+--+
|A0|Y0|U0|V0| |A1|Y1|U1|V1| ...
+--+--+--+--+ +--+--+--+--+
Component 0: Y
depth: 8
pstride: 4
offset: 1
Component 1: U
depth: 8
pstride: 4
offset: 2
Component 2: V
depth 8
pstride: 4
offset: 3
Component 3: A
depth 8
pstride: 4
offset: 0
Image
default rstride: width * 4
default size: rstride (image) * height
"RGBx" sparse rgb packed into 32 bit, space last
+--+--+--+--+ +--+--+--+--+
|R0|G0|B0|X | |R1|G1|B1|X | ...
+--+--+--+--+ +--+--+--+--+
Component 0: R
depth: 8
pstride: 4
offset: 0
Component 1: G
depth: 8
pstride: 4
offset: 1
Component 2: B
depth 8
pstride: 4
offset: 2
Image
default rstride: width * 4
default size: rstride (image) * height
"BGRx" sparse reverse rgb packed into 32 bit, space last
+--+--+--+--+ +--+--+--+--+
|B0|G0|R0|X | |B1|G1|R1|X | ...
+--+--+--+--+ +--+--+--+--+
Component 0: R
depth: 8
pstride: 4
offset: 2
Component 1: G
depth: 8
pstride: 4
offset: 1
Component 2: B
depth 8
pstride: 4
offset: 0
Image
default rstride: width * 4
default size: rstride (image) * height
"xRGB" sparse rgb packed into 32 bit, space first
+--+--+--+--+ +--+--+--+--+
|X |R0|G0|B0| |X |R1|G1|B1| ...
+--+--+--+--+ +--+--+--+--+
Component 0: R
depth: 8
pstride: 4
offset: 1
Component 1: G
depth: 8
pstride: 4
offset: 2
Component 2: B
depth 8
pstride: 4
offset: 3
Image
default rstride: width * 4
default size: rstride (image) * height
"xBGR" sparse reverse rgb packed into 32 bit, space first
+--+--+--+--+ +--+--+--+--+
|X |B0|G0|R0| |X |B1|G1|R1| ...
+--+--+--+--+ +--+--+--+--+
Component 0: R
depth: 8
pstride: 4
offset: 3
Component 1: G
depth: 8
pstride: 4
offset: 2
Component 2: B
depth 8
pstride: 4
offset: 1
Image
default rstride: width * 4
default size: rstride (image) * height
"RGBA" rgb with alpha channel last
+--+--+--+--+ +--+--+--+--+
|R0|G0|B0|A0| |R1|G1|B1|A1| ...
+--+--+--+--+ +--+--+--+--+
Component 0: R
depth: 8
pstride: 4
offset: 0
Component 1: G
depth: 8
pstride: 4
offset: 1
Component 2: B
depth 8
pstride: 4
offset: 2
Component 3: A
depth 8
pstride: 4
offset: 3
Image
default rstride: width * 4
default size: rstride (image) * height
"BGRA" reverse rgb with alpha channel last
+--+--+--+--+ +--+--+--+--+
|B0|G0|R0|A0| |B1|G1|R1|A1| ...
+--+--+--+--+ +--+--+--+--+
Component 0: R
depth: 8
pstride: 4
offset: 2
Component 1: G
depth: 8
pstride: 4
offset: 1
Component 2: B
depth 8
pstride: 4
offset: 0
Component 3: A
depth 8
pstride: 4
offset: 3
Image
default rstride: width * 4
default size: rstride (image) * height
"ARGB" rgb with alpha channel first
+--+--+--+--+ +--+--+--+--+
|A0|R0|G0|B0| |A1|R1|G1|B1| ...
+--+--+--+--+ +--+--+--+--+
Component 0: R
depth: 8
pstride: 4
offset: 1
Component 1: G
depth: 8
pstride: 4
offset: 2
Component 2: B
depth 8
pstride: 4
offset: 3
Component 3: A
depth 8
pstride: 4
offset: 0
Image
default rstride: width * 4
default size: rstride (image) * height
"ABGR" reverse rgb with alpha channel first
+--+--+--+--+ +--+--+--+--+
|A0|R0|G0|B0| |A1|R1|G1|B1| ...
+--+--+--+--+ +--+--+--+--+
Component 0: R
depth: 8
pstride: 4
offset: 1
Component 1: G
depth: 8
pstride: 4
offset: 2
Component 2: B
depth 8
pstride: 4
offset: 3
Component 3: A
depth 8
pstride: 4
offset: 0
Image
default rstride: width * 4
default size: rstride (image) * height
"RGB" rgb
+--+--+--+ +--+--+--+
|R0|G0|B0| |R1|G1|B1| ...
+--+--+--+ +--+--+--+
Component 0: R
depth: 8
pstride: 3
offset: 0
Component 1: G
depth: 8
pstride: 3
offset: 1
Component 2: B
depth 8
pstride: 3
offset: 2
Image
default rstride: RU4 (width * 3)
default size: rstride (image) * height
"BGR" reverse rgb
+--+--+--+ +--+--+--+
|B0|G0|R0| |B1|G1|R1| ...
+--+--+--+ +--+--+--+
Component 0: R
depth: 8
pstride: 3
offset: 2
Component 1: G
depth: 8
pstride: 3
offset: 1
Component 2: B
depth 8
pstride: 3
offset: 0
Image
default rstride: RU4 (width * 3)
default size: rstride (image) * height
"Y41B" planar 4:1:1 YUV
Component 0: Y
depth: 8
pstride: 1
default offset: 0
default rstride: RU4 (width)
default size: rstride (component0) * height
Component 1: U
depth 8
pstride: 1
default offset: size (component0)
default rstride: RU16 (width) / 4
default size: rstride (component1) * height
Component 2: V
depth: 8
pstride: 1
default offset: offset (component1) + size (component1)
default rstride: RU16 (width) / 4
default size: rstride (component2) * height
Image
default size: size (component0) +
size (component1) +
size (component2)
"Y42B" planar 4:2:2 YUV
Component 0: Y
depth: 8
pstride: 1
default offset: 0
default rstride: RU4 (width)
default size: rstride (component0) * height
Component 1: U
depth 8
pstride: 1
default offset: size (component0)
default rstride: RU8 (width) / 2
default size: rstride (component1) * height
Component 2: V
depth: 8
pstride: 1
default offset: offset (component1) + size (component1)
default rstride: RU8 (width) / 2
default size: rstride (component2) * height
Image
default size: size (component0) +
size (component1) +
size (component2)
"Y444" planar 4:4:4 YUV
Component 0: Y
depth: 8
pstride: 1
default offset: 0
default rstride: RU4 (width)
default size: rstride (component0) * height
Component 1: U
depth 8
pstride: 1
default offset: size (component0)
default rstride: RU4 (width)
default size: rstride (component1) * height
Component 2: V
depth: 8
pstride: 1
default offset: offset (component1) + size (component1)
default rstride: RU4 (width)
default size: rstride (component2) * height
Image
default size: size (component0) +
size (component1) +
size (component2)
"v210" packed 4:2:2 10-bit YUV, complex format
Component 0: Y
depth: 10
Component 1: U
depth 10
Component 2: V
depth: 10
Image
default rstride: RU48 (width) * 128
default size: rstride (image) * height
"v216" packed 4:2:2 16-bit YUV, Y0-U0-Y1-V1 order
+--+--+--+--+ +--+--+--+--+
|U0|Y0|V0|Y1| |U1|Y2|V1|Y3| ...
+--+--+--+--+ +--+--+--+--+
Component 0: Y
depth: 16 LE
pstride: 4
offset: 2
Component 1: U
depth 16 LE
pstride: 8
offset: 0
Component 2: V
depth: 16 LE
pstride: 8
offset: 4
Image
default rstride: RU8 (width * 2)
default size: rstride (image) * height
"NV12" planar 4:2:0 YUV with interleaved UV plane
Component 0: Y
depth: 8
pstride: 1
default offset: 0
default rstride: RU4 (width)
default size: rstride (component0) * RU2 (height)
Component 1: U
depth 8
pstride: 2
default offset: size (component0)
default rstride: RU4 (width)
Component 2: V
depth: 8
pstride: 2
default offset: offset (component1) + 1
default rstride: RU4 (width)
Image
default size: RU4 (width) * RU2 (height) * 3 / 2
"NV21" planar 4:2:0 YUV with interleaved VU plane
Component 0: Y
depth: 8
pstride: 1
default offset: 0
default rstride: RU4 (width)
default size: rstride (component0) * RU2 (height)
Component 1: U
depth 8
pstride: 2
default offset: offset (component1) + 1
default rstride: RU4 (width)
Component 2: V
depth: 8
pstride: 2
default offset: size (component0)
default rstride: RU4 (width)
Image
default size: RU4 (width) * RU2 (height) * 3 / 2
"GRAY8" 8-bit grayscale
"Y800" same as "GRAY8"
Component 0: Y
depth: 8
offset: 0
pstride: 1
default rstride: RU4 (width)
default size: rstride (component0) * height
Image
default size: size (component0)
"GRAY16_BE" 16-bit grayscale, most significant byte first
Component 0: Y
depth: 16
offset: 0
pstride: 2
default rstride: RU4 (width * 2)
default size: rstride (component0) * height
Image
default size: size (component0)
"GRAY16_LE" 16-bit grayscale, least significant byte first
"Y16" same as "GRAY16_LE"
Component 0: Y
depth: 16 LE
offset: 0
pstride: 2
default rstride: RU4 (width * 2)
default size: rstride (component0) * height
Image
default size: size (component0)
"v308" packed 4:4:4 YUV
+--+--+--+ +--+--+--+
|Y0|U0|V0| |Y1|U1|V1| ...
+--+--+--+ +--+--+--+
Component 0: Y
depth: 8
pstride: 3
offset: 0
Component 1: U
depth 8
pstride: 3
offset: 1
Component 2: V
depth: 8
pstride: 3
offset: 2
Image
default rstride: RU4 (width * 3)
default size: rstride (image) * height
"IYU2" packed 4:4:4 YUV, U-Y-V order
+--+--+--+ +--+--+--+
|U0|Y0|V0| |U1|Y1|V1| ...
+--+--+--+ +--+--+--+
Component 0: Y
depth: 8
pstride: 3
offset: 1
Component 1: U
depth 8
pstride: 3
offset: 0
Component 2: V
depth: 8
pstride: 3
offset: 2
Image
default rstride: RU4 (width * 3)
default size: rstride (image) * height
"RGB16" rgb 5-6-5 bits per component
+--+--+--+ +--+--+--+
|R0|G0|B0| |R1|G1|B1| ...
+--+--+--+ +--+--+--+
Component 0: R
depth: 5
pstride: 2
Component 1: G
depth 6
pstride: 2
Component 2: B
depth: 5
pstride: 2
Image
default rstride: RU4 (width * 2)
default size: rstride (image) * height
"BGR16" reverse rgb 5-6-5 bits per component
+--+--+--+ +--+--+--+
|B0|G0|R0| |B1|G1|R1| ...
+--+--+--+ +--+--+--+
Component 0: R
depth: 5
pstride: 2
Component 1: G
depth 6
pstride: 2
Component 2: B
depth: 5
pstride: 2
Image
default rstride: RU4 (width * 2)
default size: rstride (image) * height
"RGB15" rgb 5-5-5 bits per component
+--+--+--+ +--+--+--+
|R0|G0|B0| |R1|G1|B1| ...
+--+--+--+ +--+--+--+
Component 0: R
depth: 5
pstride: 2
Component 1: G
depth 5
pstride: 2
Component 2: B
depth: 5
pstride: 2
Image
default rstride: RU4 (width * 2)
default size: rstride (image) * height
"BGR15" reverse rgb 5-5-5 bits per component
+--+--+--+ +--+--+--+
|B0|G0|R0| |B1|G1|R1| ...
+--+--+--+ +--+--+--+
Component 0: R
depth: 5
pstride: 2
Component 1: G
depth 5
pstride: 2
Component 2: B
depth: 5
pstride: 2
Image
default rstride: RU4 (width * 2)
default size: rstride (image) * height
"UYVP" packed 10-bit 4:2:2 YUV (U0-Y0-V0-Y1 U2-Y2-V2-Y3 U4 ...)
Component 0: Y
depth: 10
Component 1: U
depth 10
Component 2: V
depth: 10
Image
default rstride: RU4 (width * 2 * 5)
default size: rstride (image) * height
"A420" planar 4:4:2:0 AYUV
Component 0: Y
depth: 8
pstride: 1
default offset: 0
default rstride: RU4 (width)
default size: rstride (component0) * RU2 (height)
Component 1: U
depth 8
pstride: 1
default offset: size (component0)
default rstride: RU4 (RU2 (width) / 2)
default size: rstride (component1) * (RU2 (height) / 2)
Component 2: V
depth: 8
pstride: 1
default offset: size (component0) + size (component1)
default rstride: RU4 (RU2 (width) / 2)
default size: rstride (component2) * (RU2 (height) / 2)
Component 3: A
depth: 8
pstride: 1
default offset: size (component0) + size (component1) +
size (component2)
default rstride: RU4 (width)
default size: rstride (component3) * RU2 (height)
Image
default size: size (component0) +
size (component1) +
size (component2) +
size (component3)
"RGB8P" 8-bit paletted RGB
Component 0: INDEX
depth: 8
pstride: 1
default offset: 0
default rstride: RU4 (width)
default size: rstride (component0) * height
Component 1: PALETTE
depth 32
pstride: 4
default offset: size (component0)
rstride: 4
size: 256 * 4
Image
default size: size (component0) + size (component1)
"YUV9" planar 4:1:0 YUV
Component 0: Y
depth: 8
pstride: 1
default offset: 0
default rstride: RU4 (width)
default size: rstride (component0) * height
Component 1: U
depth 8
pstride: 1
default offset: size (component0)
default rstride: RU4 (RU4 (width) / 4)
default size: rstride (component1) * (RU4 (height) / 4)
Component 2: V
depth: 8
pstride: 1
default offset: offset (component1) + size (component1)
default rstride: RU4 (RU4 (width) / 4)
default size: rstride (component2) * (RU4 (height) / 4)
Image
default size: size (component0) +
size (component1) +
size (component2)
"YVU9" planar 4:1:0 YUV (like YUV9 but UV planes swapped)
Component 0: Y
depth: 8
pstride: 1
default offset: 0
default rstride: RU4 (width)
default size: rstride (component0) * height
Component 1: U
depth 8
pstride: 1
default offset: offset (component2) + size (component2)
default rstride: RU4 (RU4 (width) / 4)
default size: rstride (component1) * (RU4 (height) / 4)
Component 2: V
depth: 8
pstride: 1
default offset: size (component0)
default rstride: RU4 (RU4 (width) / 4)
default size: rstride (component2) * (RU4 (height) / 4)
Image
default size: size (component0) +
size (component1) +
size (component2)
"IYU1" packed 4:1:1 YUV (Cb-Y0-Y1-Cr-Y2-Y3 ...)
+--+--+--+ +--+--+--+
|B0|G0|R0| |B1|G1|R1| ...
+--+--+--+ +--+--+--+
Component 0: Y
depth: 8
offset: 1
pstride: 2
Component 1: U
depth 5
offset: 0
pstride: 2
Component 2: V
depth: 5
offset: 4
pstride: 2
Image
default rstride: RU4 (RU4 (width) + RU4 (width) / 2)
default size: rstride (image) * height
"ARGB64" rgb with alpha channel first, 16 bits per channel
+--+--+--+--+ +--+--+--+--+
|A0|R0|G0|B0| |A1|R1|G1|B1| ...
+--+--+--+--+ +--+--+--+--+
Component 0: R
depth: 16 LE
pstride: 8
offset: 2
Component 1: G
depth 16 LE
pstride: 8
offset: 4
Component 2: B
depth: 16 LE
pstride: 8
offset: 6
Component 3: A
depth: 16 LE
pstride: 8
offset: 0
Image
default rstride: width * 8
default size: rstride (image) * height
"AYUV64" packed 4:4:4 YUV with alpha channel, 16 bits per channel (A0-Y0-U0-V0 ...)
+--+--+--+--+ +--+--+--+--+
|A0|Y0|U0|V0| |A1|Y1|U1|V1| ...
+--+--+--+--+ +--+--+--+--+
Component 0: Y
depth: 16 LE
pstride: 8
offset: 2
Component 1: U
depth 16 LE
pstride: 8
offset: 4
Component 2: V
depth: 16 LE
pstride: 8
offset: 6
Component 3: A
depth: 16 LE
pstride: 8
offset: 0
Image
default rstride: width * 8
default size: rstride (image) * height
"r210" packed 4:4:4 RGB, 10 bits per channel
+--+--+--+ +--+--+--+
|R0|G0|B0| |R1|G1|B1| ...
+--+--+--+ +--+--+--+
Component 0: R
depth: 10
pstride: 4
Component 1: G
depth 10
pstride: 4
Component 2: B
depth: 10
pstride: 4
Image
default rstride: width * 4
default size: rstride (image) * height
"I420_10LE" planar 4:2:0 YUV, 10 bits per channel LE
Component 0: Y
depth: 10 LE
pstride: 2
default offset: 0
default rstride: RU4 (width * 2)
default size: rstride (component0) * RU2 (height)
Component 1: U
depth: 10 LE
pstride: 2
default offset: size (component0)
default rstride: RU4 (width)
default size: rstride (component1) * RU2 (height) / 2
Component 2: V
depth 10 LE
pstride: 2
default offset: offset (component1) + size (component1)
default rstride: RU4 (width)
default size: rstride (component2) * RU2 (height) / 2
Image
default size: size (component0) +
size (component1) +
size (component2)
"I420_10BE" planar 4:2:0 YUV, 10 bits per channel BE
Component 0: Y
depth: 10 BE
pstride: 2
default offset: 0
default rstride: RU4 (width * 2)
default size: rstride (component0) * RU2 (height)
Component 1: U
depth: 10 BE
pstride: 2
default offset: size (component0)
default rstride: RU4 (width)
default size: rstride (component1) * RU2 (height) / 2
Component 2: V
depth 10 BE
pstride: 2
default offset: offset (component1) + size (component1)
default rstride: RU4 (width)
default size: rstride (component2) * RU2 (height) / 2
Image
default size: size (component0) +
size (component1) +
size (component2)
"I422_10LE" planar 4:2:2 YUV, 10 bits per channel LE
Component 0: Y
depth: 10 LE
pstride: 2
default offset: 0
default rstride: RU4 (width * 2)
default size: rstride (component0) * RU2 (height)
Component 1: U
depth: 10 LE
pstride: 2
default offset: size (component0)
default rstride: RU4 (width)
default size: rstride (component1) * RU2 (height)
Component 2: V
depth 10 LE
pstride: 2
default offset: offset (component1) + size (component1)
default rstride: RU4 (width)
default size: rstride (component2) * RU2 (height)
Image
default size: size (component0) +
size (component1) +
size (component2)
"I422_10BE" planar 4:2:2 YUV, 10 bits per channel BE
Component 0: Y
depth: 10 BE
pstride: 2
default offset: 0
default rstride: RU4 (width * 2)
default size: rstride (component0) * RU2 (height)
Component 1: U
depth: 10 BE
pstride: 2
default offset: size (component0)
default rstride: RU4 (width)
default size: rstride (component1) * RU2 (height)
Component 2: V
depth 10 BE
pstride: 2
default offset: offset (component1) + size (component1)
default rstride: RU4 (width)
default size: rstride (component2) * RU2 (height)
Image
default size: size (component0) +
size (component1) +
size (component2)
"Y444_10BE" planar 4:4:4 YUV, 10 bits per channel
"Y444_10LE" planar 4:4:4 YUV, 10 bits per channel
"GBR" planar 4:4:4 RGB, 8 bits per channel
"GBR_10BE" planar 4:4:4 RGB, 10 bits per channel
"GBR_10LE" planar 4:4:4 RGB, 10 bits per channel
"NV16" planar 4:2:2 YUV with interleaved UV plane
"NV61" planar 4:2:2 YUV with interleaved VU plane
"NV24" planar 4:4:4 YUV with interleaved UV plane
"NV12_64Z32" planar 4:2:0 YUV with interleaved UV plane in 64x32 tiles zigzag
Component 0: Y
depth: 8
pstride: 1
default offset: 0
default rstride: RU128 (width)
default size: rstride (component0) * RU32 (height)
Component 1: U
depth 8
pstride: 2
default offset: size (component0)
default rstride: (y_tiles << 16) | x_tiles
default x_tiles: RU128 (width) >> tile_width
default y_tiles: RU32 (height) >> tile_height
Component 2: V
depth: 8
pstride: 2
default offset: offset (component1) + 1
default rstride: (y_tiles << 16) | x_tiles
default x_tiles: RU128 (width) >> tile_width
default y_tiles: RU64 (height) >> (tile_height + 1)
Image
default size: RU128 (width) * (RU32 (height) + RU64 (height) / 2)
tile mode: ZFLIPZ_2X2
tile width: 6
tile height: 5