Skip to content

Instantly share code, notes, and snippets.

@marcan
Last active May 6, 2023 03:51
Show Gist options
  • Save marcan/d93ebdffce5b36be9aaa06079a60503f to your computer and use it in GitHub Desktop.
Save marcan/d93ebdffce5b36be9aaa06079a60503f to your computer and use it in GitHub Desktop.

Revisions

  1. marcan revised this gist Jan 1, 2023. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions dcp_surfaces.txt
    Original file line number Diff line number Diff line change
    @@ -65,6 +65,8 @@ ColorType:
    7 16 A V

    Mode
    0 Normal
    1 Multiple pixels packed together
    2 Passthrough

    CT T p1x p1y BPP M swiz
  2. marcan created this gist Jan 1, 2023.
    193 changes: 193 additions & 0 deletions dcp_surfaces.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,193 @@
    0x000 1 isTiled
    0x001 1 isTearingAllowed
    0x002 1 isPremultiplied
    0x003 4 planeCount
    0x007 4 planeCount2
    0x00b 4 pixelFormat
    0x00f 4 YCbCrMatrix
    0x013 1 transferFunctionIndex
    13 == SDR
    16 == HDR
    0x014 1 colorPrimariesIndex
    12 == P3
    0x015 4 bytesPerRow
    0x019 2 bytesPerElement
    0x01b 1 elementWidth
    0x01c 1 elementHeight
    0x01d 4 baseOffset
    0x021 4 width
    0x025 4 height
    0x029 4 allocSize
    0x02d 8 protectionOptions
    0x035 4 surfaceID
    0x039 1 numberOfComponentsOfPlane
    0x03a n typeOfComponentOfPlane

    [4*0x50]
    0x059 4 planeWidth
    0x05d 4 planeHeight
    0x061 4 planeBase
    0x065 4 planeOffset
    0x069 4 planeBytesPerRow
    0x06d 4 planeSize
    0x071 2 planeBytesPerElement
    0x073 1 planeElementWidth
    0x074 1 planeElementHeight
    0x082 1 planeAddressFormat

    [4*0x34]
    0x151 CompressedPlaneInfo

    This is a fraction (defaults to 1/1 if 0/0), possibly color/gamma related
    0x1f5 4 <- 0x5c num
    0x1f9 4 <- 0x60 denom

    PixelDef
    Type:
    0 R5G6B5
    1 A2R10G10B10
    2 A RGBA8
    3 A RGBA10
    4 A A8R10G10B10
    5 a 4:4:4
    6 a 4:2:2
    7 a 4:2:0
    8 A R16G16B16A16 FP16 (possibly gamma if transferFunctionIndex == 13, always HDR range)

    ColorType:
    0 0 YUV Full
    1 0 CIF V YUV Video
    2 0 YCCExtended
    3 0 CIF ARGB
    4 8 CIF A YUVA8 Full
    5 8 A V YUVA8 Video
    6 16 A
    7 16 A V

    Mode
    2 Passthrough

    CT T p1x p1y BPP M swiz
    0 BGRA 3 2 0 0 4 0 0000 B8G8R8A8?
    &BGA
    1 ARGB 3 2 0 0 4 0 0000 A8R8G8B8
    2 RGBA 3 2 0 0 4 0 2103 A8B8G8R8
    3 L565 3 0 0 0 2 0 0000 R5G6B5
    4 w40a 3 3 0 0 8 0 0000 X24A10R10G10B10
    &w4a
    5 w10p 3 1 0 0 4 0 0000 X2R10G10B10
    6 w30r 3 1 0 0 4 0 0000 X2R10G10B10
    &w3r
    7 w18p 3 4 1 1 5 0 0000 X2R10G10B10 + A8
    8 b3a8 3 4 1 1 5 0 0000 X2R10G10B10 + A8 Wide
    &b38
    9 RGhA 3 8 0 0 8 0 2103 A16B16G16R16
    &RhA

    10 yuvf 0 6 2 1 8 0 0000 YUV8 4:2:2 Packed Full
    &yuf
    11 yuvs 1 6 2 1 8 0 0000 YUV8 4:2:2 Packed Limited
    &yus
    12 xf4p 0 5 1 1 10 0 0000 YUV10 4:4:4 Planar Full
    &f4p
    13 x44p 1 5 1 1 10 0 0000 YUV10 4:4:4 Planar Limited
    &44p
    14 420f 0 7 2 2 8 0 0000 YUV8 4:2:0 Planar Full
    &8f0
    15 420v 1 7 2 2 8 0 0000 YUV8 4:2:0 Planar Limited
    &8v0
    16 v0a8 5 7 2 2 8 0 0000 YUVA8 4:2:0 Tri-Planar Limited
    &v08
    17 f0a8 4 7 2 2 8 0 0000 YUVA8 4:2:0 Tri-Planar Full
    18 l20v 0 7 2 2 10 1 0000
    19 pf20 0 7 2 2 10 1 0000 YUV10 4:2:0 Planar 3px-packed X2Y10Y10Y10 | X2U10U10U10 X2V10V10V10 Full
    &xf0
    20 p420 1 7 2 2 10 1 0000 YUV10 4:2:0 Planar 3px-packed X2Y10Y10Y10 | X2U10U10U10 X2V10V10V10 Limited
    &xv0
    21 xf20 0 7 2 2 10 0 0000 YUV10 4:2:0 Planar (MSB aligned 16bit) Full
    [xf0
    22 x420 1 7 2 2 10 0 0000 YUV10 4:2:0 Planar (MSB aligned 16bit) Limited
    [xv0
    23 ypf0 0 7 2 2 12 1 0000
    &tf0
    24 ypv0 1 7 2 2 12 1 0000
    &tv0
    25 422f 0 6 2 1 8 0 0000 YUV8 4:2:2 Planar Full
    &8f2
    26 422v 1 6 2 1 8 0 0000 YUV8 4:2:2 Planar Limited
    &8v2
    27 v2a8 5 6 2 1 8 0 0000 YUVA8 4:2:2 Tri-Planar Limited
    &v28
    28 f2a8 4 6 2 1 8 0 0000 YUVA8 4:2:2 Tri-Planar Full
    29 l22v 7 6 2 1 8 0 0000
    30 pf22 0 6 2 1 10 1 0000 YUV10 4:2:2 Planar 3px-packed X2Y10Y10Y10 | X2U10U10U10 X2V10V10V10 Full
    &xf2
    31 p422 1 6 2 1 10 1 0000 YUV10 4:2:2 Planar 3px-packed X2Y10Y10Y10 | X2U10U10U10 X2V10V10V10 Limited
    &xv2
    32 xf22 0 6 2 1 10 0 0000 YUV10 4:2:2 Planar (MSB aligned 16bit) Full
    [xf2
    33 x422 1 6 2 1 10 0 0000 YUV10 4:2:2 Planar (MSB aligned 16bit) Limited
    [xv2
    34 ypf2 0 6 2 1 12 1 0000
    &tf2
    35 ypv2 1 6 2 1 12 1 0000
    &tv2
    36 t2as 7 6 2 1 12 0 0000
    37 x2as 7 6 2 1 10 0 0000
    38 px2s 7 6 2 1 10 1 0000
    &x2s
    39 pt2s 7 6 2 1 12 1 0000
    &t2s
    40 444f 0 5 1 1 8 0 0000 YUV8 4:4:4 Planar Full
    &8f4
    41 444v 1 5 1 1 8 0 0000 YUV8 4:4:4 Planar Limited
    &8v4
    42 v4a8 5 5 1 1 8 0 0000 YUVA8 4:2:0 Tri-Planar Limited
    &v48
    43 f4a8 4 5 1 1 8 0 0000 YUVA8 4:2:0 Tri-Planar Full
    44 l44v 7 5 1 1 8 0 0000
    45 pf44 0 5 1 1 10 1 0000 YUV10 4:4:4 Planar 3px-packed X2Y10Y10Y10 | X2U10U10U10 X2V10V10V10 Full
    &xf4
    46 p444 1 5 1 1 10 1 0000 YUV10 4:4:4 Planar 3px-packed X2Y10Y10Y10 | X2U10U10U10 X2V10V10V10 Limited
    &xv4
    47 xf44 0 5 1 1 10 0 0000 YUV10 4:4:4 Planar (MSB aligned 16bit) Full
    [xf4
    48 x444 1 5 1 1 10 0 0000 YUV10 4:4:4 Planar (MSB aligned 16bit) Limited
    [xv4
    49 tv20 1 7 2 2 12 0 0000 YUV12 4:2:0 Planar (MSB aligned 16bit) Limited
    [tv2
    50 tv22 1 6 2 1 12 0 0000 YUV12 4:2:2 Planar (MSB aligned 16bit) Limited
    [tv2
    51 tv44 1 5 1 1 12 0 0000 YUV12 4:4:4 Planar (MSB aligned 16bit) Limited
    [tv4
    52 tf20 0 7 2 2 12 0 0000 YUV12 4:2:0 Planar (MSB aligned 16bit) Full
    [tf0
    53 tf22 0 6 2 1 12 0 0000 YUV12 4:2:2 Planar (MSB aligned 16bit) Full
    [tf2
    54 tf44 0 5 1 1 12 0 0000 YUV12 4:4:4 Planar (MSB aligned 16bit) Full
    [tf4
    55 ypf4 0 5 1 1 12 1 0000
    &tf4
    56 ypv4 1 5 1 1 12 1 0000
    &tv4
    57 t4as 7 5 1 1 12 0 0000
    58 x4as 7 5 1 1 10 0 0000
    59 xp4s 7 5 1 1 10 1 0000
    60 pt4s 7 5 1 1 12 1 0000
    &t4s
    61 xw20 2 7 2 2 10 0 0000 YUV10 4:2:0 Planar (Y LSB? C MSB aligned 16bit) Wide black=384
    62 xw22 2 6 2 1 10 0 0000 YUV10 4:2:2 Planar (Y LSB? C MSB aligned 16bit) Wide black=384
    63 xw44 2 5 1 1 10 0 0000 YUV10 4:4:4 Planar (Y LSB? C MSB aligned 16bit) Wide black=384
    64 xw4p 2 5 1 1 10 0 0000 YUV10 4:4:4 Packed Wide black=384
    65 pw20 2 7 2 2 10 1 0000 YUV10 4:2:0 Planar 3px-packed X2Y10Y10Y10 | X2U10U10U10 X2V10V10V10 Wide black=384
    66 pw22 2 6 2 1 10 1 0000 YUV10 4:2:2 Planar 3px-packed X2Y10Y10Y10 | X2U10U10U10 X2V10V10V10 Wide black=384
    67 pw44 2 5 1 1 10 1 0000 YUV10 4:4:4 Planar 3px-packed X2Y10Y10Y10 | X2U10U10U10 X2V10V10V10 Wide black=384
    68 tw20 2 7 2 2 12 0 0000 YUV12 4:2:0 Planar (MSB aligned 16bit) Wide
    69 tw22 2 6 2 1 12 0 0000 YUV12 4:2:2 Planar (MSB aligned 16bit) Wide
    70 tw44 2 5 1 1 12 0 0000 YUV12 4:4:4 Planar (MSB aligned 16bit) Wide
    71 ptw0 2 7 2 2 12 1 0000 YUV12 4:2:0 Planar 5px-packed X4Y12Y12Y12Y12Y12 | ... Wide
    72 ptw2 2 6 2 1 12 1 0000 YUV12 4:2:2 Planar 5px-packed X4Y12Y12Y12Y12Y12 | ... Wide
    73 ptw4 2 5 1 1 12 1 0000 YUV12 4:4:4 Planar 5px-packed X4Y12Y12Y12Y12Y12 | ... Wide
    74 ===1 3 2 0 0 4 2 0000 Passthrough format RGB
    75 ===2 0 5 1 1 12 2 0000 Passthrough format 4:4:4
    76 ===3 0 6 2 1 12 2 0000 Passthrough format 4:2:2