docs: small update to design docs
authorWim Taymans <wim.taymans@collabora.co.uk>
Tue, 20 Dec 2011 09:08:46 +0000 (10:08 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Tue, 20 Dec 2011 09:08:46 +0000 (10:08 +0100)
docs/design/design-audiosinks.txt
docs/design/draft-media-types.txt [deleted file]
docs/design/part-interlaced-video.txt
docs/design/part-mediatype-video-raw.txt [new file with mode: 0644]
docs/design/part-playbin.txt [new file with mode: 0644]
docs/design/part-playbin2.txt [deleted file]

index bb8ab2d945b9aca0322cc4b6474dd00580c1d23e..e2dafad4deab138b9e09e8fc9f912b889f4afcfb 100644 (file)
@@ -37,7 +37,7 @@ Design:
    +-----+-----+
          |
    +-----V----------+   - manages ringbuffer
-   + baseaudiosink  +   - manages scheduling (push/pull)
+   + audiobasesink  +   - manages scheduling (push/pull)
    +-----+----------+   - manages clock/query/seek
          |              - manages scheduling of samples in the ringbuffer
          |              - manages caps parsing
@@ -106,7 +106,7 @@ Scheduling:
 
   - getrange based mode
 
-    In getrange based mode, the baseaudiosink will use the callback function
+    In getrange based mode, the audiobasesink will use the callback function
     of the ringbuffer to get a segsize samples from the peer element. These
     samples will then be placed in the ringbuffer at the next play position.
     It is assumed that the getrange function returns fast enough to fill the
@@ -120,7 +120,7 @@ Scheduling:
 DMA mode:
 
   - Elements that can do DMA based access to the audio device have to subclass
-    from the GstBaseAudioSink class and wrap the DMA ringbuffer in a subclass
+    from the GstAudioBaseSink class and wrap the DMA ringbuffer in a subclass
     of GstRingBuffer.
     
     The ringbuffer subclass should trigger a callback after writing or playing
@@ -130,7 +130,7 @@ DMA mode:
 
 Clocks:
 
-   The GstBaseAudioSink class will use the ringbuffer to act as a clock provider.
+   The GstAudioBaseSink class will use the ringbuffer to act as a clock provider.
    It can do this by using the play pointer and the delay to calculate the
    clock time.
   
diff --git a/docs/design/draft-media-types.txt b/docs/design/draft-media-types.txt
deleted file mode 100644 (file)
index f50e838..0000000
+++ /dev/null
@@ -1,1051 +0,0 @@
-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 GstMetaVideo 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 second field of view N is at N * 2.
-                     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.
-
-  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
-
-  *  "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
-
-        Component 0: Y
-          depth:           16
-          pstride:         4
-          offset:          0
-
-        Component 1: U
-          depth            16
-          pstride:         8
-          offset:          2
-
-        Component 2: V
-          depth:           16
-          pstride:         8
-          offset:          6
-
-        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
-          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)
-
-  *  "RGB8_PALETTED" 8-bit paletted RGB
-
-        Component 0: R
-          depth:           8
-
-        Component 1: G
-          depth            8
-
-        Component 2: B
-          depth:           8
-
-        Image
-          default pstride: 1
-          default rstride: RU4 (width)
-          default size:    rstride (image) * height
-
-  *  "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
-          pstride:         8
-          offset:          2
-
-        Component 1: G
-          depth            16
-          pstride:         8
-          offset:          4
-
-        Component 2: B
-          depth:           16
-          pstride:         8
-          offset:          6
-
-        Component 3: A
-          depth:           16
-          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
-          pstride:         8
-          offset:          2
-
-        Component 1: U
-          depth            16
-          pstride:         8
-          offset:          4
-
-        Component 2: V
-          depth:           16
-          pstride:         8
-          offset:          6
-
-        Component 3: A
-          depth:           16
-          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
-
index 65931461735877b8416fc608fb894780a7c9fa5d..9bd30441b279361ca4239d161c63df02e78b3aba 100644 (file)
@@ -1,3 +1,5 @@
+** outdated **
+
 Interlaced Video
 ================
 
diff --git a/docs/design/part-mediatype-video-raw.txt b/docs/design/part-mediatype-video-raw.txt
new file mode 100644 (file)
index 0000000..e46e567
--- /dev/null
@@ -0,0 +1,1052 @@
+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 second field of view N is at N * 2.
+                     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
+
+  *  "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
+
+        Component 0: Y
+          depth:           16
+          pstride:         4
+          offset:          0
+
+        Component 1: U
+          depth            16
+          pstride:         8
+          offset:          2
+
+        Component 2: V
+          depth:           16
+          pstride:         8
+          offset:          6
+
+        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
+          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)
+
+  *  "RGB8_PALETTED" 8-bit paletted RGB
+
+        Component 0: R
+          depth:           8
+
+        Component 1: G
+          depth            8
+
+        Component 2: B
+          depth:           8
+
+        Image
+          default pstride: 1
+          default rstride: RU4 (width)
+          default size:    rstride (image) * height
+
+  *  "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
+          pstride:         8
+          offset:          2
+
+        Component 1: G
+          depth            16
+          pstride:         8
+          offset:          4
+
+        Component 2: B
+          depth:           16
+          pstride:         8
+          offset:          6
+
+        Component 3: A
+          depth:           16
+          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
+          pstride:         8
+          offset:          2
+
+        Component 1: U
+          depth            16
+          pstride:         8
+          offset:          4
+
+        Component 2: V
+          depth:           16
+          pstride:         8
+          offset:          6
+
+        Component 3: A
+          depth:           16
+          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
+
diff --git a/docs/design/part-playbin.txt b/docs/design/part-playbin.txt
new file mode 100644 (file)
index 0000000..195d048
--- /dev/null
@@ -0,0 +1,69 @@
+playbin2
+--------
+
+The purpose of this element is to decode and render the media contained in a
+given generic uri. The element extends GstPipeline and is typically used in
+playback situations.
+
+Required features:
+
+ - accept and play any valid uri. This includes
+   - rendering video/audio
+   - overlaying subtitles on the video
+ - optionally read external subtitle files
+ - allow for hardware (non raw) sinks
+ - selection of audio/video/subtitle streams based on language.
+ - perform network buffering/incremental download
+ - gapless playback
+ - support for visualisations with configurable sizes
+ - ability to reject files that are too big, or of a format that would require
+   too much CPU/memory usage.
+ - be very efficient with adding elements such as converters to reduce the
+   amount of negotiation that has to happen.
+ - handle chained oggs. This includes having support for dynamic pad add and
+   remove from a demuxer.
+
+Components
+----------
+
+* decodebin2
+
+ - performs the autoplugging of demuxers/decoders
+ - emits signals when for steering the autoplugging
+   - to decide if a non-raw media format is acceptable as output
+   - to sort the possible decoders for a non-raw format
+ - see also decodebin2 design doc
+
+* uridecodebin
+
+ - combination of a source to handle the given uri, an optional queueing element
+   and one or more decodebin2 elements to decode the non-raw streams.
+
+* playsink
+
+ - handles display of audio/video/text.
+ - has request audio/video/text input pad. There is only one sinkpad per type.
+   The requested pads define the configuration of the internal pipeline. 
+ - allows for setting audio/video sinks or does automatic sink selection.
+ - allows for configuration of visualisation element.
+ - allows for enable/disable of visualisation, audio and video.
+
+* playbin2
+
+ - combination of one or more uridecodebin elements to read the uri and subtitle
+   uri.
+ - support for queuing new media to support gapless playback.
+ - handles stream selection.
+ - uses playsink to display.
+ - selection of sinks and configuration of uridecodebin with raw output formats.
+
+
+Gapless playback
+----------------
+
+playbin2 has an "about-to-finish" signal. The application should configure a new
+uri (and optional suburi) in the callback. When the current media finishes, this
+new media will be played next.
+
+
+    
diff --git a/docs/design/part-playbin2.txt b/docs/design/part-playbin2.txt
deleted file mode 100644 (file)
index 195d048..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-playbin2
---------
-
-The purpose of this element is to decode and render the media contained in a
-given generic uri. The element extends GstPipeline and is typically used in
-playback situations.
-
-Required features:
-
- - accept and play any valid uri. This includes
-   - rendering video/audio
-   - overlaying subtitles on the video
- - optionally read external subtitle files
- - allow for hardware (non raw) sinks
- - selection of audio/video/subtitle streams based on language.
- - perform network buffering/incremental download
- - gapless playback
- - support for visualisations with configurable sizes
- - ability to reject files that are too big, or of a format that would require
-   too much CPU/memory usage.
- - be very efficient with adding elements such as converters to reduce the
-   amount of negotiation that has to happen.
- - handle chained oggs. This includes having support for dynamic pad add and
-   remove from a demuxer.
-
-Components
-----------
-
-* decodebin2
-
- - performs the autoplugging of demuxers/decoders
- - emits signals when for steering the autoplugging
-   - to decide if a non-raw media format is acceptable as output
-   - to sort the possible decoders for a non-raw format
- - see also decodebin2 design doc
-
-* uridecodebin
-
- - combination of a source to handle the given uri, an optional queueing element
-   and one or more decodebin2 elements to decode the non-raw streams.
-
-* playsink
-
- - handles display of audio/video/text.
- - has request audio/video/text input pad. There is only one sinkpad per type.
-   The requested pads define the configuration of the internal pipeline. 
- - allows for setting audio/video sinks or does automatic sink selection.
- - allows for configuration of visualisation element.
- - allows for enable/disable of visualisation, audio and video.
-
-* playbin2
-
- - combination of one or more uridecodebin elements to read the uri and subtitle
-   uri.
- - support for queuing new media to support gapless playback.
- - handles stream selection.
- - uses playsink to display.
- - selection of sinks and configuration of uridecodebin with raw output formats.
-
-
-Gapless playback
-----------------
-
-playbin2 has an "about-to-finish" signal. The application should configure a new
-uri (and optional suburi) in the callback. When the current media finishes, this
-new media will be played next.
-
-
-