docs: update v216 format
[platform/upstream/gstreamer.git] / docs / design / part-mediatype-video-raw.txt
1 Media Types
2 -----------
3
4  video/x-raw
5
6   width, G_TYPE_INT, mandatory
7     The width of the image in pixels.
8
9   height, G_TYPE_INT, mandatory
10     The height of the image in pixels
11
12   framerate, GST_TYPE_FRACTION, default 0/1
13     The framerate of the video 0/1 for variable framerate
14
15   max-framerate, GST_TYPE_FRACTION, default as framerate
16     For variable framerates this would be the maximum framerate that
17     is expected. This value is only valid when the framerate is 0/1
18
19   views, G_TYPE_INT, default 1
20     The number of views for multiview video. Each buffer contains
21     multiple GstVideoMeta buffers that describe each view. use the frame id to
22     get access to the different views.
23
24   interlace-mode, G_TYPE_STRING, default progressive
25     The interlace mode. The following values are possible:
26
27     "progressive"  : all frames are progressive
28     "interleaved"  : 2 fields are interleaved in one video frame. Extra buffer
29                      flags describe the field order.
30     "mixed"        : progressive and interleaved frames, extra buffer flags describe
31                      the frame and fields.
32     "fields"       : 2 fields are stored in one buffer, use the frame ID
33                      to get access to the required field. For multiview (the
34                      'views' property > 1) the fields of view N can be found at
35                      frame ID (N * 2) and (N * 2) + 1.
36                      Each view has only half the amount of lines as noted in the
37                      height property, pads specifying the "fields" property
38                      must be prepared for this. This mode requires multiple
39                      GstVideoMeta metadata to describe the fields.
40
41   chroma-site, G_TYPE_STRING, default UNKNOWN
42     The chroma siting of the video frames.
43
44     "jpeg" : GST_VIDEO_CHROMA_SITE_JPEG
45     "mpeg2": GST_VIDEO_CHROMA_SITE_MPEG2
46     "dv"   : GST_VIDEO_CHROMA_SITE_DV
47
48   colorimetry, G_TYPE_STRING, default UNKNOWN
49     The colorimetry of the video frames predefined colorimetry is given with
50     the following values:
51
52     "bt601"
53     "bt709"
54     "smpte240m"
55
56   pixel-aspect-ratio, GST_TYPE_FRACTION, default 1/1
57     The pixel aspect ration of the video
58
59   format, G_TYPE_STRING, mandatory
60     The format of the video, see the Formats section for a list of valid format
61     strings.
62
63 Metadata
64 --------
65
66  "GstVideoMeta"
67    contains the description of one video field or frame. It has
68    stride support and support for having multiple memory regions per frame.
69
70    Multiple GstVideoMeta can be added to a buffer and can be identified with a
71    unique id. This id can be used to select fields in interlaced formats or
72    views in multiview formats.
73
74  "GstVideoCropMeta"
75    Contains the cropping region of the video.
76
77
78 Formats
79 -------
80
81  "I420" planar 4:2:0 YUV
82
83         Component 0: Y
84           depth:           8
85           pstride:         1
86           default offset:  0
87           default rstride: RU4 (width)
88           default size:    rstride (component0) * RU2 (height)
89
90         Component 1: U
91           depth:           8
92           pstride:         1
93           default offset:  size (component0)
94           default rstride: RU4 (RU2 (width) / 2)
95           default size:    rstride (component1) * RU2 (height) / 2
96
97         Component 2: V
98           depth            8
99           pstride:         1
100           default offset:  offset (component1) + size (component1)
101           default rstride: RU4 (RU2 (width) / 2)
102           default size:    rstride (component2) * RU2 (height) / 2
103
104         Image
105           default size: size (component0) + 
106                         size (component1) +
107                         size (component2)
108  
109  "YV12" planar 4:2:0 YUV
110
111         Same as I420 but with U and V planes swapped
112
113         Component 0: Y
114           depth:           8
115           pstride:         1
116           default offset:  0
117           default rstride: RU4 (width)
118           default size:    rstride (component0) * RU2 (height)
119
120         Component 1: U
121           depth            8
122           pstride:         1
123           default offset:  offset (component2) + size (component2)
124           default rstride: RU4 (RU2 (width) / 2)
125           default size:    rstride (component1) * RU2 (height) / 2
126
127         Component 2: V
128           depth:           8
129           pstride:         1
130           default offset:  size (component0)
131           default rstride: RU4 (RU2 (width) / 2)
132           default size:    rstride (component2) * RU2 (height) / 2
133
134         Image
135           default size: size (component0) + 
136                         size (component1) +
137                         size (component2)
138
139  "YUY2" packed 4:2:2 YUV
140
141        +--+--+--+--+ +--+--+--+--+
142        |Y0|U0|Y1|V0| |Y2|U2|Y3|V2| ...
143        +--+--+--+--+ +--+--+--+--+
144
145         Component 0: Y
146           depth:           8
147           pstride:         2
148           offset:          0
149
150         Component 1: U
151           depth:           8
152           offset:          1
153           pstride:         4
154
155         Component 2: V
156           depth            8
157           offset:          3
158           pstride:         4
159
160         Image
161           default rstride: RU4 (width * 2)
162           default size:    rstride (image) * height
163
164
165  "YVYU" packed 4:2:2 YUV
166   
167       Same as "YUY2" but with U and V planes swapped
168
169        +--+--+--+--+ +--+--+--+--+
170        |Y0|V0|Y1|U0| |Y2|V2|Y3|U2| ...
171        +--+--+--+--+ +--+--+--+--+
172
173         Component 0: Y
174           depth:           8
175           pstride:         2
176           offset:          0
177
178         Component 1: U
179           depth:           8
180           pstride:         4
181           offset:          3
182
183         Component 2: V
184           depth            8
185           pstride:         4
186           offset:          1
187
188         Image
189           default rstride: RU4 (width * 2)
190           default size:    rstride (image) * height
191
192
193  "UYVY" packed 4:2:2 YUV
194
195        +--+--+--+--+ +--+--+--+--+
196        |U0|Y0|V0|Y1| |U2|Y2|V2|Y3| ...
197        +--+--+--+--+ +--+--+--+--+
198
199         Component 0: Y
200           depth:           8
201           pstride:         2
202           offset:          1
203
204         Component 1: U
205           depth:           8
206           pstride:         4
207           offset:          0
208
209         Component 2: V
210           depth            8
211           pstride:         4
212           offset:          2
213
214         Image
215           default rstride: RU4 (width * 2)
216           default size:    rstride (image) * height
217
218
219  "AYUV" packed 4:4:4 YUV with alpha channel
220   
221        +--+--+--+--+ +--+--+--+--+
222        |A0|Y0|U0|V0| |A1|Y1|U1|V1| ...
223        +--+--+--+--+ +--+--+--+--+
224
225         Component 0: Y
226           depth:           8
227           pstride:         4
228           offset:          1
229
230         Component 1: U
231           depth:           8
232           pstride:         4
233           offset:          2
234
235         Component 2: V
236           depth            8
237           pstride:         4
238           offset:          3
239
240         Component 3: A
241           depth            8
242           pstride:         4
243           offset:          0
244
245         Image
246           default rstride: width * 4
247           default size:    rstride (image) * height
248
249
250  "RGBx" sparse rgb packed into 32 bit, space last
251
252        +--+--+--+--+ +--+--+--+--+
253        |R0|G0|B0|X | |R1|G1|B1|X | ...
254        +--+--+--+--+ +--+--+--+--+
255
256         Component 0: R
257           depth:           8
258           pstride:         4
259           offset:          0
260
261         Component 1: G
262           depth:           8
263           pstride:         4
264           offset:          1
265
266         Component 2: B
267           depth            8
268           pstride:         4
269           offset:          2
270
271         Image
272           default rstride: width * 4
273           default size:    rstride (image) * height
274
275  "BGRx" sparse reverse rgb packed into 32 bit, space last
276
277        +--+--+--+--+ +--+--+--+--+
278        |B0|G0|R0|X | |B1|G1|R1|X | ...
279        +--+--+--+--+ +--+--+--+--+
280
281         Component 0: R
282           depth:           8
283           pstride:         4
284           offset:          2
285
286         Component 1: G
287           depth:           8
288           pstride:         4
289           offset:          1
290
291         Component 2: B
292           depth            8
293           pstride:         4
294           offset:          0
295
296         Image
297           default rstride: width * 4
298           default size:    rstride (image) * height
299
300  "xRGB" sparse rgb packed into 32 bit, space first
301
302        +--+--+--+--+ +--+--+--+--+
303        |X |R0|G0|B0| |X |R1|G1|B1| ...
304        +--+--+--+--+ +--+--+--+--+
305
306         Component 0: R
307           depth:           8
308           pstride:         4
309           offset:          1
310
311         Component 1: G
312           depth:           8
313           pstride:         4
314           offset:          2
315
316         Component 2: B
317           depth            8
318           pstride:         4
319           offset:          3
320
321         Image
322           default rstride: width * 4
323           default size:    rstride (image) * height
324
325  "xBGR" sparse reverse rgb packed into 32 bit, space first
326
327        +--+--+--+--+ +--+--+--+--+
328        |X |B0|G0|R0| |X |B1|G1|R1| ...
329        +--+--+--+--+ +--+--+--+--+
330
331         Component 0: R
332           depth:           8
333           pstride:         4
334           offset:          3
335
336         Component 1: G
337           depth:           8
338           pstride:         4
339           offset:          2
340
341         Component 2: B
342           depth            8
343           pstride:         4
344           offset:          1
345
346         Image
347           default rstride: width * 4
348           default size:    rstride (image) * height
349
350  "RGBA" rgb with alpha channel last
351
352        +--+--+--+--+ +--+--+--+--+
353        |R0|G0|B0|A0| |R1|G1|B1|A1| ...
354        +--+--+--+--+ +--+--+--+--+
355
356         Component 0: R
357           depth:           8
358           pstride:         4
359           offset:          0
360
361         Component 1: G
362           depth:           8
363           pstride:         4
364           offset:          1
365
366         Component 2: B
367           depth            8
368           pstride:         4
369           offset:          2
370
371         Component 3: A
372           depth            8
373           pstride:         4
374           offset:          3
375
376         Image
377           default rstride: width * 4
378           default size:    rstride (image) * height
379
380  "BGRA" reverse rgb with alpha channel last
381
382        +--+--+--+--+ +--+--+--+--+
383        |B0|G0|R0|A0| |B1|G1|R1|A1| ...
384        +--+--+--+--+ +--+--+--+--+
385
386         Component 0: R
387           depth:           8
388           pstride:         4
389           offset:          2
390
391         Component 1: G
392           depth:           8
393           pstride:         4
394           offset:          1
395
396         Component 2: B
397           depth            8
398           pstride:         4
399           offset:          0
400
401         Component 3: A
402           depth            8
403           pstride:         4
404           offset:          3
405
406         Image
407           default rstride: width * 4
408           default size:    rstride (image) * height
409
410  "ARGB" rgb with alpha channel first
411
412        +--+--+--+--+ +--+--+--+--+
413        |A0|R0|G0|B0| |A1|R1|G1|B1| ...
414        +--+--+--+--+ +--+--+--+--+
415
416         Component 0: R
417           depth:           8
418           pstride:         4
419           offset:          1
420
421         Component 1: G
422           depth:           8
423           pstride:         4
424           offset:          2
425
426         Component 2: B
427           depth            8
428           pstride:         4
429           offset:          3
430
431         Component 3: A
432           depth            8
433           pstride:         4
434           offset:          0
435
436         Image
437           default rstride: width * 4
438           default size:    rstride (image) * height
439
440  "ABGR" reverse rgb with alpha channel first
441
442        +--+--+--+--+ +--+--+--+--+
443        |A0|R0|G0|B0| |A1|R1|G1|B1| ...
444        +--+--+--+--+ +--+--+--+--+
445
446         Component 0: R
447           depth:           8
448           pstride:         4
449           offset:          1
450
451         Component 1: G
452           depth:           8
453           pstride:         4
454           offset:          2
455
456         Component 2: B
457           depth            8
458           pstride:         4
459           offset:          3
460
461         Component 3: A
462           depth            8
463           pstride:         4
464           offset:          0
465
466         Image
467           default rstride: width * 4
468           default size:    rstride (image) * height
469
470  "RGB" rgb
471
472        +--+--+--+ +--+--+--+
473        |R0|G0|B0| |R1|G1|B1| ...
474        +--+--+--+ +--+--+--+
475
476         Component 0: R
477           depth:           8
478           pstride:         3
479           offset:          0
480
481         Component 1: G
482           depth:           8
483           pstride:         3
484           offset:          1
485
486         Component 2: B
487           depth            8
488           pstride:         3
489           offset:          2
490
491         Image
492           default rstride: RU4 (width * 3)
493           default size:    rstride (image) * height
494
495  "BGR" reverse rgb
496
497        +--+--+--+ +--+--+--+
498        |B0|G0|R0| |B1|G1|R1| ...
499        +--+--+--+ +--+--+--+
500
501         Component 0: R
502           depth:           8
503           pstride:         3
504           offset:          2
505
506         Component 1: G
507           depth:           8
508           pstride:         3
509           offset:          1
510
511         Component 2: B
512           depth            8
513           pstride:         3
514           offset:          0
515
516         Image
517           default rstride: RU4 (width * 3)
518           default size:    rstride (image) * height
519
520  "Y41B" planar 4:1:1 YUV
521
522         Component 0: Y
523           depth:           8
524           pstride:         1
525           default offset:  0
526           default rstride: RU4 (width)
527           default size:    rstride (component0) * height
528
529         Component 1: U
530           depth            8
531           pstride:         1
532           default offset:  size (component0)
533           default rstride: RU16 (width) / 4
534           default size:    rstride (component1) * height
535
536         Component 2: V
537           depth:           8
538           pstride:         1
539           default offset:  offset (component1) + size (component1)
540           default rstride: RU16 (width) / 4
541           default size:    rstride (component2) * height
542
543         Image
544           default size: size (component0) + 
545                         size (component1) +
546                         size (component2)
547
548  "Y42B" planar 4:2:2 YUV
549
550         Component 0: Y
551           depth:           8
552           pstride:         1
553           default offset:  0
554           default rstride: RU4 (width)
555           default size:    rstride (component0) * height
556
557         Component 1: U
558           depth            8
559           pstride:         1
560           default offset:  size (component0)
561           default rstride: RU8 (width) / 2
562           default size:    rstride (component1) * height
563
564         Component 2: V
565           depth:           8
566           pstride:         1
567           default offset:  offset (component1) + size (component1)
568           default rstride: RU8 (width) / 2
569           default size:    rstride (component2) * height
570
571         Image
572           default size: size (component0) + 
573                         size (component1) +
574                         size (component2)
575
576  "Y444" planar 4:4:4 YUV
577
578         Component 0: Y
579           depth:           8
580           pstride:         1
581           default offset:  0
582           default rstride: RU4 (width)
583           default size:    rstride (component0) * height
584
585         Component 1: U
586           depth            8
587           pstride:         1
588           default offset:  size (component0)
589           default rstride: RU4 (width)
590           default size:    rstride (component1) * height
591
592         Component 2: V
593           depth:           8
594           pstride:         1
595           default offset:  offset (component1) + size (component1)
596           default rstride: RU4 (width)
597           default size:    rstride (component2) * height
598
599         Image
600           default size: size (component0) + 
601                         size (component1) +
602                         size (component2)
603
604  "v210" packed 4:2:2 10-bit YUV, complex format
605
606         Component 0: Y
607           depth:           10
608
609         Component 1: U
610           depth            10
611
612         Component 2: V
613           depth:           10
614
615         Image
616           default rstride: RU48 (width) * 128
617           default size:    rstride (image) * height
618
619
620  "v216" packed 4:2:2 16-bit YUV, Y0-U0-Y1-V1 order
621
622        +--+--+--+--+ +--+--+--+--+
623        |U0|Y0|V0|Y1| |U1|Y2|V1|Y3| ...
624        +--+--+--+--+ +--+--+--+--+
625
626         Component 0: Y
627           depth:           16 LE
628           pstride:         4
629           offset:          2
630
631         Component 1: U
632           depth            16 LE
633           pstride:         8
634           offset:          0
635
636         Component 2: V
637           depth:           16 LE
638           pstride:         8
639           offset:          4
640
641         Image
642           default rstride: RU8 (width * 2)
643           default size:    rstride (image) * height
644
645  "NV12" planar 4:2:0 YUV with interleaved UV plane
646
647         Component 0: Y
648           depth:           8
649           pstride:         1
650           default offset:  0
651           default rstride: RU4 (width)
652           default size:    rstride (component0) * RU2 (height)
653
654         Component 1: U
655           depth            8
656           pstride:         2
657           default offset:  size (component0)
658           default rstride: RU4 (width)
659
660         Component 2: V
661           depth:           8
662           pstride:         2
663           default offset:  offset (component1) + 1
664           default rstride: RU4 (width)
665
666         Image
667           default size: RU4 (width) * RU2 (height) * 3 / 2
668
669
670  "NV21" planar 4:2:0 YUV with interleaved VU plane
671
672         Component 0: Y
673           depth:           8
674           pstride:         1
675           default offset:  0
676           default rstride: RU4 (width)
677           default size:    rstride (component0) * RU2 (height)
678
679         Component 1: U
680           depth            8
681           pstride:         2
682           default offset:  offset (component1) + 1
683           default rstride: RU4 (width)
684
685         Component 2: V
686           depth:           8
687           pstride:         2
688           default offset:  size (component0)
689           default rstride: RU4 (width)
690
691         Image
692           default size: RU4 (width) * RU2 (height) * 3 / 2
693
694  "GRAY8"  8-bit grayscale
695  "Y800" same as "GRAY8"
696
697         Component 0: Y
698           depth:           8
699           offset:          0
700           pstride:         1
701           default rstride: RU4 (width)
702           default size:    rstride (component0) * height
703
704         Image
705           default size:    size (component0)
706
707  "GRAY16_BE" 16-bit grayscale, most significant byte first
708
709         Component 0: Y
710           depth:           16
711           offset:          0
712           pstride:         2
713           default rstride: RU4 (width * 2)
714           default size:    rstride (component0) * height
715
716         Image
717           default size:    size (component0)
718
719  "GRAY16_LE" 16-bit grayscale, least significant byte first
720  "Y16" same as "GRAY16_LE"
721
722         Component 0: Y
723           depth:           16 LE
724           offset:          0
725           pstride:         2
726           default rstride: RU4 (width * 2)
727           default size:    rstride (component0) * height
728
729         Image
730           default size:    size (component0)
731
732  "v308" packed 4:4:4 YUV
733
734        +--+--+--+ +--+--+--+
735        |Y0|U0|V0| |Y1|U1|V1| ...
736        +--+--+--+ +--+--+--+
737
738         Component 0: Y
739           depth:           8
740           pstride:         3
741           offset:          0
742
743         Component 1: U
744           depth            8
745           pstride:         3
746           offset:          1
747
748         Component 2: V
749           depth:           8
750           pstride:         3
751           offset:          2
752
753         Image
754           default rstride: RU4 (width * 3)
755           default size:    rstride (image) * height
756
757
758  "RGB16" rgb 5-6-5 bits per component
759
760        +--+--+--+ +--+--+--+
761        |R0|G0|B0| |R1|G1|B1| ...
762        +--+--+--+ +--+--+--+
763
764         Component 0: R
765           depth:           5
766           pstride:         2
767
768         Component 1: G
769           depth            6
770           pstride:         2
771
772         Component 2: B
773           depth:           5
774           pstride:         2
775
776         Image
777           default rstride: RU4 (width * 2)
778           default size:    rstride (image) * height
779
780  "BGR16" reverse rgb 5-6-5 bits per component
781
782        +--+--+--+ +--+--+--+
783        |B0|G0|R0| |B1|G1|R1| ...
784        +--+--+--+ +--+--+--+
785
786         Component 0: R
787           depth:           5
788           pstride:         2
789
790         Component 1: G
791           depth            6
792           pstride:         2
793
794         Component 2: B
795           depth:           5
796           pstride:         2
797
798         Image
799           default rstride: RU4 (width * 2)
800           default size:    rstride (image) * height
801
802  "RGB15" rgb 5-5-5 bits per component
803
804        +--+--+--+ +--+--+--+
805        |R0|G0|B0| |R1|G1|B1| ...
806        +--+--+--+ +--+--+--+
807
808         Component 0: R
809           depth:           5
810           pstride:         2
811
812         Component 1: G
813           depth            5
814           pstride:         2
815
816         Component 2: B
817           depth:           5
818           pstride:         2
819
820         Image
821           default rstride: RU4 (width * 2)
822           default size:    rstride (image) * height
823
824  "BGR15" reverse rgb 5-5-5 bits per component
825
826        +--+--+--+ +--+--+--+
827        |B0|G0|R0| |B1|G1|R1| ...
828        +--+--+--+ +--+--+--+
829
830         Component 0: R
831           depth:           5
832           pstride:         2
833
834         Component 1: G
835           depth            5
836           pstride:         2
837
838         Component 2: B
839           depth:           5
840           pstride:         2
841
842         Image
843           default rstride: RU4 (width * 2)
844           default size:    rstride (image) * height
845
846  "UYVP" packed 10-bit 4:2:2 YUV (U0-Y0-V0-Y1 U2-Y2-V2-Y3 U4 ...)
847
848         Component 0: Y
849           depth:           10
850
851         Component 1: U
852           depth            10
853
854         Component 2: V
855           depth:           10
856
857         Image
858           default rstride: RU4 (width * 2 * 5)
859           default size:    rstride (image) * height
860
861  "A420" planar 4:4:2:0 AYUV
862
863         Component 0: Y
864           depth:           8
865           pstride:         1
866           default offset:  0
867           default rstride: RU4 (width)
868           default size:    rstride (component0) * RU2 (height)
869
870         Component 1: U
871           depth            8
872           pstride:         1
873           default offset:  size (component0)
874           default rstride: RU4 (RU2 (width) / 2)
875           default size:    rstride (component1) * (RU2 (height) / 2)
876
877         Component 2: V
878           depth:           8
879           pstride:         1
880           default offset:  size (component0) + size (component1)
881           default rstride: RU4 (RU2 (width) / 2)
882           default size:    rstride (component2) * (RU2 (height) / 2)
883
884         Component 3: A
885           depth:           8
886           pstride:         1
887           default offset:  size (component0) + size (component1) +
888                            size (component2)
889           default rstride: RU4 (width)
890           default size:    rstride (component3) * RU2 (height)
891
892         Image
893           default size:    size (component0) +
894                            size (component1) + 
895                            size (component2) +
896                            size (component3)
897
898  "RGB8_PALETTED" 8-bit paletted RGB
899
900         Component 0: R
901           depth:           8
902
903         Component 1: G
904           depth            8
905
906         Component 2: B
907           depth:           8
908
909         Image
910           default pstride: 1
911           default rstride: RU4 (width)
912           default size:    rstride (image) * height
913
914  "YUV9" planar 4:1:0 YUV
915
916         Component 0: Y
917           depth:           8
918           pstride:         1
919           default offset:  0
920           default rstride: RU4 (width)
921           default size:    rstride (component0) * height
922
923         Component 1: U
924           depth            8
925           pstride:         1
926           default offset:  size (component0)
927           default rstride: RU4 (RU4 (width) / 4)
928           default size:    rstride (component1) * (RU4 (height) / 4)
929
930         Component 2: V
931           depth:           8
932           pstride:         1
933           default offset:  offset (component1) + size (component1)
934           default rstride: RU4 (RU4 (width) / 4)
935           default size:    rstride (component2) * (RU4 (height) / 4)
936
937         Image
938           default size: size (component0) + 
939                         size (component1) +
940                         size (component2)
941
942  "YVU9" planar 4:1:0 YUV (like YUV9 but UV planes swapped)
943
944         Component 0: Y
945           depth:           8
946           pstride:         1
947           default offset:  0
948           default rstride: RU4 (width)
949           default size:    rstride (component0) * height
950
951         Component 1: U
952           depth            8
953           pstride:         1
954           default offset:  offset (component2) + size (component2)
955           default rstride: RU4 (RU4 (width) / 4)
956           default size:    rstride (component1) * (RU4 (height) / 4)
957
958         Component 2: V
959           depth:           8
960           pstride:         1
961           default offset:  size (component0)
962           default rstride: RU4 (RU4 (width) / 4)
963           default size:    rstride (component2) * (RU4 (height) / 4)
964
965         Image
966           default size: size (component0) + 
967                         size (component1) +
968                         size (component2)
969
970  "IYU1"  packed 4:1:1 YUV (Cb-Y0-Y1-Cr-Y2-Y3 ...)
971
972        +--+--+--+ +--+--+--+
973        |B0|G0|R0| |B1|G1|R1| ...
974        +--+--+--+ +--+--+--+
975
976         Component 0: Y
977           depth:           8
978           offset:          1
979           pstride:         2
980
981         Component 1: U
982           depth            5
983           offset:          0
984           pstride:         2
985
986         Component 2: V
987           depth:           5
988           offset:          4
989           pstride:         2
990
991         Image
992           default rstride: RU4 (RU4 (width) + RU4 (width) / 2)
993           default size:    rstride (image) * height
994
995  "ARGB64" rgb with alpha channel first, 16 bits per channel
996
997        +--+--+--+--+ +--+--+--+--+
998        |A0|R0|G0|B0| |A1|R1|G1|B1| ...
999        +--+--+--+--+ +--+--+--+--+
1000
1001         Component 0: R
1002           depth:           16 LE
1003           pstride:         8
1004           offset:          2
1005
1006         Component 1: G
1007           depth            16 LE
1008           pstride:         8
1009           offset:          4
1010
1011         Component 2: B
1012           depth:           16 LE
1013           pstride:         8
1014           offset:          6
1015
1016         Component 3: A
1017           depth:           16 LE
1018           pstride:         8
1019           offset:          0
1020
1021         Image
1022           default rstride: width * 8
1023           default size:    rstride (image) * height
1024
1025  "AYUV64" packed 4:4:4 YUV with alpha channel, 16 bits per channel (A0-Y0-U0-V0 ...)
1026
1027        +--+--+--+--+ +--+--+--+--+
1028        |A0|Y0|U0|V0| |A1|Y1|U1|V1| ...
1029        +--+--+--+--+ +--+--+--+--+
1030
1031         Component 0: Y
1032           depth:           16 LE
1033           pstride:         8
1034           offset:          2
1035
1036         Component 1: U
1037           depth            16 LE
1038           pstride:         8
1039           offset:          4
1040
1041         Component 2: V
1042           depth:           16 LE
1043           pstride:         8
1044           offset:          6
1045
1046         Component 3: A
1047           depth:           16 LE
1048           pstride:         8
1049           offset:          0
1050
1051         Image
1052           default rstride: width * 8
1053           default size:    rstride (image) * height
1054
1055  "r210" packed 4:4:4 RGB, 10 bits per channel
1056
1057        +--+--+--+ +--+--+--+
1058        |R0|G0|B0| |R1|G1|B1| ...
1059        +--+--+--+ +--+--+--+
1060
1061         Component 0: R
1062           depth:           10
1063           pstride:         4
1064
1065         Component 1: G
1066           depth            10
1067           pstride:         4
1068
1069         Component 2: B
1070           depth:           10
1071           pstride:         4
1072
1073         Image
1074           default rstride: width * 4
1075           default size:    rstride (image) * height
1076
1077  "I420_10LE" planar 4:2:0 YUV, 10 bits per channel LE
1078
1079         Component 0: Y
1080           depth:           10 LE
1081           pstride:         2
1082           default offset:  0
1083           default rstride: RU4 (width * 2)
1084           default size:    rstride (component0) * RU2 (height)
1085
1086         Component 1: U
1087           depth:           10 LE
1088           pstride:         2
1089           default offset:  size (component0)
1090           default rstride: RU4 (width)
1091           default size:    rstride (component1) * RU2 (height) / 2
1092
1093         Component 2: V
1094           depth            10 LE
1095           pstride:         2
1096           default offset:  offset (component1) + size (component1)
1097           default rstride: RU4 (width)
1098           default size:    rstride (component2) * RU2 (height) / 2
1099
1100         Image
1101           default size: size (component0) + 
1102                         size (component1) +
1103                         size (component2)
1104
1105  "I420_10BE" planar 4:2:0 YUV, 10 bits per channel BE
1106
1107         Component 0: Y
1108           depth:           10 BE
1109           pstride:         2
1110           default offset:  0
1111           default rstride: RU4 (width * 2)
1112           default size:    rstride (component0) * RU2 (height)
1113
1114         Component 1: U
1115           depth:           10 BE
1116           pstride:         2
1117           default offset:  size (component0)
1118           default rstride: RU4 (width)
1119           default size:    rstride (component1) * RU2 (height) / 2
1120
1121         Component 2: V
1122           depth            10 BE
1123           pstride:         2
1124           default offset:  offset (component1) + size (component1)
1125           default rstride: RU4 (width)
1126           default size:    rstride (component2) * RU2 (height) / 2
1127
1128         Image
1129           default size: size (component0) + 
1130                         size (component1) +
1131                         size (component2)