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


 "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

