diff --git a/test/img_format.c b/test/img_format.c index f7a7354d1a..8c4a7d45e5 100644 --- a/test/img_format.c +++ b/test/img_format.c @@ -85,15 +85,20 @@ static void run(struct test_ctx *ctx) fprintf(f, " Basic desc: "); #define FLAG(t, c) if (d.flags & (t)) fprintf(f, "[%s]", c); FLAG(MP_IMGFLAG_BYTE_ALIGNED, "ba") + FLAG(MP_IMGFLAG_BYTES, "bb") FLAG(MP_IMGFLAG_ALPHA, "a") FLAG(MP_IMGFLAG_YUV_P, "yuvp") FLAG(MP_IMGFLAG_YUV_NV, "nv") - FLAG(MP_IMGFLAG_YUV, "yuv") - FLAG(MP_IMGFLAG_RGB, "rgb") + FLAG(MP_IMGFLAG_COLOR_YUV, "yuv") + FLAG(MP_IMGFLAG_COLOR_RGB, "rgb") + FLAG(MP_IMGFLAG_COLOR_XYZ, "xyz") + FLAG(MP_IMGFLAG_GRAY, "gray") FLAG(MP_IMGFLAG_LE, "le") FLAG(MP_IMGFLAG_BE, "be") - FLAG(MP_IMGFLAG_PAL, "pal") - FLAG(MP_IMGFLAG_HWACCEL, "hw") + FLAG(MP_IMGFLAG_TYPE_PAL8, "pal") + FLAG(MP_IMGFLAG_TYPE_HW, "hw") + FLAG(MP_IMGFLAG_TYPE_FLOAT, "float") + FLAG(MP_IMGFLAG_TYPE_UINT, "uint") fprintf(f, "\n"); fprintf(f, " planes=%d, chroma=%d:%d align=%d:%d\n", d.num_planes, d.chroma_xs, d.chroma_ys, d.align_x, d.align_y); diff --git a/test/ref/img_formats.txt b/test/ref/img_formats.txt index 71bbb288ca..fead5fdfa9 100644 --- a/test/ref/img_formats.txt +++ b/test/ref/img_formats.txt @@ -1,5 +1,5 @@ 0bgr: fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le][be] + Basic desc: [ba][bb][rgb][le][be][uint] planes=1, chroma=0:0 align=1:1 {32/[0:0] } 0: 32bits {24:8} {16:8} {8:8} {} @@ -10,7 +10,7 @@ 1: p=0 st=4 o=2 sh=0 d=8 2: p=0 st=4 o=1 sh=0 d=8 0rgb: fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le][be] + Basic desc: [ba][bb][rgb][le][be][uint] planes=1, chroma=0:0 align=1:1 {32/[0:0] } 0: 32bits {8:8} {16:8} {24:8} {} @@ -21,7 +21,7 @@ 1: p=0 st=4 o=2 sh=0 d=8 2: p=0 st=4 o=3 sh=0 d=8 abgr: fcsp=rgb ctype=uint - Basic desc: [ba][a][rgb][le][be] + Basic desc: [ba][bb][a][rgb][le][be][uint] planes=1, chroma=0:0 align=1:1 {32/[0:0] } 0: 32bits {24:8} {16:8} {8:8} {0:8} @@ -33,7 +33,7 @@ abgr: fcsp=rgb ctype=uint 2: p=0 st=4 o=1 sh=0 d=8 3: p=0 st=4 o=0 sh=0 d=8 argb: fcsp=rgb ctype=uint - Basic desc: [ba][a][rgb][le][be] + Basic desc: [ba][bb][a][rgb][le][be][uint] planes=1, chroma=0:0 align=1:1 {32/[0:0] } 0: 32bits {8:8} {16:8} {24:8} {0:8} @@ -45,7 +45,7 @@ argb: fcsp=rgb ctype=uint 2: p=0 st=4 o=3 sh=0 d=8 3: p=0 st=4 o=0 sh=0 d=8 ayuv64: [GENERIC] ctype=uint - Basic desc: [ba][a][yuv][le] + Basic desc: [ba][bb][a][yuv][le][uint] planes=1, chroma=0:0 align=1:1 {64/[0:0] } 0: 64bits {16:16} {32:16} {48:16} {0:16} @@ -57,7 +57,7 @@ ayuv64: [GENERIC] ctype=uint 2: p=0 st=8 o=6 sh=0 d=16 3: p=0 st=8 o=0 sh=0 d=16 ayuv64be: [GENERIC] ctype=uint - Basic desc: [ba][a][yuv][be] + Basic desc: [ba][bb][a][yuv][be][uint] planes=1, chroma=0:0 align=1:1 {64/[0:0] } 0: 64bits endian_bytes=2 {16:16} {32:16} {48:16} {0:16} @@ -66,7 +66,7 @@ ayuv64be: [GENERIC] ctype=uint 1: p=0 st=8 o=4 sh=0 d=16 2: p=0 st=8 o=6 sh=0 d=16 3: p=0 st=8 o=0 sh=0 d=16 -bayer_bggr16: [GENERIC] fcsp=rgb ctype=uint +bayer_bggr16: [GENERIC] fcsp=rgb ctype=unknown Basic desc: [ba][rgb][le][be] planes=1, chroma=0:0 align=1:1 {16/[0:0] } @@ -75,7 +75,7 @@ bayer_bggr16: [GENERIC] fcsp=rgb ctype=uint 0: p=0 st=2 o=0 sh=0 d=4 1: p=0 st=2 o=0 sh=0 d=8 2: p=0 st=2 o=0 sh=0 d=4 -bayer_bggr16be: [GENERIC] fcsp=rgb ctype=uint +bayer_bggr16be: [GENERIC] fcsp=rgb ctype=unknown Basic desc: [ba][rgb][le][be] planes=1, chroma=0:0 align=1:1 {16/[0:0] } @@ -84,7 +84,7 @@ bayer_bggr16be: [GENERIC] fcsp=rgb ctype=uint 0: p=0 st=2 o=0 sh=0 d=4 1: p=0 st=2 o=0 sh=0 d=8 2: p=0 st=2 o=0 sh=0 d=4 -bayer_bggr8: [GENERIC] fcsp=rgb ctype=uint +bayer_bggr8: [GENERIC] fcsp=rgb ctype=unknown Basic desc: [ba][rgb][le][be] planes=1, chroma=0:0 align=1:1 {8/[0:0] } @@ -93,7 +93,7 @@ bayer_bggr8: [GENERIC] fcsp=rgb ctype=uint 0: p=0 st=1 o=0 sh=0 d=2 1: p=0 st=1 o=0 sh=0 d=4 2: p=0 st=1 o=0 sh=0 d=2 -bayer_gbrg16: [GENERIC] fcsp=rgb ctype=uint +bayer_gbrg16: [GENERIC] fcsp=rgb ctype=unknown Basic desc: [ba][rgb][le][be] planes=1, chroma=0:0 align=1:1 {16/[0:0] } @@ -102,7 +102,7 @@ bayer_gbrg16: [GENERIC] fcsp=rgb ctype=uint 0: p=0 st=2 o=0 sh=0 d=4 1: p=0 st=2 o=0 sh=0 d=8 2: p=0 st=2 o=0 sh=0 d=4 -bayer_gbrg16be: [GENERIC] fcsp=rgb ctype=uint +bayer_gbrg16be: [GENERIC] fcsp=rgb ctype=unknown Basic desc: [ba][rgb][le][be] planes=1, chroma=0:0 align=1:1 {16/[0:0] } @@ -111,7 +111,7 @@ bayer_gbrg16be: [GENERIC] fcsp=rgb ctype=uint 0: p=0 st=2 o=0 sh=0 d=4 1: p=0 st=2 o=0 sh=0 d=8 2: p=0 st=2 o=0 sh=0 d=4 -bayer_gbrg8: [GENERIC] fcsp=rgb ctype=uint +bayer_gbrg8: [GENERIC] fcsp=rgb ctype=unknown Basic desc: [ba][rgb][le][be] planes=1, chroma=0:0 align=1:1 {8/[0:0] } @@ -120,7 +120,7 @@ bayer_gbrg8: [GENERIC] fcsp=rgb ctype=uint 0: p=0 st=1 o=0 sh=0 d=2 1: p=0 st=1 o=0 sh=0 d=4 2: p=0 st=1 o=0 sh=0 d=2 -bayer_grbg16: [GENERIC] fcsp=rgb ctype=uint +bayer_grbg16: [GENERIC] fcsp=rgb ctype=unknown Basic desc: [ba][rgb][le][be] planes=1, chroma=0:0 align=1:1 {16/[0:0] } @@ -129,7 +129,7 @@ bayer_grbg16: [GENERIC] fcsp=rgb ctype=uint 0: p=0 st=2 o=0 sh=0 d=4 1: p=0 st=2 o=0 sh=0 d=8 2: p=0 st=2 o=0 sh=0 d=4 -bayer_grbg16be: [GENERIC] fcsp=rgb ctype=uint +bayer_grbg16be: [GENERIC] fcsp=rgb ctype=unknown Basic desc: [ba][rgb][le][be] planes=1, chroma=0:0 align=1:1 {16/[0:0] } @@ -138,7 +138,7 @@ bayer_grbg16be: [GENERIC] fcsp=rgb ctype=uint 0: p=0 st=2 o=0 sh=0 d=4 1: p=0 st=2 o=0 sh=0 d=8 2: p=0 st=2 o=0 sh=0 d=4 -bayer_grbg8: [GENERIC] fcsp=rgb ctype=uint +bayer_grbg8: [GENERIC] fcsp=rgb ctype=unknown Basic desc: [ba][rgb][le][be] planes=1, chroma=0:0 align=1:1 {8/[0:0] } @@ -147,7 +147,7 @@ bayer_grbg8: [GENERIC] fcsp=rgb ctype=uint 0: p=0 st=1 o=0 sh=0 d=2 1: p=0 st=1 o=0 sh=0 d=4 2: p=0 st=1 o=0 sh=0 d=2 -bayer_rggb16: [GENERIC] fcsp=rgb ctype=uint +bayer_rggb16: [GENERIC] fcsp=rgb ctype=unknown Basic desc: [ba][rgb][le][be] planes=1, chroma=0:0 align=1:1 {16/[0:0] } @@ -156,7 +156,7 @@ bayer_rggb16: [GENERIC] fcsp=rgb ctype=uint 0: p=0 st=2 o=0 sh=0 d=4 1: p=0 st=2 o=0 sh=0 d=8 2: p=0 st=2 o=0 sh=0 d=4 -bayer_rggb16be: [GENERIC] fcsp=rgb ctype=uint +bayer_rggb16be: [GENERIC] fcsp=rgb ctype=unknown Basic desc: [ba][rgb][le][be] planes=1, chroma=0:0 align=1:1 {16/[0:0] } @@ -165,7 +165,7 @@ bayer_rggb16be: [GENERIC] fcsp=rgb ctype=uint 0: p=0 st=2 o=0 sh=0 d=4 1: p=0 st=2 o=0 sh=0 d=8 2: p=0 st=2 o=0 sh=0 d=4 -bayer_rggb8: [GENERIC] fcsp=rgb ctype=uint +bayer_rggb8: [GENERIC] fcsp=rgb ctype=unknown Basic desc: [ba][rgb][le][be] planes=1, chroma=0:0 align=1:1 {8/[0:0] } @@ -175,7 +175,7 @@ bayer_rggb8: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=1 o=0 sh=0 d=4 2: p=0 st=1 o=0 sh=0 d=2 bgr0: fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le][be] + Basic desc: [ba][bb][rgb][le][be][uint] planes=1, chroma=0:0 align=1:1 {32/[0:0] } 0: 32bits {16:8} {8:8} {0:8} {} @@ -186,7 +186,7 @@ bgr0: fcsp=rgb ctype=uint 1: p=0 st=4 o=1 sh=0 d=8 2: p=0 st=4 o=0 sh=0 d=8 bgr24: fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le][be] + Basic desc: [ba][bb][rgb][le][be][uint] planes=1, chroma=0:0 align=1:1 {24/[0:0] } 0: 24bits {16:8} {8:8} {0:8} {} @@ -197,7 +197,7 @@ bgr24: fcsp=rgb ctype=uint 1: p=0 st=3 o=1 sh=0 d=8 2: p=0 st=3 o=0 sh=0 d=8 bgr4: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [rgb][le][be] + Basic desc: [rgb][le][be][uint] planes=1, chroma=0:0 align=2:1 {4/[0:0] } 0: 4bits {3:1} {1:2} {0:1} {} @@ -206,7 +206,7 @@ bgr4: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=4 o=1 sh=0 d=2 2: p=0 st=4 o=0 sh=0 d=1 bgr444: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][rgb][le][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits {0:4} {4:4} {8:4} {} @@ -215,7 +215,7 @@ bgr444: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=4 d=4 2: p=0 st=2 o=1 sh=0 d=4 bgr444be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][be] + Basic desc: [ba][rgb][be][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits endian_bytes=2 {0:4} {4:4} {8:4} {} @@ -224,7 +224,7 @@ bgr444be: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=4 d=4 2: p=0 st=2 o=-1 sh=0 d=4 bgr48: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][bb][rgb][le][uint] planes=1, chroma=0:0 align=1:1 {48/[0:0] } 0: 48bits {32:16} {16:16} {0:16} {} @@ -235,7 +235,7 @@ bgr48: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=6 o=2 sh=0 d=16 2: p=0 st=6 o=0 sh=0 d=16 bgr48be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][be] + Basic desc: [ba][bb][rgb][be][uint] planes=1, chroma=0:0 align=1:1 {48/[0:0] } 0: 48bits endian_bytes=2 {32:16} {16:16} {0:16} {} @@ -244,7 +244,7 @@ bgr48be: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=6 o=2 sh=0 d=16 2: p=0 st=6 o=0 sh=0 d=16 bgr4_byte: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le][be] + Basic desc: [ba][rgb][le][be][uint] planes=1, chroma=0:0 align=1:1 {8/[0:0] } 0: 8bits {0:1} {1:2} {3:1} {} @@ -253,7 +253,7 @@ bgr4_byte: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=1 o=0 sh=1 d=2 2: p=0 st=1 o=0 sh=3 d=1 bgr555: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][rgb][le][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits {0:5} {5:5} {10:5} {} @@ -262,7 +262,7 @@ bgr555: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=5 d=5 2: p=0 st=2 o=1 sh=2 d=5 bgr555be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][be] + Basic desc: [ba][rgb][be][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits endian_bytes=2 {0:5} {5:5} {10:5} {} @@ -271,7 +271,7 @@ bgr555be: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=5 d=5 2: p=0 st=2 o=-1 sh=2 d=5 bgr565: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][rgb][le][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits {0:5} {5:6} {11:5} {} @@ -280,7 +280,7 @@ bgr565: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=5 d=6 2: p=0 st=2 o=1 sh=3 d=5 bgr565be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][be] + Basic desc: [ba][rgb][be][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits endian_bytes=2 {0:5} {5:6} {11:5} {} @@ -289,7 +289,7 @@ bgr565be: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=5 d=6 2: p=0 st=2 o=-1 sh=3 d=5 bgr8: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le][be] + Basic desc: [ba][rgb][le][be][uint] planes=1, chroma=0:0 align=1:1 {8/[0:0] } 0: 8bits {0:3} {3:3} {6:2} {} @@ -298,7 +298,7 @@ bgr8: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=1 o=0 sh=3 d=3 2: p=0 st=1 o=0 sh=6 d=2 bgra: fcsp=rgb ctype=uint - Basic desc: [ba][a][rgb][le][be] + Basic desc: [ba][bb][a][rgb][le][be][uint] planes=1, chroma=0:0 align=1:1 {32/[0:0] } 0: 32bits {16:8} {8:8} {0:8} {24:8} @@ -310,7 +310,7 @@ bgra: fcsp=rgb ctype=uint 2: p=0 st=4 o=0 sh=0 d=8 3: p=0 st=4 o=3 sh=0 d=8 bgra64: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][a][rgb][le] + Basic desc: [ba][bb][a][rgb][le][uint] planes=1, chroma=0:0 align=1:1 {64/[0:0] } 0: 64bits {32:16} {16:16} {0:16} {48:16} @@ -322,7 +322,7 @@ bgra64: [GENERIC] fcsp=rgb ctype=uint 2: p=0 st=8 o=0 sh=0 d=16 3: p=0 st=8 o=6 sh=0 d=16 bgra64be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][a][rgb][be] + Basic desc: [ba][bb][a][rgb][be][uint] planes=1, chroma=0:0 align=1:1 {64/[0:0] } 0: 64bits endian_bytes=2 {32:16} {16:16} {0:16} {48:16} @@ -357,7 +357,7 @@ dxva2_vld: ctype=unknown {} AVD: name=dxva2_vld chroma=1:1 flags=0x8 [hw] gbrap: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][a][rgb][le][be] + Basic desc: [ba][bb][a][rgb][le][be][uint] planes=4, chroma=0:0 align=1:1 {8/[0:0] 8/[0:0] 8/[0:0] 8/[0:0] } 0: 8bits {} {0:8} {} {} @@ -375,7 +375,7 @@ gbrap: [GENERIC] fcsp=rgb ctype=uint 2: p=1 st=1 o=0 sh=0 d=8 3: p=3 st=1 o=0 sh=0 d=8 gbrap10: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][a][rgb][le] + Basic desc: [ba][bb][a][rgb][le][uint] planes=4, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {} {0:16/-6} {} {} @@ -393,7 +393,7 @@ gbrap10: [GENERIC] fcsp=rgb ctype=uint 2: p=1 st=2 o=0 sh=0 d=10 3: p=3 st=2 o=0 sh=0 d=10 gbrap10be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][a][rgb][be] + Basic desc: [ba][bb][a][rgb][be][uint] planes=4, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {} {0:16/-6} {} {} @@ -406,7 +406,7 @@ gbrap10be: [GENERIC] fcsp=rgb ctype=uint 2: p=1 st=2 o=0 sh=0 d=10 3: p=3 st=2 o=0 sh=0 d=10 gbrap12: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][a][rgb][le] + Basic desc: [ba][bb][a][rgb][le][uint] planes=4, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {} {0:16/-4} {} {} @@ -424,7 +424,7 @@ gbrap12: [GENERIC] fcsp=rgb ctype=uint 2: p=1 st=2 o=0 sh=0 d=12 3: p=3 st=2 o=0 sh=0 d=12 gbrap12be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][a][rgb][be] + Basic desc: [ba][bb][a][rgb][be][uint] planes=4, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {} {0:16/-4} {} {} @@ -437,7 +437,7 @@ gbrap12be: [GENERIC] fcsp=rgb ctype=uint 2: p=1 st=2 o=0 sh=0 d=12 3: p=3 st=2 o=0 sh=0 d=12 gbrap16: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][a][rgb][le] + Basic desc: [ba][bb][a][rgb][le][uint] planes=4, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {} {0:16} {} {} @@ -455,7 +455,7 @@ gbrap16: [GENERIC] fcsp=rgb ctype=uint 2: p=1 st=2 o=0 sh=0 d=16 3: p=3 st=2 o=0 sh=0 d=16 gbrap16be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][a][rgb][be] + Basic desc: [ba][bb][a][rgb][be][uint] planes=4, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {} {0:16} {} {} @@ -468,7 +468,7 @@ gbrap16be: [GENERIC] fcsp=rgb ctype=uint 2: p=1 st=2 o=0 sh=0 d=16 3: p=3 st=2 o=0 sh=0 d=16 gbrapf32: [GENERIC] fcsp=rgb ctype=float - Basic desc: [ba][a][rgb][le] + Basic desc: [ba][bb][a][rgb][le][float] planes=4, chroma=0:0 align=1:1 {32/[0:0] 32/[0:0] 32/[0:0] 32/[0:0] } 0: 32bits {} {0:32} {} {} @@ -486,7 +486,7 @@ gbrapf32: [GENERIC] fcsp=rgb ctype=float 2: p=1 st=4 o=0 sh=0 d=32 3: p=3 st=4 o=0 sh=0 d=32 gbrapf32be: [GENERIC] fcsp=rgb ctype=float - Basic desc: [ba][a][rgb][be] + Basic desc: [ba][bb][a][rgb][be][float] planes=4, chroma=0:0 align=1:1 {32/[0:0] 32/[0:0] 32/[0:0] 32/[0:0] } 0: 32bits endian_bytes=4 {} {0:32} {} {} @@ -499,7 +499,7 @@ gbrapf32be: [GENERIC] fcsp=rgb ctype=float 2: p=1 st=4 o=0 sh=0 d=32 3: p=3 st=4 o=0 sh=0 d=32 gbrp: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le][be] + Basic desc: [ba][bb][rgb][le][be][uint] planes=3, chroma=0:0 align=1:1 {8/[0:0] 8/[0:0] 8/[0:0] } 0: 8bits {} {0:8} {} {} @@ -514,18 +514,18 @@ gbrp: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=1 o=0 sh=0 d=8 2: p=1 st=1 o=0 sh=0 d=8 gbrp1: fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][bb][rgb][le][uint] planes=3, chroma=0:0 align=1:1 {8/[0:0] 8/[0:0] 8/[0:0] } - 0: 8bits {} {} {} {} - 1: 8bits {} {} {} {} - 2: 8bits {} {} {} {} + 0: 8bits {} {0:8/-7} {} {} + 1: 8bits {} {} {0:8/-7} {} + 2: 8bits {0:8/-7} {} {} {} Regular: planes=3 compbytes=1 bitpad=-7 chroma=1x1 ctype=uint 0: {2} 1: {3} 2: {1} gbrp10: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][bb][rgb][le][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {} {0:16/-6} {} {} @@ -540,7 +540,7 @@ gbrp10: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=0 d=10 2: p=1 st=2 o=0 sh=0 d=10 gbrp10be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][be] + Basic desc: [ba][bb][rgb][be][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {} {0:16/-6} {} {} @@ -551,7 +551,7 @@ gbrp10be: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=0 d=10 2: p=1 st=2 o=0 sh=0 d=10 gbrp12: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][bb][rgb][le][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {} {0:16/-4} {} {} @@ -566,7 +566,7 @@ gbrp12: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=0 d=12 2: p=1 st=2 o=0 sh=0 d=12 gbrp12be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][be] + Basic desc: [ba][bb][rgb][be][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {} {0:16/-4} {} {} @@ -577,7 +577,7 @@ gbrp12be: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=0 d=12 2: p=1 st=2 o=0 sh=0 d=12 gbrp14: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][bb][rgb][le][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {} {0:16/-2} {} {} @@ -592,7 +592,7 @@ gbrp14: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=0 d=14 2: p=1 st=2 o=0 sh=0 d=14 gbrp14be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][be] + Basic desc: [ba][bb][rgb][be][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {} {0:16/-2} {} {} @@ -603,7 +603,7 @@ gbrp14be: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=0 d=14 2: p=1 st=2 o=0 sh=0 d=14 gbrp16: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][bb][rgb][le][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {} {0:16} {} {} @@ -618,7 +618,7 @@ gbrp16: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=0 d=16 2: p=1 st=2 o=0 sh=0 d=16 gbrp16be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][be] + Basic desc: [ba][bb][rgb][be][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {} {0:16} {} {} @@ -629,62 +629,62 @@ gbrp16be: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=0 d=16 2: p=1 st=2 o=0 sh=0 d=16 gbrp2: fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][bb][rgb][le][uint] planes=3, chroma=0:0 align=1:1 {8/[0:0] 8/[0:0] 8/[0:0] } - 0: 8bits {} {} {} {} - 1: 8bits {} {} {} {} - 2: 8bits {} {} {} {} + 0: 8bits {} {0:8/-6} {} {} + 1: 8bits {} {} {0:8/-6} {} + 2: 8bits {0:8/-6} {} {} {} Regular: planes=3 compbytes=1 bitpad=-6 chroma=1x1 ctype=uint 0: {2} 1: {3} 2: {1} gbrp3: fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][bb][rgb][le][uint] planes=3, chroma=0:0 align=1:1 {8/[0:0] 8/[0:0] 8/[0:0] } - 0: 8bits {} {} {} {} - 1: 8bits {} {} {} {} - 2: 8bits {} {} {} {} + 0: 8bits {} {0:8/-5} {} {} + 1: 8bits {} {} {0:8/-5} {} + 2: 8bits {0:8/-5} {} {} {} Regular: planes=3 compbytes=1 bitpad=-5 chroma=1x1 ctype=uint 0: {2} 1: {3} 2: {1} gbrp4: fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][bb][rgb][le][uint] planes=3, chroma=0:0 align=1:1 {8/[0:0] 8/[0:0] 8/[0:0] } - 0: 8bits {} {} {} {} - 1: 8bits {} {} {} {} - 2: 8bits {} {} {} {} + 0: 8bits {} {0:8/-4} {} {} + 1: 8bits {} {} {0:8/-4} {} + 2: 8bits {0:8/-4} {} {} {} Regular: planes=3 compbytes=1 bitpad=-4 chroma=1x1 ctype=uint 0: {2} 1: {3} 2: {1} gbrp5: fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][bb][rgb][le][uint] planes=3, chroma=0:0 align=1:1 {8/[0:0] 8/[0:0] 8/[0:0] } - 0: 8bits {} {} {} {} - 1: 8bits {} {} {} {} - 2: 8bits {} {} {} {} + 0: 8bits {} {0:8/-3} {} {} + 1: 8bits {} {} {0:8/-3} {} + 2: 8bits {0:8/-3} {} {} {} Regular: planes=3 compbytes=1 bitpad=-3 chroma=1x1 ctype=uint 0: {2} 1: {3} 2: {1} gbrp6: fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][bb][rgb][le][uint] planes=3, chroma=0:0 align=1:1 {8/[0:0] 8/[0:0] 8/[0:0] } - 0: 8bits {} {} {} {} - 1: 8bits {} {} {} {} - 2: 8bits {} {} {} {} + 0: 8bits {} {0:8/-2} {} {} + 1: 8bits {} {} {0:8/-2} {} + 2: 8bits {0:8/-2} {} {} {} Regular: planes=3 compbytes=1 bitpad=-2 chroma=1x1 ctype=uint 0: {2} 1: {3} 2: {1} gbrp9: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][bb][rgb][le][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {} {0:16/-7} {} {} @@ -699,7 +699,7 @@ gbrp9: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=0 d=9 2: p=1 st=2 o=0 sh=0 d=9 gbrp9be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][be] + Basic desc: [ba][bb][rgb][be][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {} {0:16/-7} {} {} @@ -710,7 +710,7 @@ gbrp9be: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=0 d=9 2: p=1 st=2 o=0 sh=0 d=9 gbrpf32: [GENERIC] fcsp=rgb ctype=float - Basic desc: [ba][rgb][le] + Basic desc: [ba][bb][rgb][le][float] planes=3, chroma=0:0 align=1:1 {32/[0:0] 32/[0:0] 32/[0:0] } 0: 32bits {} {0:32} {} {} @@ -725,7 +725,7 @@ gbrpf32: [GENERIC] fcsp=rgb ctype=float 1: p=0 st=4 o=0 sh=0 d=32 2: p=1 st=4 o=0 sh=0 d=32 gbrpf32be: [GENERIC] fcsp=rgb ctype=float - Basic desc: [ba][rgb][be] + Basic desc: [ba][bb][rgb][be][float] planes=3, chroma=0:0 align=1:1 {32/[0:0] 32/[0:0] 32/[0:0] } 0: 32bits endian_bytes=4 {} {0:32} {} {} @@ -736,7 +736,7 @@ gbrpf32be: [GENERIC] fcsp=rgb ctype=float 1: p=0 st=4 o=0 sh=0 d=32 2: p=1 st=4 o=0 sh=0 d=32 gray: ctype=uint - Basic desc: [ba][yuvp][yuv][le][be] + Basic desc: [ba][bb][yuvp][yuv][gray][le][be][uint] planes=1, chroma=0:0 align=1:1 {8/[0:0] } 0: 8bits {0:8} {} {} {} @@ -745,7 +745,7 @@ gray: ctype=uint AVD: name=gray chroma=0:0 flags=0x40 0: p=0 st=1 o=0 sh=0 d=8 gray10: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][gray][le][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits {0:16/-6} {} {} {} @@ -754,14 +754,14 @@ gray10: [GENERIC] ctype=uint AVD: name=gray10le chroma=0:0 flags=0x0 0: p=0 st=2 o=0 sh=0 d=10 gray10be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][gray][be][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-6} {} {} {} AVD: name=gray10be chroma=0:0 flags=0x1 [be] 0: p=0 st=2 o=0 sh=0 d=10 gray12: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][gray][le][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits {0:16/-4} {} {} {} @@ -770,14 +770,14 @@ gray12: [GENERIC] ctype=uint AVD: name=gray12le chroma=0:0 flags=0x0 0: p=0 st=2 o=0 sh=0 d=12 gray12be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][gray][be][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-4} {} {} {} AVD: name=gray12be chroma=0:0 flags=0x1 [be] 0: p=0 st=2 o=0 sh=0 d=12 gray14: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][gray][le][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits {0:16/-2} {} {} {} @@ -786,14 +786,14 @@ gray14: [GENERIC] ctype=uint AVD: name=gray14le chroma=0:0 flags=0x0 0: p=0 st=2 o=0 sh=0 d=14 gray14be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][gray][be][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-2} {} {} {} AVD: name=gray14be chroma=0:0 flags=0x1 [be] 0: p=0 st=2 o=0 sh=0 d=14 gray16: ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][gray][le][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits {0:16} {} {} {} @@ -802,14 +802,14 @@ gray16: ctype=uint AVD: name=gray16le chroma=0:0 flags=0x0 0: p=0 st=2 o=0 sh=0 d=16 gray16be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][gray][be][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits endian_bytes=2 {0:16} {} {} {} AVD: name=gray16be chroma=0:0 flags=0x1 [be] 0: p=0 st=2 o=0 sh=0 d=16 gray9: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][gray][le][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits {0:16/-7} {} {} {} @@ -818,23 +818,23 @@ gray9: [GENERIC] ctype=uint AVD: name=gray9le chroma=0:0 flags=0x0 0: p=0 st=2 o=0 sh=0 d=9 gray9be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][gray][be][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-7} {} {} {} AVD: name=gray9be chroma=0:0 flags=0x1 [be] 0: p=0 st=2 o=0 sh=0 d=9 grayaf32: ctype=float - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuv][gray][le][float] planes=2, chroma=0:0 align=1:1 {32/[0:0] 32/[0:0] } - 0: 32bits {} {} {} {} - 1: 32bits {} {} {} {} + 0: 32bits {0:32} {} {} {} + 1: 32bits {} {} {} {0:32} Regular: planes=2 compbytes=4 bitpad=0 chroma=1x1 ctype=float 0: {1} 1: {4} grayf32: [GENERIC] ctype=float - Basic desc: [ba][yuv][le] + Basic desc: [ba][bb][yuv][gray][le][float] planes=1, chroma=0:0 align=1:1 {32/[0:0] } 0: 32bits {0:32} {} {} {} @@ -843,7 +843,7 @@ grayf32: [GENERIC] ctype=float AVD: name=grayf32le chroma=0:0 flags=0x200 [float] 0: p=0 st=4 o=0 sh=0 d=32 grayf32be: [GENERIC] ctype=float - Basic desc: [ba][yuv][be] + Basic desc: [ba][bb][yuv][gray][be][float] planes=1, chroma=0:0 align=1:1 {32/[0:0] } 0: 32bits endian_bytes=4 {0:32} {} {} {} @@ -860,21 +860,21 @@ mmal: ctype=unknown {} AVD: name=mmal chroma=0:0 flags=0x8 [hw] monob: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [rgb][le][be] + Basic desc: [rgb][gray][le][be][uint] planes=1, chroma=0:0 align=8:1 {1/[0:0] } 0: 1bits {0:1} {} {} {} AVD: name=monob chroma=0:0 flags=0x4 [bs] 0: p=0 st=1 o=0 sh=7 d=1 monow: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [rgb][le][be] + Basic desc: [rgb][gray][le][be][uint] planes=1, chroma=0:0 align=8:1 {1/[0:0] } 0: 1bits {0:1} {} {} {} AVD: name=monow chroma=0:0 flags=0x4 [bs] 0: p=0 st=1 o=0 sh=0 d=1 nv12: ctype=uint - Basic desc: [ba][nv][yuv][le][be] + Basic desc: [ba][bb][nv][yuv][le][be][uint] planes=2, chroma=1:1 align=2:2 {8/[0:0] 16/[1:1] } 0: 8bits {0:8} {} {} {} @@ -887,7 +887,7 @@ nv12: ctype=uint 1: p=1 st=2 o=0 sh=0 d=8 2: p=1 st=2 o=1 sh=0 d=8 nv16: [GENERIC] ctype=uint - Basic desc: [ba][nv][yuv][le][be] + Basic desc: [ba][bb][nv][yuv][le][be][uint] planes=2, chroma=1:0 align=2:1 {8/[0:0] 16/[1:0] } 0: 8bits {0:8} {} {} {} @@ -900,7 +900,7 @@ nv16: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=8 2: p=1 st=2 o=1 sh=0 d=8 nv20: [GENERIC] ctype=uint - Basic desc: [ba][nv][yuv][le] + Basic desc: [ba][bb][nv][yuv][le][uint] planes=2, chroma=1:0 align=2:1 {16/[0:0] 32/[1:0] } 0: 16bits {0:16/-6} {} {} {} @@ -913,7 +913,7 @@ nv20: [GENERIC] ctype=uint 1: p=1 st=4 o=0 sh=0 d=10 2: p=1 st=4 o=2 sh=0 d=10 nv20be: [GENERIC] ctype=uint - Basic desc: [ba][nv][yuv][be] + Basic desc: [ba][bb][nv][yuv][be][uint] planes=2, chroma=1:0 align=2:1 {16/[0:0] 32/[1:0] } 0: 16bits endian_bytes=2 {0:16/-6} {} {} {} @@ -923,7 +923,7 @@ nv20be: [GENERIC] ctype=uint 1: p=1 st=4 o=0 sh=0 d=10 2: p=1 st=4 o=2 sh=0 d=10 nv21: [GENERIC] ctype=uint - Basic desc: [ba][nv][yuv][le][be] + Basic desc: [ba][bb][nv][yuv][le][be][uint] planes=2, chroma=1:1 align=2:2 {8/[0:0] 16/[1:1] } 0: 8bits {0:8} {} {} {} @@ -936,7 +936,7 @@ nv21: [GENERIC] ctype=uint 1: p=1 st=2 o=1 sh=0 d=8 2: p=1 st=2 o=0 sh=0 d=8 nv24: [GENERIC] ctype=uint - Basic desc: [ba][nv][yuv][le][be] + Basic desc: [ba][bb][nv][yuv][le][be][uint] planes=2, chroma=0:0 align=1:1 {8/[0:0] 16/[0:0] } 0: 8bits {0:8} {} {} {} @@ -949,7 +949,7 @@ nv24: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=8 2: p=1 st=2 o=1 sh=0 d=8 nv42: [GENERIC] ctype=uint - Basic desc: [ba][nv][yuv][le][be] + Basic desc: [ba][bb][nv][yuv][le][be][uint] planes=2, chroma=0:0 align=1:1 {8/[0:0] 16/[0:0] } 0: 8bits {0:8} {} {} {} @@ -967,7 +967,7 @@ opencl: [GENERIC] ctype=unknown {} AVD: name=opencl chroma=0:0 flags=0x8 [hw] p010: ctype=uint - Basic desc: [ba][nv][yuv][le] + Basic desc: [ba][bb][nv][yuv][le][uint] planes=2, chroma=1:1 align=2:2 {16/[0:0] 32/[1:1] } 0: 16bits {0:16/6} {} {} {} @@ -980,7 +980,7 @@ p010: ctype=uint 1: p=1 st=4 o=0 sh=6 d=10 2: p=1 st=4 o=2 sh=6 d=10 p010be: [GENERIC] ctype=uint - Basic desc: [ba][nv][yuv][be] + Basic desc: [ba][bb][nv][yuv][be][uint] planes=2, chroma=1:1 align=2:2 {16/[0:0] 32/[1:1] } 0: 16bits endian_bytes=2 {0:16/6} {} {} {} @@ -990,7 +990,7 @@ p010be: [GENERIC] ctype=uint 1: p=1 st=4 o=0 sh=6 d=10 2: p=1 st=4 o=2 sh=6 d=10 p016: [GENERIC] ctype=uint - Basic desc: [ba][nv][yuv][le] + Basic desc: [ba][bb][nv][yuv][le][uint] planes=2, chroma=1:1 align=2:2 {16/[0:0] 32/[1:1] } 0: 16bits {0:16} {} {} {} @@ -1003,7 +1003,7 @@ p016: [GENERIC] ctype=uint 1: p=1 st=4 o=0 sh=0 d=16 2: p=1 st=4 o=2 sh=0 d=16 p016be: [GENERIC] ctype=uint - Basic desc: [ba][nv][yuv][be] + Basic desc: [ba][bb][nv][yuv][be][uint] planes=2, chroma=1:1 align=2:2 {16/[0:0] 32/[1:1] } 0: 16bits endian_bytes=2 {0:16} {} {} {} @@ -1012,7 +1012,7 @@ p016be: [GENERIC] ctype=uint 0: p=0 st=2 o=0 sh=0 d=16 1: p=1 st=4 o=0 sh=0 d=16 2: p=1 st=4 o=2 sh=0 d=16 -pal8: fcsp=rgb ctype=uint +pal8: fcsp=rgb ctype=unknown Basic desc: [ba][a][rgb][le][be][pal] planes=1, chroma=0:0 align=1:1 {8/[0:0] } @@ -1025,7 +1025,7 @@ qsv: [GENERIC] ctype=unknown {} AVD: name=qsv chroma=0:0 flags=0x8 [hw] rgb0: fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le][be] + Basic desc: [ba][bb][rgb][le][be][uint] planes=1, chroma=0:0 align=1:1 {32/[0:0] } 0: 32bits {0:8} {8:8} {16:8} {} @@ -1036,7 +1036,7 @@ rgb0: fcsp=rgb ctype=uint 1: p=0 st=4 o=1 sh=0 d=8 2: p=0 st=4 o=2 sh=0 d=8 rgb24: fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le][be] + Basic desc: [ba][bb][rgb][le][be][uint] planes=1, chroma=0:0 align=1:1 {24/[0:0] } 0: 24bits {0:8} {8:8} {16:8} {} @@ -1047,12 +1047,12 @@ rgb24: fcsp=rgb ctype=uint 1: p=0 st=3 o=1 sh=0 d=8 2: p=0 st=3 o=2 sh=0 d=8 rgb30: fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][rgb][le][uint] planes=1, chroma=0:0 align=1:1 {32/[0:0] } 0: 32bits {20:10} {10:10} {0:10} {} rgb4: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [rgb][le][be] + Basic desc: [rgb][le][be][uint] planes=1, chroma=0:0 align=2:1 {4/[0:0] } 0: 4bits {0:1} {1:2} {3:1} {} @@ -1061,7 +1061,7 @@ rgb4: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=4 o=1 sh=0 d=2 2: p=0 st=4 o=3 sh=0 d=1 rgb444: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][rgb][le][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits {8:4} {4:4} {0:4} {} @@ -1070,7 +1070,7 @@ rgb444: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=4 d=4 2: p=0 st=2 o=0 sh=0 d=4 rgb444be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][be] + Basic desc: [ba][rgb][be][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits endian_bytes=2 {8:4} {4:4} {0:4} {} @@ -1079,7 +1079,7 @@ rgb444be: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=4 d=4 2: p=0 st=2 o=0 sh=0 d=4 rgb48: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][bb][rgb][le][uint] planes=1, chroma=0:0 align=1:1 {48/[0:0] } 0: 48bits {0:16} {16:16} {32:16} {} @@ -1090,7 +1090,7 @@ rgb48: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=6 o=2 sh=0 d=16 2: p=0 st=6 o=4 sh=0 d=16 rgb48be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][be] + Basic desc: [ba][bb][rgb][be][uint] planes=1, chroma=0:0 align=1:1 {48/[0:0] } 0: 48bits endian_bytes=2 {0:16} {16:16} {32:16} {} @@ -1099,7 +1099,7 @@ rgb48be: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=6 o=2 sh=0 d=16 2: p=0 st=6 o=4 sh=0 d=16 rgb4_byte: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le][be] + Basic desc: [ba][rgb][le][be][uint] planes=1, chroma=0:0 align=1:1 {8/[0:0] } 0: 8bits {3:1} {1:2} {0:1} {} @@ -1108,7 +1108,7 @@ rgb4_byte: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=1 o=0 sh=1 d=2 2: p=0 st=1 o=0 sh=0 d=1 rgb555: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][rgb][le][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits {10:5} {5:5} {0:5} {} @@ -1117,7 +1117,7 @@ rgb555: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=5 d=5 2: p=0 st=2 o=0 sh=0 d=5 rgb555be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][be] + Basic desc: [ba][rgb][be][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits endian_bytes=2 {10:5} {5:5} {0:5} {} @@ -1126,7 +1126,7 @@ rgb555be: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=5 d=5 2: p=0 st=2 o=0 sh=0 d=5 rgb565: fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][rgb][le][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits {11:5} {5:6} {0:5} {} @@ -1135,7 +1135,7 @@ rgb565: fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=5 d=6 2: p=0 st=2 o=0 sh=0 d=5 rgb565be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][be] + Basic desc: [ba][rgb][be][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits endian_bytes=2 {11:5} {5:6} {0:5} {} @@ -1144,7 +1144,7 @@ rgb565be: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=2 o=0 sh=5 d=6 2: p=0 st=2 o=0 sh=0 d=5 rgb8: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le][be] + Basic desc: [ba][rgb][le][be][uint] planes=1, chroma=0:0 align=1:1 {8/[0:0] } 0: 8bits {5:3} {2:3} {0:2} {} @@ -1153,7 +1153,7 @@ rgb8: [GENERIC] fcsp=rgb ctype=uint 1: p=0 st=1 o=0 sh=3 d=3 2: p=0 st=1 o=0 sh=0 d=3 rgba: fcsp=rgb ctype=uint - Basic desc: [ba][a][rgb][le][be] + Basic desc: [ba][bb][a][rgb][le][be][uint] planes=1, chroma=0:0 align=1:1 {32/[0:0] } 0: 32bits {0:8} {8:8} {16:8} {24:8} @@ -1165,7 +1165,7 @@ rgba: fcsp=rgb ctype=uint 2: p=0 st=4 o=2 sh=0 d=8 3: p=0 st=4 o=3 sh=0 d=8 rgba64: fcsp=rgb ctype=uint - Basic desc: [ba][a][rgb][le] + Basic desc: [ba][bb][a][rgb][le][uint] planes=1, chroma=0:0 align=1:1 {64/[0:0] } 0: 64bits {0:16} {16:16} {32:16} {48:16} @@ -1177,7 +1177,7 @@ rgba64: fcsp=rgb ctype=uint 2: p=0 st=8 o=4 sh=0 d=16 3: p=0 st=8 o=6 sh=0 d=16 rgba64be: [GENERIC] fcsp=rgb ctype=uint - Basic desc: [ba][a][rgb][be] + Basic desc: [ba][bb][a][rgb][be][uint] planes=1, chroma=0:0 align=1:1 {64/[0:0] } 0: 64bits endian_bytes=2 {0:16} {16:16} {32:16} {48:16} @@ -1187,7 +1187,7 @@ rgba64be: [GENERIC] fcsp=rgb ctype=uint 2: p=0 st=8 o=4 sh=0 d=16 3: p=0 st=8 o=6 sh=0 d=16 uyvy422: ctype=uint - Basic desc: [ba][yuv][le][be] + Basic desc: [ba][yuv][le][be][uint] planes=1, chroma=1:0 align=2:1 {16/[0:0] } 0: 16bits {8:8} {0:8} {16:8} {} @@ -1197,7 +1197,7 @@ uyvy422: ctype=uint 1: p=0 st=4 o=0 sh=0 d=8 2: p=0 st=4 o=2 sh=0 d=8 uyyvyy411: [GENERIC] ctype=uint - Basic desc: [yuv][le][be] + Basic desc: [yuv][le][be][uint] planes=1, chroma=2:0 align=4:1 {12/[0:0] } 0: 12bits {8:8} {0:8} {24:8} {} @@ -1226,9 +1226,9 @@ vdpau: ctype=unknown planes=0, chroma=1:1 align=2:2 {} AVD: name=vdpau chroma=1:1 flags=0x8 [hw] -vdpau_output: ctype=unknown - Basic desc: [rgb][le][be][hw] - planes=0, chroma=0:0 align=0:0 +vdpau_output: fcsp=rgb ctype=unknown + Basic desc: [rgb][le][hw] + planes=0, chroma=0:0 align=1:1 {} videotoolbox: ctype=unknown Basic desc: [le][be][hw] @@ -1246,7 +1246,7 @@ xvmc: [GENERIC] ctype=unknown {} AVD: name=xvmc chroma=0:0 flags=0x8 [hw] xyz12: [GENERIC] fcsp=xyz ctype=uint - Basic desc: [ba][le] + Basic desc: [ba][bb][xyz][le][uint] planes=1, chroma=0:0 align=1:1 {48/[0:0] } 0: 48bits {0:16/4} {16:16/4} {32:16/4} {} @@ -1257,7 +1257,7 @@ xyz12: [GENERIC] fcsp=xyz ctype=uint 1: p=0 st=6 o=2 sh=4 d=12 2: p=0 st=6 o=4 sh=4 d=12 xyz12be: [GENERIC] fcsp=xyz ctype=uint - Basic desc: [ba][be] + Basic desc: [ba][bb][xyz][be][uint] planes=1, chroma=0:0 align=1:1 {48/[0:0] } 0: 48bits endian_bytes=2 {0:16/4} {16:16/4} {32:16/4} {} @@ -1266,14 +1266,14 @@ xyz12be: [GENERIC] fcsp=xyz ctype=uint 1: p=0 st=6 o=2 sh=4 d=12 2: p=0 st=6 o=4 sh=4 d=12 y1: fcsp=rgb ctype=uint - Basic desc: [ba][rgb][le] + Basic desc: [ba][bb][rgb][gray][le][uint] planes=1, chroma=0:0 align=1:1 {8/[0:0] } - 0: 8bits {} {} {} {} + 0: 8bits {0:8/-7} {} {} {} Regular: planes=1 compbytes=1 bitpad=-7 chroma=1x1 ctype=uint 0: {1} y210: [GENERIC] ctype=uint - Basic desc: [ba][yuv][le] + Basic desc: [ba][yuv][le][uint] planes=1, chroma=1:0 align=2:1 {32/[0:0] } 0: 32bits {0:16/6} {16:16/6} {48:16/6} {} @@ -1283,7 +1283,7 @@ y210: [GENERIC] ctype=uint 1: p=0 st=8 o=2 sh=6 d=10 2: p=0 st=8 o=6 sh=6 d=10 y210be: [GENERIC] ctype=uint - Basic desc: [ba][yuv][be] + Basic desc: [ba][yuv][be][uint] planes=1, chroma=1:0 align=2:1 {32/[0:0] } 0: 32bits endian_bytes=2 {0:16/6} {16:16/6} {48:16/6} {} @@ -1293,7 +1293,7 @@ y210be: [GENERIC] ctype=uint 1: p=0 st=8 o=2 sh=6 d=10 2: p=0 st=8 o=6 sh=6 d=10 ya16: [GENERIC] ctype=uint - Basic desc: [ba][a][yuv][le] + Basic desc: [ba][bb][a][yuv][gray][le][uint] planes=1, chroma=0:0 align=1:1 {32/[0:0] } 0: 32bits {0:16} {} {} {16:16} @@ -1303,7 +1303,7 @@ ya16: [GENERIC] ctype=uint 0: p=0 st=4 o=0 sh=0 d=16 1: p=0 st=4 o=2 sh=0 d=16 ya16be: [GENERIC] ctype=uint - Basic desc: [ba][a][yuv][be] + Basic desc: [ba][bb][a][yuv][gray][be][uint] planes=1, chroma=0:0 align=1:1 {32/[0:0] } 0: 32bits endian_bytes=2 {0:16} {} {} {16:16} @@ -1311,7 +1311,7 @@ ya16be: [GENERIC] ctype=uint 0: p=0 st=4 o=0 sh=0 d=16 1: p=0 st=4 o=2 sh=0 d=16 ya8: [GENERIC] ctype=uint - Basic desc: [ba][a][yuv][le][be] + Basic desc: [ba][bb][a][yuv][gray][le][be][uint] planes=1, chroma=0:0 align=1:1 {16/[0:0] } 0: 16bits {0:8} {} {} {8:8} @@ -1321,25 +1321,25 @@ ya8: [GENERIC] ctype=uint 0: p=0 st=2 o=0 sh=0 d=8 1: p=0 st=2 o=1 sh=0 d=8 yap16: ctype=uint - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuvp][yuv][gray][le][uint] planes=2, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] } - 0: 16bits {} {} {} {} - 1: 16bits {} {} {} {} + 0: 16bits {0:16} {} {} {} + 1: 16bits {} {} {} {0:16} Regular: planes=2 compbytes=2 bitpad=0 chroma=1x1 ctype=uint 0: {1} 1: {4} yap8: ctype=uint - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuvp][yuv][gray][le][uint] planes=2, chroma=0:0 align=1:1 {8/[0:0] 8/[0:0] } - 0: 8bits {} {} {} {} - 1: 8bits {} {} {} {} + 0: 8bits {0:8} {} {} {} + 1: 8bits {} {} {} {0:8} Regular: planes=2 compbytes=1 bitpad=0 chroma=1x1 ctype=uint 0: {1} 1: {4} yuv410p: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le][be] + Basic desc: [ba][bb][yuvp][yuv][le][be][uint] planes=3, chroma=2:2 align=4:4 {8/[0:0] 8/[2:2] 8/[2:2] } 0: 8bits {0:8} {} {} {} @@ -1354,18 +1354,18 @@ yuv410p: [GENERIC] ctype=uint 1: p=1 st=1 o=0 sh=0 d=8 2: p=2 st=1 o=0 sh=0 d=8 yuv410pf: ctype=float - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuv][le][float] planes=3, chroma=2:2 align=4:4 {32/[0:0] 32/[2:2] 32/[2:2] } - 0: 32bits {} {} {} {} - 1: 32bits {} {} {} {} - 2: 32bits {} {} {} {} + 0: 32bits {0:32} {} {} {} + 1: 32bits {} {0:32} {} {} + 2: 32bits {} {} {0:32} {} Regular: planes=3 compbytes=4 bitpad=0 chroma=4x4 ctype=float 0: {1} 1: {2} 2: {3} yuv411p: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le][be] + Basic desc: [ba][bb][yuvp][yuv][le][be][uint] planes=3, chroma=2:0 align=4:1 {8/[0:0] 8/[2:0] 8/[2:0] } 0: 8bits {0:8} {} {} {} @@ -1380,18 +1380,18 @@ yuv411p: [GENERIC] ctype=uint 1: p=1 st=1 o=0 sh=0 d=8 2: p=2 st=1 o=0 sh=0 d=8 yuv411pf: ctype=float - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuv][le][float] planes=3, chroma=2:0 align=4:1 {32/[0:0] 32/[2:0] 32/[2:0] } - 0: 32bits {} {} {} {} - 1: 32bits {} {} {} {} - 2: 32bits {} {} {} {} + 0: 32bits {0:32} {} {} {} + 1: 32bits {} {0:32} {} {} + 2: 32bits {} {} {0:32} {} Regular: planes=3 compbytes=4 bitpad=0 chroma=4x1 ctype=float 0: {1} 1: {2} 2: {3} yuv420p: ctype=uint - Basic desc: [ba][yuvp][yuv][le][be] + Basic desc: [ba][bb][yuvp][yuv][le][be][uint] planes=3, chroma=1:1 align=2:2 {8/[0:0] 8/[1:1] 8/[1:1] } 0: 8bits {0:8} {} {} {} @@ -1407,7 +1407,7 @@ yuv420p: ctype=uint 2: p=2 st=1 o=0 sh=0 d=8 Ambiguous alias: yuvj420p yuv420p10: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] } 0: 16bits {0:16/-6} {} {} {} @@ -1422,7 +1422,7 @@ yuv420p10: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=10 2: p=2 st=2 o=0 sh=0 d=10 yuv420p10be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] } 0: 16bits endian_bytes=2 {0:16/-6} {} {} {} @@ -1433,7 +1433,7 @@ yuv420p10be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=10 2: p=2 st=2 o=0 sh=0 d=10 yuv420p12: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] } 0: 16bits {0:16/-4} {} {} {} @@ -1448,7 +1448,7 @@ yuv420p12: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=12 2: p=2 st=2 o=0 sh=0 d=12 yuv420p12be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] } 0: 16bits endian_bytes=2 {0:16/-4} {} {} {} @@ -1459,7 +1459,7 @@ yuv420p12be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=12 2: p=2 st=2 o=0 sh=0 d=12 yuv420p14: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] } 0: 16bits {0:16/-2} {} {} {} @@ -1474,7 +1474,7 @@ yuv420p14: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=14 2: p=2 st=2 o=0 sh=0 d=14 yuv420p14be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] } 0: 16bits endian_bytes=2 {0:16/-2} {} {} {} @@ -1485,7 +1485,7 @@ yuv420p14be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=14 2: p=2 st=2 o=0 sh=0 d=14 yuv420p16: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] } 0: 16bits {0:16} {} {} {} @@ -1500,7 +1500,7 @@ yuv420p16: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=16 2: p=2 st=2 o=0 sh=0 d=16 yuv420p16be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] } 0: 16bits endian_bytes=2 {0:16} {} {} {} @@ -1511,7 +1511,7 @@ yuv420p16be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=16 2: p=2 st=2 o=0 sh=0 d=16 yuv420p9: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] } 0: 16bits {0:16/-7} {} {} {} @@ -1526,7 +1526,7 @@ yuv420p9: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=9 2: p=2 st=2 o=0 sh=0 d=9 yuv420p9be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] } 0: 16bits endian_bytes=2 {0:16/-7} {} {} {} @@ -1537,18 +1537,18 @@ yuv420p9be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=9 2: p=2 st=2 o=0 sh=0 d=9 yuv420pf: ctype=float - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuv][le][float] planes=3, chroma=1:1 align=2:2 {32/[0:0] 32/[1:1] 32/[1:1] } - 0: 32bits {} {} {} {} - 1: 32bits {} {} {} {} - 2: 32bits {} {} {} {} + 0: 32bits {0:32} {} {} {} + 1: 32bits {} {0:32} {} {} + 2: 32bits {} {} {0:32} {} Regular: planes=3 compbytes=4 bitpad=0 chroma=2x2 ctype=float 0: {1} 1: {2} 2: {3} yuv422p: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le][be] + Basic desc: [ba][bb][yuvp][yuv][le][be][uint] planes=3, chroma=1:0 align=2:1 {8/[0:0] 8/[1:0] 8/[1:0] } 0: 8bits {0:8} {} {} {} @@ -1563,7 +1563,7 @@ yuv422p: [GENERIC] ctype=uint 1: p=1 st=1 o=0 sh=0 d=8 2: p=2 st=1 o=0 sh=0 d=8 yuv422p10: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] } 0: 16bits {0:16/-6} {} {} {} @@ -1578,7 +1578,7 @@ yuv422p10: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=10 2: p=2 st=2 o=0 sh=0 d=10 yuv422p10be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] } 0: 16bits endian_bytes=2 {0:16/-6} {} {} {} @@ -1589,7 +1589,7 @@ yuv422p10be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=10 2: p=2 st=2 o=0 sh=0 d=10 yuv422p12: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] } 0: 16bits {0:16/-4} {} {} {} @@ -1604,7 +1604,7 @@ yuv422p12: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=12 2: p=2 st=2 o=0 sh=0 d=12 yuv422p12be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] } 0: 16bits endian_bytes=2 {0:16/-4} {} {} {} @@ -1615,7 +1615,7 @@ yuv422p12be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=12 2: p=2 st=2 o=0 sh=0 d=12 yuv422p14: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] } 0: 16bits {0:16/-2} {} {} {} @@ -1630,7 +1630,7 @@ yuv422p14: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=14 2: p=2 st=2 o=0 sh=0 d=14 yuv422p14be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] } 0: 16bits endian_bytes=2 {0:16/-2} {} {} {} @@ -1641,7 +1641,7 @@ yuv422p14be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=14 2: p=2 st=2 o=0 sh=0 d=14 yuv422p16: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] } 0: 16bits {0:16} {} {} {} @@ -1656,7 +1656,7 @@ yuv422p16: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=16 2: p=2 st=2 o=0 sh=0 d=16 yuv422p16be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] } 0: 16bits endian_bytes=2 {0:16} {} {} {} @@ -1667,7 +1667,7 @@ yuv422p16be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=16 2: p=2 st=2 o=0 sh=0 d=16 yuv422p9: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] } 0: 16bits {0:16/-7} {} {} {} @@ -1682,7 +1682,7 @@ yuv422p9: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=9 2: p=2 st=2 o=0 sh=0 d=9 yuv422p9be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] } 0: 16bits endian_bytes=2 {0:16/-7} {} {} {} @@ -1693,18 +1693,18 @@ yuv422p9be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=9 2: p=2 st=2 o=0 sh=0 d=9 yuv422pf: ctype=float - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuv][le][float] planes=3, chroma=1:0 align=2:1 {32/[0:0] 32/[1:0] 32/[1:0] } - 0: 32bits {} {} {} {} - 1: 32bits {} {} {} {} - 2: 32bits {} {} {} {} + 0: 32bits {0:32} {} {} {} + 1: 32bits {} {0:32} {} {} + 2: 32bits {} {} {0:32} {} Regular: planes=3 compbytes=4 bitpad=0 chroma=2x1 ctype=float 0: {1} 1: {2} 2: {3} yuv440p: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le][be] + Basic desc: [ba][bb][yuvp][yuv][le][be][uint] planes=3, chroma=0:1 align=1:2 {8/[0:0] 8/[0:1] 8/[0:1] } 0: 8bits {0:8} {} {} {} @@ -1719,7 +1719,7 @@ yuv440p: [GENERIC] ctype=uint 1: p=1 st=1 o=0 sh=0 d=8 2: p=2 st=1 o=0 sh=0 d=8 yuv440p10: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=0:1 align=1:2 {16/[0:0] 16/[0:1] 16/[0:1] } 0: 16bits {0:16/-6} {} {} {} @@ -1734,7 +1734,7 @@ yuv440p10: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=10 2: p=2 st=2 o=0 sh=0 d=10 yuv440p10be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=0:1 align=1:2 {16/[0:0] 16/[0:1] 16/[0:1] } 0: 16bits endian_bytes=2 {0:16/-6} {} {} {} @@ -1745,7 +1745,7 @@ yuv440p10be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=10 2: p=2 st=2 o=0 sh=0 d=10 yuv440p12: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=0:1 align=1:2 {16/[0:0] 16/[0:1] 16/[0:1] } 0: 16bits {0:16/-4} {} {} {} @@ -1760,7 +1760,7 @@ yuv440p12: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=12 2: p=2 st=2 o=0 sh=0 d=12 yuv440p12be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=0:1 align=1:2 {16/[0:0] 16/[0:1] 16/[0:1] } 0: 16bits endian_bytes=2 {0:16/-4} {} {} {} @@ -1771,18 +1771,18 @@ yuv440p12be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=12 2: p=2 st=2 o=0 sh=0 d=12 yuv440pf: ctype=float - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuv][le][float] planes=3, chroma=0:1 align=1:2 {32/[0:0] 32/[0:1] 32/[0:1] } - 0: 32bits {} {} {} {} - 1: 32bits {} {} {} {} - 2: 32bits {} {} {} {} + 0: 32bits {0:32} {} {} {} + 1: 32bits {} {0:32} {} {} + 2: 32bits {} {} {0:32} {} Regular: planes=3 compbytes=4 bitpad=0 chroma=1x2 ctype=float 0: {1} 1: {2} 2: {3} yuv444p: ctype=uint - Basic desc: [ba][yuvp][yuv][le][be] + Basic desc: [ba][bb][yuvp][yuv][le][be][uint] planes=3, chroma=0:0 align=1:1 {8/[0:0] 8/[0:0] 8/[0:0] } 0: 8bits {0:8} {} {} {} @@ -1798,7 +1798,7 @@ yuv444p: ctype=uint 2: p=2 st=1 o=0 sh=0 d=8 Ambiguous alias: yuvj444p yuv444p10: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {0:16/-6} {} {} {} @@ -1813,7 +1813,7 @@ yuv444p10: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=10 2: p=2 st=2 o=0 sh=0 d=10 yuv444p10be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-6} {} {} {} @@ -1824,7 +1824,7 @@ yuv444p10be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=10 2: p=2 st=2 o=0 sh=0 d=10 yuv444p12: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {0:16/-4} {} {} {} @@ -1839,7 +1839,7 @@ yuv444p12: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=12 2: p=2 st=2 o=0 sh=0 d=12 yuv444p12be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-4} {} {} {} @@ -1850,7 +1850,7 @@ yuv444p12be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=12 2: p=2 st=2 o=0 sh=0 d=12 yuv444p14: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {0:16/-2} {} {} {} @@ -1865,7 +1865,7 @@ yuv444p14: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=14 2: p=2 st=2 o=0 sh=0 d=14 yuv444p14be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-2} {} {} {} @@ -1876,7 +1876,7 @@ yuv444p14be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=14 2: p=2 st=2 o=0 sh=0 d=14 yuv444p16: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {0:16} {} {} {} @@ -1891,7 +1891,7 @@ yuv444p16: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=16 2: p=2 st=2 o=0 sh=0 d=16 yuv444p16be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16} {} {} {} @@ -1902,7 +1902,7 @@ yuv444p16be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=16 2: p=2 st=2 o=0 sh=0 d=16 yuv444p9: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuvp][yuv][le][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {0:16/-7} {} {} {} @@ -1917,7 +1917,7 @@ yuv444p9: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=9 2: p=2 st=2 o=0 sh=0 d=9 yuv444p9be: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][be] + Basic desc: [ba][bb][yuvp][yuv][be][uint] planes=3, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-7} {} {} {} @@ -1928,44 +1928,44 @@ yuv444p9be: [GENERIC] ctype=uint 1: p=1 st=2 o=0 sh=0 d=9 2: p=2 st=2 o=0 sh=0 d=9 yuv444pf: ctype=float - Basic desc: [ba][yuvp][yuv][le] + Basic desc: [ba][bb][yuv][le][float] planes=3, chroma=0:0 align=1:1 {32/[0:0] 32/[0:0] 32/[0:0] } - 0: 32bits {} {} {} {} - 1: 32bits {} {} {} {} - 2: 32bits {} {} {} {} + 0: 32bits {0:32} {} {} {} + 1: 32bits {} {0:32} {} {} + 2: 32bits {} {} {0:32} {} Regular: planes=3 compbytes=4 bitpad=0 chroma=1x1 ctype=float 0: {1} 1: {2} 2: {3} yuva410pf: ctype=float - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuv][le][float] planes=4, chroma=2:2 align=4:4 {32/[0:0] 32/[2:2] 32/[2:2] 32/[0:0] } - 0: 32bits {} {} {} {} - 1: 32bits {} {} {} {} - 2: 32bits {} {} {} {} - 3: 32bits {} {} {} {} + 0: 32bits {0:32} {} {} {} + 1: 32bits {} {0:32} {} {} + 2: 32bits {} {} {0:32} {} + 3: 32bits {} {} {} {0:32} Regular: planes=4 compbytes=4 bitpad=0 chroma=4x4 ctype=float 0: {1} 1: {2} 2: {3} 3: {4} yuva411pf: ctype=float - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuv][le][float] planes=4, chroma=2:0 align=4:1 {32/[0:0] 32/[2:0] 32/[2:0] 32/[0:0] } - 0: 32bits {} {} {} {} - 1: 32bits {} {} {} {} - 2: 32bits {} {} {} {} - 3: 32bits {} {} {} {} + 0: 32bits {0:32} {} {} {} + 1: 32bits {} {0:32} {} {} + 2: 32bits {} {} {0:32} {} + 3: 32bits {} {} {} {0:32} Regular: planes=4 compbytes=4 bitpad=0 chroma=4x1 ctype=float 0: {1} 1: {2} 2: {3} 3: {4} yuva420p: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][le][be] + Basic desc: [ba][bb][a][yuvp][yuv][le][be][uint] planes=4, chroma=1:1 align=2:2 {8/[0:0] 8/[1:1] 8/[1:1] 8/[0:0] } 0: 8bits {0:8} {} {} {} @@ -1983,7 +1983,7 @@ yuva420p: [GENERIC] ctype=uint 2: p=2 st=1 o=0 sh=0 d=8 3: p=3 st=1 o=0 sh=0 d=8 yuva420p10: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuvp][yuv][le][uint] planes=4, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] 16/[0:0] } 0: 16bits {0:16/-6} {} {} {} @@ -2001,7 +2001,7 @@ yuva420p10: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=10 3: p=3 st=2 o=0 sh=0 d=10 yuva420p10be: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][be] + Basic desc: [ba][bb][a][yuvp][yuv][be][uint] planes=4, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-6} {} {} {} @@ -2014,7 +2014,7 @@ yuva420p10be: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=10 3: p=3 st=2 o=0 sh=0 d=10 yuva420p16: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuvp][yuv][le][uint] planes=4, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] 16/[0:0] } 0: 16bits {0:16} {} {} {} @@ -2032,7 +2032,7 @@ yuva420p16: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=16 3: p=3 st=2 o=0 sh=0 d=16 yuva420p16be: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][be] + Basic desc: [ba][bb][a][yuvp][yuv][be][uint] planes=4, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16} {} {} {} @@ -2045,7 +2045,7 @@ yuva420p16be: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=16 3: p=3 st=2 o=0 sh=0 d=16 yuva420p9: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuvp][yuv][le][uint] planes=4, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] 16/[0:0] } 0: 16bits {0:16/-7} {} {} {} @@ -2063,7 +2063,7 @@ yuva420p9: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=9 3: p=3 st=2 o=0 sh=0 d=9 yuva420p9be: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][be] + Basic desc: [ba][bb][a][yuvp][yuv][be][uint] planes=4, chroma=1:1 align=2:2 {16/[0:0] 16/[1:1] 16/[1:1] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-7} {} {} {} @@ -2076,20 +2076,20 @@ yuva420p9be: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=9 3: p=3 st=2 o=0 sh=0 d=9 yuva420pf: ctype=float - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuv][le][float] planes=4, chroma=1:1 align=2:2 {32/[0:0] 32/[1:1] 32/[1:1] 32/[0:0] } - 0: 32bits {} {} {} {} - 1: 32bits {} {} {} {} - 2: 32bits {} {} {} {} - 3: 32bits {} {} {} {} + 0: 32bits {0:32} {} {} {} + 1: 32bits {} {0:32} {} {} + 2: 32bits {} {} {0:32} {} + 3: 32bits {} {} {} {0:32} Regular: planes=4 compbytes=4 bitpad=0 chroma=2x2 ctype=float 0: {1} 1: {2} 2: {3} 3: {4} yuva422p: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][le][be] + Basic desc: [ba][bb][a][yuvp][yuv][le][be][uint] planes=4, chroma=1:0 align=2:1 {8/[0:0] 8/[1:0] 8/[1:0] 8/[0:0] } 0: 8bits {0:8} {} {} {} @@ -2107,7 +2107,7 @@ yuva422p: [GENERIC] ctype=uint 2: p=2 st=1 o=0 sh=0 d=8 3: p=3 st=1 o=0 sh=0 d=8 yuva422p10: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuvp][yuv][le][uint] planes=4, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] 16/[0:0] } 0: 16bits {0:16/-6} {} {} {} @@ -2125,7 +2125,7 @@ yuva422p10: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=10 3: p=3 st=2 o=0 sh=0 d=10 yuva422p10be: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][be] + Basic desc: [ba][bb][a][yuvp][yuv][be][uint] planes=4, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-6} {} {} {} @@ -2138,7 +2138,7 @@ yuva422p10be: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=10 3: p=3 st=2 o=0 sh=0 d=10 yuva422p12: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuvp][yuv][le][uint] planes=4, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] 16/[0:0] } 0: 16bits {0:16/-4} {} {} {} @@ -2156,7 +2156,7 @@ yuva422p12: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=12 3: p=3 st=2 o=0 sh=0 d=12 yuva422p12be: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][be] + Basic desc: [ba][bb][a][yuvp][yuv][be][uint] planes=4, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-4} {} {} {} @@ -2169,7 +2169,7 @@ yuva422p12be: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=12 3: p=3 st=2 o=0 sh=0 d=12 yuva422p16: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuvp][yuv][le][uint] planes=4, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] 16/[0:0] } 0: 16bits {0:16} {} {} {} @@ -2187,7 +2187,7 @@ yuva422p16: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=16 3: p=3 st=2 o=0 sh=0 d=16 yuva422p16be: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][be] + Basic desc: [ba][bb][a][yuvp][yuv][be][uint] planes=4, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16} {} {} {} @@ -2200,7 +2200,7 @@ yuva422p16be: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=16 3: p=3 st=2 o=0 sh=0 d=16 yuva422p9: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuvp][yuv][le][uint] planes=4, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] 16/[0:0] } 0: 16bits {0:16/-7} {} {} {} @@ -2218,7 +2218,7 @@ yuva422p9: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=9 3: p=3 st=2 o=0 sh=0 d=9 yuva422p9be: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][be] + Basic desc: [ba][bb][a][yuvp][yuv][be][uint] planes=4, chroma=1:0 align=2:1 {16/[0:0] 16/[1:0] 16/[1:0] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-7} {} {} {} @@ -2231,33 +2231,33 @@ yuva422p9be: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=9 3: p=3 st=2 o=0 sh=0 d=9 yuva422pf: ctype=float - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuv][le][float] planes=4, chroma=1:0 align=2:1 {32/[0:0] 32/[1:0] 32/[1:0] 32/[0:0] } - 0: 32bits {} {} {} {} - 1: 32bits {} {} {} {} - 2: 32bits {} {} {} {} - 3: 32bits {} {} {} {} + 0: 32bits {0:32} {} {} {} + 1: 32bits {} {0:32} {} {} + 2: 32bits {} {} {0:32} {} + 3: 32bits {} {} {} {0:32} Regular: planes=4 compbytes=4 bitpad=0 chroma=2x1 ctype=float 0: {1} 1: {2} 2: {3} 3: {4} yuva440pf: ctype=float - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuv][le][float] planes=4, chroma=0:1 align=1:2 {32/[0:0] 32/[0:1] 32/[0:1] 32/[0:0] } - 0: 32bits {} {} {} {} - 1: 32bits {} {} {} {} - 2: 32bits {} {} {} {} - 3: 32bits {} {} {} {} + 0: 32bits {0:32} {} {} {} + 1: 32bits {} {0:32} {} {} + 2: 32bits {} {} {0:32} {} + 3: 32bits {} {} {} {0:32} Regular: planes=4 compbytes=4 bitpad=0 chroma=1x2 ctype=float 0: {1} 1: {2} 2: {3} 3: {4} yuva444p: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][le][be] + Basic desc: [ba][bb][a][yuvp][yuv][le][be][uint] planes=4, chroma=0:0 align=1:1 {8/[0:0] 8/[0:0] 8/[0:0] 8/[0:0] } 0: 8bits {0:8} {} {} {} @@ -2275,7 +2275,7 @@ yuva444p: [GENERIC] ctype=uint 2: p=2 st=1 o=0 sh=0 d=8 3: p=3 st=1 o=0 sh=0 d=8 yuva444p10: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuvp][yuv][le][uint] planes=4, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {0:16/-6} {} {} {} @@ -2293,7 +2293,7 @@ yuva444p10: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=10 3: p=3 st=2 o=0 sh=0 d=10 yuva444p10be: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][be] + Basic desc: [ba][bb][a][yuvp][yuv][be][uint] planes=4, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-6} {} {} {} @@ -2306,7 +2306,7 @@ yuva444p10be: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=10 3: p=3 st=2 o=0 sh=0 d=10 yuva444p12: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuvp][yuv][le][uint] planes=4, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {0:16/-4} {} {} {} @@ -2324,7 +2324,7 @@ yuva444p12: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=12 3: p=3 st=2 o=0 sh=0 d=12 yuva444p12be: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][be] + Basic desc: [ba][bb][a][yuvp][yuv][be][uint] planes=4, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-4} {} {} {} @@ -2337,7 +2337,7 @@ yuva444p12be: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=12 3: p=3 st=2 o=0 sh=0 d=12 yuva444p16: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuvp][yuv][le][uint] planes=4, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {0:16} {} {} {} @@ -2355,7 +2355,7 @@ yuva444p16: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=16 3: p=3 st=2 o=0 sh=0 d=16 yuva444p16be: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][be] + Basic desc: [ba][bb][a][yuvp][yuv][be][uint] planes=4, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16} {} {} {} @@ -2368,7 +2368,7 @@ yuva444p16be: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=16 3: p=3 st=2 o=0 sh=0 d=16 yuva444p9: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuvp][yuv][le][uint] planes=4, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits {0:16/-7} {} {} {} @@ -2386,7 +2386,7 @@ yuva444p9: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=9 3: p=3 st=2 o=0 sh=0 d=9 yuva444p9be: [GENERIC] ctype=uint - Basic desc: [ba][a][yuvp][yuv][be] + Basic desc: [ba][bb][a][yuvp][yuv][be][uint] planes=4, chroma=0:0 align=1:1 {16/[0:0] 16/[0:0] 16/[0:0] 16/[0:0] } 0: 16bits endian_bytes=2 {0:16/-7} {} {} {} @@ -2399,20 +2399,20 @@ yuva444p9be: [GENERIC] ctype=uint 2: p=2 st=2 o=0 sh=0 d=9 3: p=3 st=2 o=0 sh=0 d=9 yuva444pf: ctype=float - Basic desc: [ba][a][yuvp][yuv][le] + Basic desc: [ba][bb][a][yuv][le][float] planes=4, chroma=0:0 align=1:1 {32/[0:0] 32/[0:0] 32/[0:0] 32/[0:0] } - 0: 32bits {} {} {} {} - 1: 32bits {} {} {} {} - 2: 32bits {} {} {} {} - 3: 32bits {} {} {} {} + 0: 32bits {0:32} {} {} {} + 1: 32bits {} {0:32} {} {} + 2: 32bits {} {} {0:32} {} + 3: 32bits {} {} {} {0:32} Regular: planes=4 compbytes=4 bitpad=0 chroma=1x1 ctype=float 0: {1} 1: {2} 2: {3} 3: {4} yuvj411p: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le][be] + Basic desc: [ba][bb][yuvp][yuv][le][be][uint] planes=3, chroma=2:0 align=4:1 {8/[0:0] 8/[2:0] 8/[2:0] } 0: 8bits {0:8} {} {} {} @@ -2427,7 +2427,7 @@ yuvj411p: [GENERIC] ctype=uint 1: p=1 st=1 o=0 sh=0 d=8 2: p=2 st=1 o=0 sh=0 d=8 yuvj422p: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le][be] + Basic desc: [ba][bb][yuvp][yuv][le][be][uint] planes=3, chroma=1:0 align=2:1 {8/[0:0] 8/[1:0] 8/[1:0] } 0: 8bits {0:8} {} {} {} @@ -2442,7 +2442,7 @@ yuvj422p: [GENERIC] ctype=uint 1: p=1 st=1 o=0 sh=0 d=8 2: p=2 st=1 o=0 sh=0 d=8 yuvj440p: [GENERIC] ctype=uint - Basic desc: [ba][yuvp][yuv][le][be] + Basic desc: [ba][bb][yuvp][yuv][le][be][uint] planes=3, chroma=0:1 align=1:2 {8/[0:0] 8/[0:1] 8/[0:1] } 0: 8bits {0:8} {} {} {} @@ -2457,7 +2457,7 @@ yuvj440p: [GENERIC] ctype=uint 1: p=1 st=1 o=0 sh=0 d=8 2: p=2 st=1 o=0 sh=0 d=8 yuyv422: [GENERIC] ctype=uint - Basic desc: [ba][yuv][le][be] + Basic desc: [ba][yuv][le][be][uint] planes=1, chroma=1:0 align=2:1 {16/[0:0] } 0: 16bits {0:8} {8:8} {24:8} {} @@ -2467,7 +2467,7 @@ yuyv422: [GENERIC] ctype=uint 1: p=0 st=4 o=1 sh=0 d=8 2: p=0 st=4 o=3 sh=0 d=8 yvyu422: [GENERIC] ctype=uint - Basic desc: [ba][yuv][le][be] + Basic desc: [ba][yuv][le][be][uint] planes=1, chroma=1:0 align=2:1 {16/[0:0] } 0: 16bits {0:8} {24:8} {8:8} {} diff --git a/video/img_format.c b/video/img_format.c index 81286796d6..02aef4c272 100644 --- a/video/img_format.c +++ b/video/img_format.c @@ -31,108 +31,90 @@ struct mp_imgfmt_entry { const char *name; - // valid if desc.id is set + // Valid if flags!=0. + // This can be incomplete, and missing fields are filled in: + // - sets num_planes and bpp[], derived from comps[] (rounds to bytes) + // - sets MP_IMGFLAG_GRAY, derived from comps[] + // - sets MP_IMGFLAG_ALPHA, derived from comps[] + // - sets align_x/y if 0, derived from chroma shift + // - sets xs[]/ys[] always, derived from num_planes/chroma_shift + // - sets MP_IMGFLAG_HAS_COMPS|MP_IMGFLAG_NE if num_planes>0 + // - sets MP_IMGFLAG_TYPE_UINT if no other type set + // - sets id to mp_imgfmt_list[] implied format + // - sets avformat to AV_PIX_FMT_NONE struct mp_imgfmt_desc desc; - // valid if reg_desc.component_size is set - struct mp_regular_imgfmt reg_desc; - // valid if non-0 and no reg_desc - enum mp_csp forced_csp; - enum mp_component_type ctype; }; -#define FRINGE_GBRP(def, dname, bits) \ +#define FRINGE_GBRP(def, dname, b) \ [def - IMGFMT_CUST_BASE] = { \ .name = dname, \ - .reg_desc = { .component_type = MP_COMPONENT_TYPE_UINT, \ - .component_size = 1, .component_pad = bits - 8, \ - .num_planes = 3, .forced_csp = MP_CSP_RGB, \ - .planes = { {1, {2}}, {1, {3}}, {1, {1}} }, }, } + .desc = { .flags = MP_IMGFLAG_COLOR_RGB, \ + .comps = { {2, 0, 8, (b) - 8}, {0, 0, 8, (b) - 8}, \ + {1, 0, 8, (b) - 8}, }, }} -#define FLOAT_YUV(def, dname, xs, ys, a_planes) \ +#define FLOAT_YUV(def, dname, xs, ys, a) \ [def - IMGFMT_CUST_BASE] = { \ .name = dname, \ - .reg_desc = { .component_type = MP_COMPONENT_TYPE_FLOAT, \ - .component_size = 4, .num_planes = a_planes, \ - .planes = { {1, {1}}, {1, {2}}, {1, {3}}, {1, {4}} }, \ - .chroma_xs = xs, .chroma_ys = ys, }} + .desc = { .flags = MP_IMGFLAG_COLOR_YUV | MP_IMGFLAG_TYPE_FLOAT, \ + .chroma_xs = xs, .chroma_ys = ys, \ + .comps = { {0, 0, 32}, {1, 0, 32}, {2, 0, 32}, \ + {3 * (a), 0, 32 * (a)} }, }} static const struct mp_imgfmt_entry mp_imgfmt_list[] = { // not in ffmpeg [IMGFMT_VDPAU_OUTPUT - IMGFMT_CUST_BASE] = { .name = "vdpau_output", .desc = { - .id = IMGFMT_VDPAU_OUTPUT, - .avformat = AV_PIX_FMT_NONE, - .flags = MP_IMGFLAG_BE | MP_IMGFLAG_LE | MP_IMGFLAG_RGB | - MP_IMGFLAG_HWACCEL, + .flags = MP_IMGFLAG_NE | MP_IMGFLAG_RGB | MP_IMGFLAG_HWACCEL, }, }, [IMGFMT_RGB30 - IMGFMT_CUST_BASE] = { .name = "rgb30", .desc = { - .id = IMGFMT_RGB30, - .avformat = AV_PIX_FMT_NONE, - .flags = MP_IMGFLAG_BYTE_ALIGNED | MP_IMGFLAG_NE | MP_IMGFLAG_RGB | - MP_IMGFLAG_HAS_COMPS, - .num_planes = 1, - .align_x = 1, - .align_y = 1, - .bpp = {32}, + .flags = MP_IMGFLAG_RGB, .comps = { {0, 20, 10}, {0, 10, 10}, {0, 0, 10} }, }, - .forced_csp = MP_CSP_RGB, - .ctype = MP_COMPONENT_TYPE_UINT, }, [IMGFMT_YAP8 - IMGFMT_CUST_BASE] = { .name = "yap8", - .reg_desc = { - .component_type = MP_COMPONENT_TYPE_UINT, - .component_size = 1, - .num_planes = 2, - .planes = { {1, {1}}, {1, {4}} }, + .desc = { + .flags = MP_IMGFLAG_COLOR_YUV, + .comps = { {0, 0, 8}, {0}, {0}, {1, 0, 8} }, }, }, [IMGFMT_YAP16 - IMGFMT_CUST_BASE] = { .name = "yap16", - .reg_desc = { - .component_type = MP_COMPONENT_TYPE_UINT, - .component_size = 2, - .num_planes = 2, - .planes = { {1, {1}}, {1, {4}} }, + .desc = { + .flags = MP_IMGFLAG_COLOR_YUV, + .comps = { {0, 0, 16}, {0}, {0}, {1, 0, 16} }, }, }, [IMGFMT_Y1 - IMGFMT_CUST_BASE] = { .name = "y1", - .reg_desc = { - .component_type = MP_COMPONENT_TYPE_UINT, - .component_size = 1, - .component_pad = -7, - .num_planes = 1, - .forced_csp = MP_CSP_RGB, - .planes = { {1, {1}} }, + .desc = { + .flags = MP_IMGFLAG_COLOR_RGB, + .comps = { {0, 0, 8, -7} }, }, }, [IMGFMT_YAPF - IMGFMT_CUST_BASE] = { .name = "grayaf32", // try to mimic ffmpeg naming convention - .reg_desc = { - .component_type = MP_COMPONENT_TYPE_FLOAT, - .component_size = 4, - .num_planes = 2, - .planes = { {1, {1}}, {1, {4}} }, + .desc = { + .flags = MP_IMGFLAG_COLOR_YUV | MP_IMGFLAG_TYPE_FLOAT, + .comps = { {0, 0, 32}, {0}, {0}, {1, 0, 32} }, }, }, - FLOAT_YUV(IMGFMT_444PF, "yuv444pf", 0, 0, 3), - FLOAT_YUV(IMGFMT_444APF, "yuva444pf", 0, 0, 4), - FLOAT_YUV(IMGFMT_420PF, "yuv420pf", 1, 1, 3), - FLOAT_YUV(IMGFMT_420APF, "yuva420pf", 1, 1, 4), - FLOAT_YUV(IMGFMT_422PF, "yuv422pf", 1, 0, 3), - FLOAT_YUV(IMGFMT_422APF, "yuva422pf", 1, 0, 4), - FLOAT_YUV(IMGFMT_440PF, "yuv440pf", 0, 1, 3), - FLOAT_YUV(IMGFMT_440APF, "yuva440pf", 0, 1, 4), - FLOAT_YUV(IMGFMT_410PF, "yuv410pf", 2, 2, 3), - FLOAT_YUV(IMGFMT_410APF, "yuva410pf", 2, 2, 4), - FLOAT_YUV(IMGFMT_411PF, "yuv411pf", 2, 0, 3), - FLOAT_YUV(IMGFMT_411APF, "yuva411pf", 2, 0, 4), + FLOAT_YUV(IMGFMT_444PF, "yuv444pf", 0, 0, 0), + FLOAT_YUV(IMGFMT_444APF, "yuva444pf", 0, 0, 1), + FLOAT_YUV(IMGFMT_420PF, "yuv420pf", 1, 1, 0), + FLOAT_YUV(IMGFMT_420APF, "yuva420pf", 1, 1, 1), + FLOAT_YUV(IMGFMT_422PF, "yuv422pf", 1, 0, 0), + FLOAT_YUV(IMGFMT_422APF, "yuva422pf", 1, 0, 1), + FLOAT_YUV(IMGFMT_440PF, "yuv440pf", 0, 1, 0), + FLOAT_YUV(IMGFMT_440APF, "yuva440pf", 0, 1, 1), + FLOAT_YUV(IMGFMT_410PF, "yuv410pf", 2, 2, 0), + FLOAT_YUV(IMGFMT_410APF, "yuva410pf", 2, 2, 1), + FLOAT_YUV(IMGFMT_411PF, "yuv411pf", 2, 0, 0), + FLOAT_YUV(IMGFMT_411APF, "yuva411pf", 2, 0, 1), FRINGE_GBRP(IMGFMT_GBRP1, "gbrp1", 1), FRINGE_GBRP(IMGFMT_GBRP2, "gbrp2", 2), FRINGE_GBRP(IMGFMT_GBRP3, "gbrp3", 3), @@ -202,32 +184,6 @@ char *mp_imgfmt_to_name_buf(char *buf, size_t buf_size, int fmt) return buf; } -static struct mp_imgfmt_desc to_legacy_desc(int fmt, struct mp_regular_imgfmt reg) -{ - struct mp_imgfmt_desc desc = { - .id = fmt, - .avformat = AV_PIX_FMT_NONE, - .flags = MP_IMGFLAG_BYTE_ALIGNED | MP_IMGFLAG_NE | - (reg.forced_csp ? MP_IMGFLAG_RGB | MP_IMGFLAG_RGB_P - : MP_IMGFLAG_YUV | MP_IMGFLAG_YUV_P), - .num_planes = reg.num_planes, - .chroma_xs = reg.chroma_xs, - .chroma_ys = reg.chroma_ys, - }; - desc.align_x = 1 << reg.chroma_xs; - desc.align_y = 1 << reg.chroma_ys; - for (int p = 0; p < reg.num_planes; p++) { - desc.bpp[p] = reg.component_size * 8; - desc.xs[p] = p == 1 || p == 2 ? desc.chroma_xs : 0; - desc.ys[p] = p == 1 || p == 2 ? desc.chroma_ys : 0; - for (int c = 0; c < reg.planes[p].num_components; c++) { - if (reg.planes[p].components[c] == 4) - desc.flags |= MP_IMGFLAG_ALPHA; - } - } - return desc; -} - static void fill_pixdesc_layout(struct mp_imgfmt_desc *desc, enum AVPixelFormat fmt, const AVPixFmtDescriptor *pd) @@ -254,14 +210,13 @@ static void fill_pixdesc_layout(struct mp_imgfmt_desc *desc, if (is_packed_ss_yuv) desc->bpp[0] = pd->comp[1].step * 8; - int num_planes = 0; int el_bits = (pd->flags & AV_PIX_FMT_FLAG_BITSTREAM) ? 1 : 8; for (int c = 0; c < pd->nb_components; c++) { const AVComponentDescriptor *d = &pd->comp[c]; if (d->plane >= MP_MAX_PLANES) goto fail; - num_planes = MPMAX(num_planes, d->plane + 1); + desc->num_planes = MPMAX(desc->num_planes, d->plane + 1); int plane_bits = desc->bpp[d->plane]; int c_bits = d->step * el_bits; @@ -340,7 +295,7 @@ static void fill_pixdesc_layout(struct mp_imgfmt_desc *desc, }; } - for (int p = 0; p < num_planes; p++) { + for (int p = 0; p < desc->num_planes; p++) { if (!desc->bpp[p]) goto fail; // plane doesn't exist } @@ -414,7 +369,7 @@ static void fill_pixdesc_layout(struct mp_imgfmt_desc *desc, if (is_packed_ss_yuv) { desc->flags |= MP_IMGFLAG_PACKED_SS_YUV; desc->bpp[0] /= 1 << pd->log2_chroma_w; - } else { + } else if (!any_shared_bits) { desc->flags |= MP_IMGFLAG_HAS_COMPS; } @@ -424,26 +379,19 @@ fail: for (int n = 0; n < 4; n++) desc->comps[n] = (struct mp_imgfmt_comp_desc){0}; // Average bit size fallback. - int num_av_planes = av_pix_fmt_count_planes(fmt); - for (int p = 0; p < num_av_planes; p++) { + desc->num_planes = av_pix_fmt_count_planes(fmt); + for (int p = 0; p < desc->num_planes; p++) { int ls = av_image_get_linesize(fmt, 256, p); desc->bpp[p] = ls > 0 ? ls * 8 / 256 : 0; } } -struct mp_imgfmt_desc mp_imgfmt_get_desc(int mpfmt) +static bool mp_imgfmt_get_desc_from_pixdesc(int mpfmt, struct mp_imgfmt_desc *out) { - const struct mp_imgfmt_entry *mpdesc = get_mp_desc(mpfmt); - if (mpdesc && mpdesc->desc.id) - return mpdesc->desc; - if (mpdesc && mpdesc->reg_desc.component_size) - return to_legacy_desc(mpfmt, mpdesc->reg_desc); - enum AVPixelFormat fmt = imgfmt2pixfmt(mpfmt); const AVPixFmtDescriptor *pd = av_pix_fmt_desc_get(fmt); if (!pd || pd->nb_components > 4) - return (struct mp_imgfmt_desc) {0}; - bool is_uint = mp_imgfmt_get_component_type(mpfmt) == MP_COMPONENT_TYPE_UINT; + return false; struct mp_imgfmt_desc desc = { .id = mpfmt, @@ -452,29 +400,44 @@ struct mp_imgfmt_desc mp_imgfmt_get_desc(int mpfmt) .chroma_ys = pd->log2_chroma_h, }; - for (int c = 0; c < pd->nb_components; c++) - desc.num_planes = MPMAX(desc.num_planes, pd->comp[c].plane + 1); + if (pd->flags & AV_PIX_FMT_FLAG_ALPHA) + desc.flags |= MP_IMGFLAG_ALPHA; - for (int p = 0; p < desc.num_planes; p++) { - desc.xs[p] = (p == 1 || p == 2) ? desc.chroma_xs : 0; - desc.ys[p] = (p == 1 || p == 2) ? desc.chroma_ys : 0; + if (pd->flags & AV_PIX_FMT_FLAG_HWACCEL) + desc.flags |= MP_IMGFLAG_TYPE_HW; + + // Pixdesc does not provide a flag for XYZ, so this is the best we can do. + if (strncmp(pd->name, "xyz", 3) == 0) { + desc.flags |= MP_IMGFLAG_COLOR_XYZ; + } else if (pd->flags & AV_PIX_FMT_FLAG_RGB) { + desc.flags |= MP_IMGFLAG_COLOR_RGB; + } else if (fmt == AV_PIX_FMT_MONOBLACK || fmt == AV_PIX_FMT_MONOWHITE) { + desc.flags |= MP_IMGFLAG_COLOR_RGB; + } else if (fmt == AV_PIX_FMT_PAL8) { + desc.flags |= MP_IMGFLAG_COLOR_RGB | MP_IMGFLAG_TYPE_PAL8; } + if (pd->flags & AV_PIX_FMT_FLAG_FLOAT) + desc.flags |= MP_IMGFLAG_TYPE_FLOAT; + + // Educated guess. + if (!(desc.flags & MP_IMGFLAG_COLOR_MASK) && + !(desc.flags & MP_IMGFLAG_TYPE_HW)) + desc.flags |= MP_IMGFLAG_COLOR_YUV; + desc.align_x = 1 << desc.chroma_xs; desc.align_y = 1 << desc.chroma_ys; fill_pixdesc_layout(&desc, fmt, pd); + if (desc.flags & (MP_IMGFLAG_HAS_COMPS | MP_IMGFLAG_PACKED_SS_YUV)) { + if (!(desc.flags & MP_IMGFLAG_TYPE_MASK)) + desc.flags |= MP_IMGFLAG_TYPE_UINT; + } + if (desc.bpp[0] % 8u && (pd->flags & AV_PIX_FMT_FLAG_BITSTREAM)) desc.align_x = 8 / desc.bpp[0]; // expect power of 2 - bool is_ba = desc.num_planes > 0; - for (int p = 0; p < desc.num_planes; p++) - is_ba = !(desc.bpp[p] % 8u); - - if (is_ba) - desc.flags |= MP_IMGFLAG_BYTE_ALIGNED; - // Very heuristical. bool is_be = desc.endian_shift > 0; bool need_endian = (desc.comps[0].size % 8u && desc.bpp[0] > 8) || @@ -486,49 +449,8 @@ struct mp_imgfmt_desc mp_imgfmt_get_desc(int mpfmt) desc.flags |= MP_IMGFLAG_LE | MP_IMGFLAG_BE; } - enum mp_csp csp = mp_imgfmt_get_forced_csp(mpfmt); - - if ((pd->flags & AV_PIX_FMT_FLAG_HWACCEL)) { - desc.flags |= MP_IMGFLAG_HWACCEL; - } else if (csp == MP_CSP_XYZ) { - /* nothing */ - } else if (csp == MP_CSP_RGB) { - desc.flags |= MP_IMGFLAG_RGB; - } else { - desc.flags |= MP_IMGFLAG_YUV; - } - - if (pd->flags & AV_PIX_FMT_FLAG_ALPHA) - desc.flags |= MP_IMGFLAG_ALPHA; - - if (pd->flags & AV_PIX_FMT_FLAG_PAL) - desc.flags |= MP_IMGFLAG_PAL; - - if ((desc.flags & (MP_IMGFLAG_YUV | MP_IMGFLAG_RGB)) - && (desc.flags & MP_IMGFLAG_BYTE_ALIGNED) - && !(pd->flags & AV_PIX_FMT_FLAG_PAL) - && is_uint) - { - bool same_depth = true; - for (int p = 0; p < desc.num_planes; p++) - same_depth &= desc.bpp[p] == desc.bpp[0]; - if (same_depth && pd->nb_components == desc.num_planes) { - if (desc.flags & MP_IMGFLAG_YUV) { - desc.flags |= MP_IMGFLAG_YUV_P; - } else { - desc.flags |= MP_IMGFLAG_RGB_P; - } - } - if (pd->nb_components == 3 && desc.num_planes == 2 && - desc.bpp[1] == desc.bpp[0] * 2 && - (desc.flags & MP_IMGFLAG_YUV)) - { - - desc.flags |= MP_IMGFLAG_YUV_NV; - } - } - - return desc; + *out = desc; + return true; } bool mp_imgfmt_get_packed_yuv_locations(int imgfmt, uint8_t *luma_offsets) @@ -574,6 +496,113 @@ bool mp_imgfmt_get_packed_yuv_locations(int imgfmt, uint8_t *luma_offsets) return true; } +static bool get_native_desc(int mpfmt, struct mp_imgfmt_desc *desc) +{ + const struct mp_imgfmt_entry *p = get_mp_desc(mpfmt); + if (!p || !p->desc.flags) + return false; + + *desc = p->desc; + + // Fill in some fields mp_imgfmt_entry.desc is not required to set. + + desc->id = mpfmt; + desc->avformat = AV_PIX_FMT_NONE; + + for (int n = 0; n < MP_NUM_COMPONENTS; n++) { + struct mp_imgfmt_comp_desc *cd = &desc->comps[n]; + if (cd->size) + desc->num_planes = MPMAX(desc->num_planes, cd->plane + 1); + desc->bpp[cd->plane] = + MPMAX(desc->bpp[cd->plane], MP_ALIGN_UP(cd->offset + cd->size, 8)); + } + + if (!desc->align_x && !desc->align_y) { + desc->align_x = 1 << desc->chroma_xs; + desc->align_y = 1 << desc->chroma_ys; + } + + if (desc->num_planes) + desc->flags |= MP_IMGFLAG_HAS_COMPS | MP_IMGFLAG_NE; + + if (!(desc->flags & MP_IMGFLAG_TYPE_MASK)) + desc->flags |= MP_IMGFLAG_TYPE_UINT; + + return true; +} + +static int num_comps(int flags) +{ + if (!(flags & MP_IMGFLAG_COLOR_MASK)) + return 0; + return 3 + (flags & MP_IMGFLAG_GRAY ? -2 : 0) + !!(flags & MP_IMGFLAG_ALPHA); +} + +struct mp_imgfmt_desc mp_imgfmt_get_desc(int mpfmt) +{ + struct mp_imgfmt_desc desc; + + if (!get_native_desc(mpfmt, &desc) && + !mp_imgfmt_get_desc_from_pixdesc(mpfmt, &desc)) + return (struct mp_imgfmt_desc){0}; + + for (int p = 0; p < desc.num_planes; p++) { + desc.xs[p] = (p == 1 || p == 2) ? desc.chroma_xs : 0; + desc.ys[p] = (p == 1 || p == 2) ? desc.chroma_ys : 0; + } + + bool is_ba = desc.num_planes > 0; + for (int p = 0; p < desc.num_planes; p++) + is_ba = !(desc.bpp[p] % 8u); + + if (is_ba) + desc.flags |= MP_IMGFLAG_BYTE_ALIGNED; + + if (desc.flags & MP_IMGFLAG_HAS_COMPS) { + if (desc.comps[3].size) + desc.flags |= MP_IMGFLAG_ALPHA; + + // Assuming all colors are (CCC+[A]) or (C+[A]), the latter being gray. + if (!desc.comps[1].size) + desc.flags |= MP_IMGFLAG_GRAY; + + bool bb = true; + for (int n = 0; n < MP_NUM_COMPONENTS; n++) { + if (desc.comps[n].offset % 8u || desc.comps[n].size % 8u) + bb = false; + } + if (bb) + desc.flags |= MP_IMGFLAG_BYTES; + } + + if ((desc.flags & (MP_IMGFLAG_YUV | MP_IMGFLAG_RGB)) + && (desc.flags & MP_IMGFLAG_HAS_COMPS) + && (desc.flags & MP_IMGFLAG_BYTES) + && ((desc.flags & MP_IMGFLAG_TYPE_MASK) == MP_IMGFLAG_TYPE_UINT)) + { + int cnt = num_comps(desc.flags); + bool same_depth = true; + for (int p = 0; p < desc.num_planes; p++) + same_depth &= desc.bpp[p] == desc.bpp[0]; + if (same_depth && cnt == desc.num_planes) { + if (desc.flags & MP_IMGFLAG_YUV) { + desc.flags |= MP_IMGFLAG_YUV_P; + } else { + desc.flags |= MP_IMGFLAG_RGB_P; + } + } + if (cnt == 3 && desc.num_planes == 2 && + desc.bpp[1] == desc.bpp[0] * 2 && + (desc.flags & MP_IMGFLAG_YUV)) + { + + desc.flags |= MP_IMGFLAG_YUV_NV; + } + } + + return desc; +} + static bool validate_regular_imgfmt(const struct mp_regular_imgfmt *fmt) { bool present[MP_NUM_COMPONENTS] = {0}; @@ -615,53 +644,36 @@ static bool validate_regular_imgfmt(const struct mp_regular_imgfmt *fmt) return true; } -enum mp_csp mp_imgfmt_get_forced_csp(int imgfmt) +static enum mp_csp get_forced_csp_from_flags(int flags) { - const struct mp_imgfmt_entry *p = get_mp_desc(imgfmt); - if (p && p->reg_desc.component_size) - return p->reg_desc.forced_csp; - if (p && p->forced_csp) - return p->forced_csp; - - enum AVPixelFormat pixfmt = imgfmt2pixfmt(imgfmt); - const AVPixFmtDescriptor *pixdesc = av_pix_fmt_desc_get(pixfmt); - - if (pixdesc && (pixdesc->flags & AV_PIX_FMT_FLAG_HWACCEL)) - return MP_CSP_AUTO; - - // FFmpeg does not provide a flag for XYZ, so this is the best we can do. - if (pixdesc && strncmp(pixdesc->name, "xyz", 3) == 0) + if (flags & MP_IMGFLAG_COLOR_XYZ) return MP_CSP_XYZ; - if (pixdesc && (pixdesc->flags & AV_PIX_FMT_FLAG_RGB)) - return MP_CSP_RGB; - - if (pixfmt == AV_PIX_FMT_PAL8 || - pixfmt == AV_PIX_FMT_MONOBLACK || - pixfmt == AV_PIX_FMT_MONOWHITE) + if (flags & MP_IMGFLAG_COLOR_RGB) return MP_CSP_RGB; return MP_CSP_AUTO; } -enum mp_component_type mp_imgfmt_get_component_type(int imgfmt) +enum mp_csp mp_imgfmt_get_forced_csp(int imgfmt) { - const struct mp_imgfmt_entry *p = get_mp_desc(imgfmt); - if (p && p->reg_desc.component_size) - return p->reg_desc.component_type; - if (p && p->ctype) - return p->ctype; + return get_forced_csp_from_flags(mp_imgfmt_get_desc(imgfmt).flags); +} - const AVPixFmtDescriptor *pixdesc = - av_pix_fmt_desc_get(imgfmt2pixfmt(imgfmt)); +static enum mp_component_type get_component_type_from_flags(int flags) +{ + if (flags & MP_IMGFLAG_TYPE_UINT) + return MP_COMPONENT_TYPE_UINT; - if (!pixdesc || (pixdesc->flags & AV_PIX_FMT_FLAG_HWACCEL)) - return MP_COMPONENT_TYPE_UNKNOWN; - - if (pixdesc->flags & AV_PIX_FMT_FLAG_FLOAT) + if (flags & MP_IMGFLAG_TYPE_FLOAT) return MP_COMPONENT_TYPE_FLOAT; - return MP_COMPONENT_TYPE_UINT; + return MP_COMPONENT_TYPE_UNKNOWN; +} + +enum mp_component_type mp_imgfmt_get_component_type(int imgfmt) +{ + return get_component_type_from_flags(mp_imgfmt_get_desc(imgfmt).flags); } int mp_find_other_endian(int imgfmt) @@ -671,12 +683,6 @@ int mp_find_other_endian(int imgfmt) bool mp_get_regular_imgfmt(struct mp_regular_imgfmt *dst, int imgfmt) { - const struct mp_imgfmt_entry *p = get_mp_desc(imgfmt); - if (p && p->reg_desc.component_size) { - *dst = p->reg_desc; - return true; - } - struct mp_regular_imgfmt res = {0}; struct mp_imgfmt_desc desc = mp_imgfmt_get_desc(imgfmt); @@ -687,7 +693,7 @@ bool mp_get_regular_imgfmt(struct mp_regular_imgfmt *dst, int imgfmt) if (desc.endian_shift || !(desc.flags & MP_IMGFLAG_HAS_COMPS)) return false; - res.component_type = mp_imgfmt_get_component_type(imgfmt); + res.component_type = get_component_type_from_flags(desc.flags); if (!res.component_type) return false; @@ -730,7 +736,7 @@ bool mp_get_regular_imgfmt(struct mp_regular_imgfmt *dst, int imgfmt) res.chroma_xs = desc.chroma_xs; res.chroma_ys = desc.chroma_ys; - res.forced_csp = mp_imgfmt_get_forced_csp(imgfmt); + res.forced_csp = get_forced_csp_from_flags(desc.flags); if (!validate_regular_imgfmt(&res)) return false; diff --git a/video/img_format.h b/video/img_format.h index 92e1716ca9..6b5420205f 100644 --- a/video/img_format.h +++ b/video/img_format.h @@ -31,41 +31,53 @@ #endif #define MP_MAX_PLANES 4 +#define MP_NUM_COMPONENTS 4 -// All pixels start in byte boundaries -#define MP_IMGFLAG_BYTE_ALIGNED 0x1 // mp_imgfmt_desc.comps[] is set to useful values. Some types of formats will // use comps[], but not set this flag, because it doesn't cover all requirements // (for example MP_IMGFLAG_PACKED_SS_YUV). -#define MP_IMGFLAG_HAS_COMPS (1 << 1) -// set if (possibly) alpha is included (might be not definitive for packed RGB) -#define MP_IMGFLAG_ALPHA 0x80 -// set if it's YUV colorspace -#define MP_IMGFLAG_YUV 0x200 -// set if it's RGB colorspace -#define MP_IMGFLAG_RGB 0x400 -// set if the format is in a standard YUV format: -// - planar and yuv colorspace -// - chroma shift 0-2 -// - 1-4 planes (1: gray, 2: gray/alpha, 3: yuv, 4: yuv/alpha) -// - 8-16 bit per pixel/plane, all planes have same depth, -// each plane has exactly one component -#define MP_IMGFLAG_YUV_P 0x1000 +#define MP_IMGFLAG_HAS_COMPS (1 << 0) + +// all components start on byte boundaries +#define MP_IMGFLAG_BYTES (1 << 1) + +// all pixels start in byte boundaries +#define MP_IMGFLAG_BYTE_ALIGNED (1 << 2) + // set if in little endian, or endian independent -#define MP_IMGFLAG_LE 0x2000 +#define MP_IMGFLAG_LE (1 << 3) + // set if in big endian, or endian independent -#define MP_IMGFLAG_BE 0x4000 +#define MP_IMGFLAG_BE (1 << 4) + // set if in native (host) endian, or endian independent -#define MP_IMGFLAG_NE MP_SELECT_LE_BE(MP_IMGFLAG_LE, MP_IMGFLAG_BE) -// Carries a palette in plane[1] (see AV_PIX_FMT_PAL8 for format of the palette). -#define MP_IMGFLAG_PAL 0x8000 -// planes don't contain real data -#define MP_IMGFLAG_HWACCEL 0x10000 -// Like MP_IMGFLAG_YUV_P, but RGB. This can be e.g. AV_PIX_FMT_GBRP. The planes -// are always shuffled (G - B - R [- A]). -#define MP_IMGFLAG_RGB_P 0x40000 -// Semi-planar YUV formats, like AV_PIX_FMT_NV12. -#define MP_IMGFLAG_YUV_NV 0x80000 +#define MP_IMGFLAG_NE MP_SELECT_LE_BE(MP_IMGFLAG_LE, MP_IMGFLAG_BE) + +// set if an alpha component is included +#define MP_IMGFLAG_ALPHA (1 << 5) + +// color class flags - can use via bit tests, or use the mask and compare +#define MP_IMGFLAG_COLOR_MASK (15 << 6) +#define MP_IMGFLAG_COLOR_YUV (1 << 6) +#define MP_IMGFLAG_COLOR_RGB (2 << 6) +#define MP_IMGFLAG_COLOR_XYZ (4 << 6) + +// component type flags (same access conventions as MP_IMGFLAG_COLOR_*) +#define MP_IMGFLAG_TYPE_MASK (15 << 10) +#define MP_IMGFLAG_TYPE_UINT (1 << 10) +#define MP_IMGFLAG_TYPE_FLOAT (2 << 10) +#define MP_IMGFLAG_TYPE_PAL8 (4 << 10) +#define MP_IMGFLAG_TYPE_HW (8 << 10) + +#define MP_IMGFLAG_YUV MP_IMGFLAG_COLOR_YUV +#define MP_IMGFLAG_RGB MP_IMGFLAG_COLOR_RGB +#define MP_IMGFLAG_PAL MP_IMGFLAG_TYPE_PAL8 +#define MP_IMGFLAG_HWACCEL MP_IMGFLAG_TYPE_HW + +// 1 component format (or 2 components if MP_IMGFLAG_ALPHA is set). +// This should probably be a separate MP_IMGFLAG_COLOR_GRAY, but for now it +// is too much of a mess. +#define MP_IMGFLAG_GRAY (1 << 14) // Packed, sub-sampled YUV format. Does not apply to packed non-subsampled YUV. // These formats pack multiple pixels into one sample with strange organization. @@ -76,9 +88,22 @@ // get their offsets with mp_imgfmt_get_packed_yuv_locations(). Note that the // component offsets can be >= bpp[0]; the actual range is bpp[0]*align_x. // These formats have no alpha. -#define MP_IMGFLAG_PACKED_SS_YUV (1 << 20) +#define MP_IMGFLAG_PACKED_SS_YUV (1 << 15) -#define MP_NUM_COMPONENTS 4 +// set if the format is in a standard YUV format: +// - planar and yuv colorspace +// - chroma shift 0-2 +// - 1-4 planes (1: gray, 2: gray/alpha, 3: yuv, 4: yuv/alpha) +// - 8-16 bit per pixel/plane, all planes have same depth, +// each plane has exactly one component +#define MP_IMGFLAG_YUV_P (1 << 16) + +// Like MP_IMGFLAG_YUV_P, but RGB. This can be e.g. AV_PIX_FMT_GBRP. The planes +// are always shuffled (G - B - R [- A]). +#define MP_IMGFLAG_RGB_P (1 << 17) + +// Semi-planar YUV formats, like AV_PIX_FMT_NV12. +#define MP_IMGFLAG_YUV_NV (1 << 18) struct mp_imgfmt_comp_desc { // Plane on which this component is. @@ -113,8 +138,8 @@ struct mp_imgfmt_desc { // MP_IMGFLAG_HAS_COMPS set. // This is indexed by component_type-1 (so 0=R, 1=G, etc.), see // mp_regular_imgfmt_plane.components[x] for component_type. Components not - // present, or which have an unknown layout, use size=0. Bits not covered by - // any component are random and not interpreted by any software. + // present use size=0. Bits not covered by any component are random and not + // interpreted by any software. // In particular, don't make the mistake to index this by plane. struct mp_imgfmt_comp_desc comps[MP_NUM_COMPONENTS];