diff options
-rw-r--r-- | test/img_format.c | 211 | ||||
-rw-r--r-- | test/ref/img_formats.txt | 1802 | ||||
-rw-r--r-- | test/tests.c | 42 | ||||
-rw-r--r-- | test/tests.h | 22 | ||||
-rw-r--r-- | video/fmt-conversion.c | 4 | ||||
-rw-r--r-- | video/img_format.c | 95 | ||||
-rw-r--r-- | wscript_build.py | 1 |
7 files changed, 2079 insertions, 98 deletions
diff --git a/test/img_format.c b/test/img_format.c new file mode 100644 index 0000000000..ff3af4c005 --- /dev/null +++ b/test/img_format.c @@ -0,0 +1,211 @@ +#include <libavutil/frame.h> +#include <libavutil/pixdesc.h> + +#include "tests.h" +#include "video/fmt-conversion.h" +#include "video/img_format.h" +#include "video/mp_image.h" +#include "video/sws_utils.h" + +static int imgfmts[IMGFMT_AVPIXFMT_END - IMGFMT_AVPIXFMT_START + 100]; +static int num_imgfmts; +static enum AVPixelFormat pixfmt_unsup[100]; +static int num_pixfmt_unsup; +static bool imgfmts_initialized; + +static int cmp_imgfmt_name(const void *a, const void *b) +{ + char *name_a = mp_imgfmt_to_name(*(int *)a); + char *name_b = mp_imgfmt_to_name(*(int *)b); + + return strcmp(name_a, name_b); +} + +static void find_all_imgfmts(void) +{ + if (imgfmts_initialized) + return; + + const AVPixFmtDescriptor *avd = av_pix_fmt_desc_next(NULL); + for (; avd; avd = av_pix_fmt_desc_next(avd)) { + enum AVPixelFormat fmt = av_pix_fmt_desc_get_id(avd); + int mpfmt = pixfmt2imgfmt(fmt); + if (!mpfmt) { + assert(num_pixfmt_unsup < MP_ARRAY_SIZE(pixfmt_unsup)); + pixfmt_unsup[num_pixfmt_unsup++] = fmt; + } + } + + for (int fmt = IMGFMT_START; fmt <= IMGFMT_END; fmt++) { + struct mp_imgfmt_desc d = mp_imgfmt_get_desc(fmt); + enum AVPixelFormat pixfmt = imgfmt2pixfmt(fmt); + if (d.id || pixfmt != AV_PIX_FMT_NONE) { + assert(num_imgfmts < MP_ARRAY_SIZE(imgfmts)); // enlarge that array + imgfmts[num_imgfmts++] = fmt; + } + } + + qsort(imgfmts, num_imgfmts, sizeof(imgfmts[0]), cmp_imgfmt_name); + + imgfmts_initialized = true; +} + +static const char *comp_type(enum mp_component_type type) +{ + switch (type) { + case MP_COMPONENT_TYPE_UINT: return "uint"; + case MP_COMPONENT_TYPE_FLOAT: return "float"; + default: return "unknown"; + } +} + +static void run(struct test_ctx *ctx) +{ + find_all_imgfmts(); + + FILE *f = test_open_out(ctx, "img_formats.txt"); + + for (int z = 0; z < num_imgfmts; z++) { + int mpfmt = imgfmts[z]; + enum AVPixelFormat pixfmt = imgfmt2pixfmt(mpfmt); + const AVPixFmtDescriptor *avd = av_pix_fmt_desc_get(pixfmt); + + fprintf(f, "%s: ", mp_imgfmt_to_name(mpfmt)); + if (mpfmt >= IMGFMT_AVPIXFMT_START && mpfmt < IMGFMT_AVPIXFMT_END) + fprintf(f, "[GENERIC] "); + + int fcsp = mp_imgfmt_get_forced_csp(mpfmt); + if (fcsp) + fprintf(f, "fcsp=%s ", m_opt_choice_str(mp_csp_names, fcsp)); + fprintf(f, "ctype=%s\n", comp_type(mp_imgfmt_get_component_type(mpfmt))); + + struct mp_imgfmt_desc d = mp_imgfmt_get_desc(mpfmt); + if (d.id) { + fprintf(f, " Legacy desc: "); + #define FLAG(t, c) if (d.flags & (t)) fprintf(f, "[%s]", c); + FLAG(MP_IMGFLAG_BYTE_ALIGNED, "ba") + 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_LE, "le") + FLAG(MP_IMGFLAG_BE, "be") + FLAG(MP_IMGFLAG_PAL, "pal") + FLAG(MP_IMGFLAG_HWACCEL, "hw") + fprintf(f, "\n"); + fprintf(f, " planes=%d, chroma=%d:%d align=%d:%d bits=%d cbits=%d\n", + d.num_planes, d.chroma_xs, d.chroma_ys, d.align_x, d.align_y, + d.plane_bits, d.component_bits); + fprintf(f, " {"); + for (int n = 0; n < MP_MAX_PLANES; n++) { + fprintf(f, "%d/%d/[%d:%d] ", d.bytes[n], d.bpp[n], + d.xs[n], d.ys[n]); + } + fprintf(f, "}\n"); + } else { + fprintf(f, " [NODESC]\n"); + } + + if (!(d.flags & MP_IMGFLAG_HWACCEL) && pixfmt != AV_PIX_FMT_NONE) { + AVFrame *fr = av_frame_alloc(); + fr->format = pixfmt; + fr->width = 128; + fr->height = 128; + int err = av_frame_get_buffer(fr, MP_IMAGE_BYTE_ALIGN); + assert(err >= 0); + struct mp_image *mpi = mp_image_alloc(mpfmt, fr->width, fr->height); + if (mpi) { + // A rather fuzzy test, which might fail even if there's no bug. + for (int n = 0; n < 4; n++) { + if (!!mpi->planes[n] != !!fr->data[n]) { + #ifdef AV_PIX_FMT_FLAG_PSEUDOPAL + if (n == 1 && (avd->flags & AV_PIX_FMT_FLAG_PSEUDOPAL)) + continue; + #endif + fprintf(f, " Warning: p%d: %p %p\n", n, + mpi->planes[n], fr->data[n]); + } + if (mpi->stride[n] != fr->linesize[n]) { + fprintf(f, " Warning: p%d: %d %d\n", n, + mpi->stride[n], fr->linesize[n]); + } + } + } else { + fprintf(f, " [NOALLOC]\n"); + } + talloc_free(mpi); + av_frame_free(&fr); + } + + struct mp_regular_imgfmt reg; + if (mp_get_regular_imgfmt(®, mpfmt)) { + fprintf(f, " Regular: planes=%d compbytes=%d bitpad=%d " + "chroma=%dx%d ctype=%s\n", + reg.num_planes, reg.component_size, reg.component_pad, + reg.chroma_w, reg.chroma_h, comp_type(reg.component_type)); + for (int n = 0; n < reg.num_planes; n++) { + struct mp_regular_imgfmt_plane *plane = ®.planes[n]; + fprintf(f, " %d: {", n); + for (int i = 0; i < plane->num_components; i++) { + if (i > 0) + fprintf(f, ", "); + fprintf(f, "%d", plane->components[i]); + } + fprintf(f, "}\n"); + } + } + + // This isn't ours, but changes likely affect us. + if (avd) { + fprintf(f, " AVD: name=%s chroma=%d:%d flags=0x%"PRIx64, avd->name, + avd->log2_chroma_w, avd->log2_chroma_h, avd->flags); + #define FLAGAV(t, c) if (avd->flags & (t)) \ + {fprintf(f, "%s[%s]", pre, c); pre = ""; } + char *pre = " "; + FLAGAV(AV_PIX_FMT_FLAG_BE, "be") + FLAGAV(AV_PIX_FMT_FLAG_PAL, "pal") + FLAGAV(AV_PIX_FMT_FLAG_BITSTREAM, "bs") + FLAGAV(AV_PIX_FMT_FLAG_HWACCEL, "hw") + FLAGAV(AV_PIX_FMT_FLAG_PLANAR, "planar") + FLAGAV(AV_PIX_FMT_FLAG_RGB, "rgb") + FLAGAV(AV_PIX_FMT_FLAG_ALPHA, "alpha") + FLAGAV(AV_PIX_FMT_FLAG_BAYER, "bayer") + FLAGAV(AV_PIX_FMT_FLAG_FLOAT, "float") + fprintf(f, "\n"); + for (int n = 0; n < avd->nb_components; n++) { + const AVComponentDescriptor *cd = &avd->comp[n]; + fprintf(f, " %d: p=%-2d st=%-2d o=%-2d sh=%-2d d=%d\n", + n, cd->plane, cd->step, cd->offset, cd->shift, cd->depth); + } + for (int n = avd->nb_components; n < 4; n++) { + const AVComponentDescriptor *cd = &avd->comp[n]; + assert(!cd->plane && !cd->step && !cd->offset && !cd->shift && + !cd->depth); + } + } + + const AVPixFmtDescriptor *avd2 = av_pix_fmt_desc_next(NULL); + for (; avd2; avd2 = av_pix_fmt_desc_next(avd2)) { + enum AVPixelFormat pixfmt2 = av_pix_fmt_desc_get_id(avd2); + int mpfmt2 = pixfmt2imgfmt(pixfmt2); + if (mpfmt2 == mpfmt && pixfmt2 != pixfmt) + fprintf(f, " Ambiguous alias: %s\n", avd2->name); + } + } + + for (int z = 0; z < num_pixfmt_unsup; z++) { + const AVPixFmtDescriptor *avd = av_pix_fmt_desc_get(pixfmt_unsup[z]); + fprintf(f, "Unsupported: %s\n", avd->name); + } + + fclose(f); + + assert_text_files_equal(ctx, "img_formats.txt", "img_formats.txt", + "This can fail if FFmpeg adds new formats or flags."); +} + +const struct unittest test_img_format = { + .name = "img_format", + .run = run, +}; diff --git a/test/ref/img_formats.txt b/test/ref/img_formats.txt new file mode 100644 index 0000000000..f73b83bdd5 --- /dev/null +++ b/test/ref/img_formats.txt @@ -0,0 +1,1802 @@ +0bgr: fcsp=rgb ctype=uint + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=24 cbits=8 + {4/32/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=1 bitpad=0 chroma=1x1 ctype=uint + 0: {0, 3, 2, 1} + AVD: name=0bgr chroma=0:0 flags=0x20 [rgb] + 0: p=0 st=4 o=3 sh=0 d=8 + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=24 cbits=8 + {4/32/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=1 bitpad=0 chroma=1x1 ctype=uint + 0: {0, 1, 2, 3} + AVD: name=0rgb chroma=0:0 flags=0x20 [rgb] + 0: p=0 st=4 o=1 sh=0 d=8 + 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 + Legacy desc: [ba][a][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=32 cbits=8 + {4/32/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=1 bitpad=0 chroma=1x1 ctype=uint + 0: {4, 3, 2, 1} + AVD: name=abgr chroma=0:0 flags=0xa0 [rgb][alpha] + 0: p=0 st=4 o=3 sh=0 d=8 + 1: p=0 st=4 o=2 sh=0 d=8 + 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 + Legacy desc: [ba][a][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=32 cbits=8 + {4/32/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=1 bitpad=0 chroma=1x1 ctype=uint + 0: {4, 1, 2, 3} + AVD: name=argb chroma=0:0 flags=0xa0 [rgb][alpha] + 0: p=0 st=4 o=1 sh=0 d=8 + 1: p=0 st=4 o=2 sh=0 d=8 + 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 + Legacy desc: [ba][a][yuv][le] + planes=1, chroma=0:0 align=1:1 bits=64 cbits=16 + {8/64/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=2 bitpad=0 chroma=1x1 ctype=uint + 0: {4, 1, 2, 3} + AVD: name=ayuv64le chroma=0:0 flags=0x80 [alpha] + 0: p=0 st=8 o=2 sh=0 d=16 + 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 +ayuv64be: [GENERIC] ctype=uint + Legacy desc: [ba][a][yuv][be] + planes=1, chroma=0:0 align=1:1 bits=64 cbits=16 + {8/64/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=ayuv64be chroma=0:0 flags=0x81 [be][alpha] + 0: p=0 st=8 o=2 sh=0 d=16 + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=16 cbits=0 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bayer_bggr16le chroma=0:0 flags=0x120 [rgb][bayer] + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=16 cbits=0 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bayer_bggr16be chroma=0:0 flags=0x121 [be][rgb][bayer] + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=8 cbits=0 + {1/8/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bayer_bggr8 chroma=0:0 flags=0x120 [rgb][bayer] + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=16 cbits=0 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bayer_gbrg16le chroma=0:0 flags=0x120 [rgb][bayer] + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=16 cbits=0 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bayer_gbrg16be chroma=0:0 flags=0x121 [be][rgb][bayer] + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=8 cbits=0 + {1/8/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bayer_gbrg8 chroma=0:0 flags=0x120 [rgb][bayer] + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=16 cbits=0 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bayer_grbg16le chroma=0:0 flags=0x120 [rgb][bayer] + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=16 cbits=0 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bayer_grbg16be chroma=0:0 flags=0x121 [be][rgb][bayer] + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=8 cbits=0 + {1/8/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bayer_grbg8 chroma=0:0 flags=0x120 [rgb][bayer] + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=16 cbits=0 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bayer_rggb16le chroma=0:0 flags=0x120 [rgb][bayer] + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=16 cbits=0 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bayer_rggb16be chroma=0:0 flags=0x121 [be][rgb][bayer] + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=8 cbits=0 + {1/8/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bayer_rggb8 chroma=0:0 flags=0x120 [rgb][bayer] + 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 +bgr0: fcsp=rgb ctype=uint + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=24 cbits=8 + {4/32/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=1 bitpad=0 chroma=1x1 ctype=uint + 0: {3, 2, 1, 0} + AVD: name=bgr0 chroma=0:0 flags=0x20 [rgb] + 0: p=0 st=4 o=2 sh=0 d=8 + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=24 cbits=8 + {3/24/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=1 bitpad=0 chroma=1x1 ctype=uint + 0: {3, 2, 1} + AVD: name=bgr24 chroma=0:0 flags=0x20 [rgb] + 0: p=0 st=3 o=2 sh=0 d=8 + 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 + Legacy desc: [rgb][le][be] + planes=1, chroma=0:0 align=2:1 bits=4 cbits=0 + {0/4/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bgr4 chroma=0:0 flags=0x24 [bs][rgb] + 0: p=0 st=4 o=3 sh=0 d=1 + 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 + Legacy desc: [ba][rgb][le] + planes=1, chroma=0:0 align=1:1 bits=12 cbits=4 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bgr444le chroma=0:0 flags=0x20 [rgb] + 0: p=0 st=2 o=0 sh=0 d=4 + 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 + Legacy desc: [ba][rgb][be] + planes=1, chroma=0:0 align=1:1 bits=12 cbits=4 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bgr444be chroma=0:0 flags=0x21 [be][rgb] + 0: p=0 st=2 o=0 sh=0 d=4 + 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 + Legacy desc: [ba][rgb][le] + planes=1, chroma=0:0 align=1:1 bits=48 cbits=16 + {6/48/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=2 bitpad=0 chroma=1x1 ctype=uint + 0: {3, 2, 1} + AVD: name=bgr48le chroma=0:0 flags=0x20 [rgb] + 0: p=0 st=6 o=4 sh=0 d=16 + 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 + Legacy desc: [ba][rgb][be] + planes=1, chroma=0:0 align=1:1 bits=48 cbits=16 + {6/48/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bgr48be chroma=0:0 flags=0x21 [be][rgb] + 0: p=0 st=6 o=4 sh=0 d=16 + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=4 cbits=0 + {1/8/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bgr4_byte chroma=0:0 flags=0x60 [rgb] + 0: p=0 st=1 o=0 sh=0 d=1 + 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 + Legacy desc: [ba][rgb][le] + planes=1, chroma=0:0 align=1:1 bits=15 cbits=5 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bgr555le chroma=0:0 flags=0x20 [rgb] + 0: p=0 st=2 o=0 sh=0 d=5 + 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 + Legacy desc: [ba][rgb][be] + planes=1, chroma=0:0 align=1:1 bits=15 cbits=5 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bgr555be chroma=0:0 flags=0x21 [be][rgb] + 0: p=0 st=2 o=0 sh=0 d=5 + 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 + Legacy desc: [ba][rgb][le] + planes=1, chroma=0:0 align=1:1 bits=16 cbits=0 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bgr565le chroma=0:0 flags=0x20 [rgb] + 0: p=0 st=2 o=0 sh=0 d=5 + 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 + Legacy desc: [ba][rgb][be] + planes=1, chroma=0:0 align=1:1 bits=16 cbits=0 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bgr565be chroma=0:0 flags=0x21 [be][rgb] + 0: p=0 st=2 o=0 sh=0 d=5 + 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 + Legacy desc: [ba][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=8 cbits=0 + {1/8/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bgr8 chroma=0:0 flags=0x60 [rgb] + 0: p=0 st=1 o=0 sh=0 d=3 + 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 + Legacy desc: [ba][a][rgb][le][be] + planes=1, chroma=0:0 align=1:1 bits=32 cbits=8 + {4/32/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=1 bitpad=0 chroma=1x1 ctype=uint + 0: {3, 2, 1, 4} + AVD: name=bgra chroma=0:0 flags=0xa0 [rgb][alpha] + 0: p=0 st=4 o=2 sh=0 d=8 + 1: p=0 st=4 o=1 sh=0 d=8 + 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 + Legacy desc: [ba][a][rgb][le] + planes=1, chroma=0:0 align=1:1 bits=64 cbits=16 + {8/64/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=2 bitpad=0 chroma=1x1 ctype=uint + 0: {3, 2, 1, 4} + AVD: name=bgra64le chroma=0:0 flags=0xa0 [rgb][alpha] + 0: p=0 st=8 o=4 sh=0 d=16 + 1: p=0 st=8 o=2 sh=0 d=16 + 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 + Legacy desc: [ba][a][rgb][be] + planes=1, chroma=0:0 align=1:1 bits=64 cbits=16 + {8/64/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=bgra64be chroma=0:0 flags=0xa1 [be][rgb][alpha] + 0: p=0 st=8 o=4 sh=0 d=16 + 1: p=0 st=8 o=2 sh=0 d=16 + 2: p=0 st=8 o=0 sh=0 d=16 + 3: p=0 st=8 o=6 sh=0 d=16 +cuda: [GENERIC] ctype=unknown + Legacy desc: [le][be][hw] + planes=0, chroma=0:0 align=1:1 bits=0 cbits=0 + {0/0/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=cuda chroma=0:0 flags=0x8 [hw] +d3d11: [GENERIC] ctype=unknown + Legacy desc: [le][be][hw] + planes=0, chroma=0:0 align=1:1 bits=0 cbits=0 + {0/0/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=d3d11 chroma=0:0 flags=0x8 [hw] +d3d11va_vld: [GENERIC] ctype=unknown + Legacy desc: [le][be][hw] + planes=0, chroma=1:1 align=2:2 bits=0 cbits=0 + {0/0/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=d3d11va_vld chroma=1:1 flags=0x8 [hw] +drm_prime: ctype=unknown + Legacy desc: [le][be][hw] + planes=0, chroma=0:0 align=1:1 bits=0 cbits=0 + {0/0/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=drm_prime chroma=0:0 flags=0x8 [hw] +dxva2_vld: ctype=unknown + Legacy desc: [le][be][hw] + planes=0, chroma=1:1 align=2:2 bits=0 cbits=0 + {0/0/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=dxva2_vld chroma=1:1 flags=0x8 [hw] +gbrap: [GENERIC] fcsp=rgb ctype=uint + Legacy desc: [ba][a][rgb][le][be] + planes=4, chroma=0:0 align=1:1 bits=8 cbits=8 + {1/8/[0:0] 1/8/[0:0] 1/8/[0:0] 1/8/[0:0] } + Regular: planes=4 compbytes=1 bitpad=0 chroma=1x1 ctype=uint + 0: {2} + 1: {3} + 2: {1} + 3: {4} + AVD: name=gbrap chroma=0:0 flags=0xb0 [planar][rgb][alpha] + 0: p=2 st=1 o=0 sh=0 d=8 + 1: p=0 st=1 o=0 sh=0 d=8 + 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 + Legacy desc: [ba][a][rgb][le] + planes=4, chroma=0:0 align=1:1 bits=10 cbits=10 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 2/16/[0:0] } + Regular: planes=4 compbytes=2 bitpad=-6 chroma=1x1 ctype=uint + 0: {2} + 1: {3} + 2: {1} + 3: {4} + AVD: name=gbrap10le chroma=0:0 flags=0xb0 [planar][rgb][alpha] + 0: p=2 st=2 o=0 sh=0 d=10 + 1: p=0 st=2 o=0 sh=0 d=10 + 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 + Legacy desc: [ba][a][rgb][be] + planes=4, chroma=0:0 align=1:1 bits=10 cbits=10 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 2/16/[0:0] } + AVD: name=gbrap10be chroma=0:0 flags=0xb1 [be][planar][rgb][alpha] + 0: p=2 st=2 o=0 sh=0 d=10 + 1: p=0 st=2 o=0 sh=0 d=10 + 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 + Legacy desc: [ba][a][rgb][le] + planes=4, chroma=0:0 align=1:1 bits=12 cbits=12 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 2/16/[0:0] } + Regular: planes=4 compbytes=2 bitpad=-4 chroma=1x1 ctype=uint + 0: {2} + 1: {3} + 2: {1} + 3: {4} + AVD: name=gbrap12le chroma=0:0 flags=0xb0 [planar][rgb][alpha] + 0: p=2 st=2 o=0 sh=0 d=12 + 1: p=0 st=2 o=0 sh=0 d=12 + 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 + Legacy desc: [ba][a][rgb][be] + planes=4, chroma=0:0 align=1:1 bits=12 cbits=12 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 2/16/[0:0] } + AVD: name=gbrap12be chroma=0:0 flags=0xb1 [be][planar][rgb][alpha] + 0: p=2 st=2 o=0 sh=0 d=12 + 1: p=0 st=2 o=0 sh=0 d=12 + 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 + Legacy desc: [ba][a][rgb][le] + planes=4, chroma=0:0 align=1:1 bits=16 cbits=16 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 2/16/[0:0] } + Regular: planes=4 compbytes=2 bitpad=0 chroma=1x1 ctype=uint + 0: {2} + 1: {3} + 2: {1} + 3: {4} + AVD: name=gbrap16le chroma=0:0 flags=0xb0 [planar][rgb][alpha] + 0: p=2 st=2 o=0 sh=0 d=16 + 1: p=0 st=2 o=0 sh=0 d=16 + 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 + Legacy desc: [ba][a][rgb][be] + planes=4, chroma=0:0 align=1:1 bits=16 cbits=16 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 2/16/[0:0] } + AVD: name=gbrap16be chroma=0:0 flags=0xb1 [be][planar][rgb][alpha] + 0: p=2 st=2 o=0 sh=0 d=16 + 1: p=0 st=2 o=0 sh=0 d=16 + 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 + Legacy desc: [ba][a][rgb][le] + planes=4, chroma=0:0 align=1:1 bits=32 cbits=32 + {4/32/[0:0] 4/32/[0:0] 4/32/[0:0] 4/32/[0:0] } + Regular: planes=4 compbytes=4 bitpad=0 chroma=1x1 ctype=float + 0: {2} + 1: {3} + 2: {1} + 3: {4} + AVD: name=gbrapf32le chroma=0:0 flags=0x2b0 [planar][rgb][alpha][float] + 0: p=2 st=4 o=0 sh=0 d=32 + 1: p=0 st=4 o=0 sh=0 d=32 + 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 + Legacy desc: [ba][a][rgb][be] + planes=4, chroma=0:0 align=1:1 bits=32 cbits=32 + {4/32/[0:0] 4/32/[0:0] 4/32/[0:0] 4/32/[0:0] } + AVD: name=gbrapf32be chroma=0:0 flags=0x2b1 [be][planar][rgb][alpha][float] + 0: p=2 st=4 o=0 sh=0 d=32 + 1: p=0 st=4 o=0 sh=0 d=32 + 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 + Legacy desc: [ba][rgb][le][be] + planes=3, chroma=0:0 align=1:1 bits=8 cbits=8 + {1/8/[0:0] 1/8/[0:0] 1/8/[0:0] 0/0/[0:0] } + Regular: planes=3 compbytes=1 bitpad=0 chroma=1x1 ctype=uint + 0: {2} + 1: {3} + 2: {1} + AVD: name=gbrp chroma=0:0 flags=0x30 [planar][rgb] + 0: p=2 st=1 o=0 sh=0 d=8 + 1: p=0 st=1 o=0 sh=0 d=8 + 2: p=1 st=1 o=0 sh=0 d=8 +gbrp10: [GENERIC] fcsp=rgb ctype=uint + Legacy desc: [ba][rgb][le] + planes=3, chroma=0:0 align=1:1 bits=10 cbits=10 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 0/0/[0:0] } + Regular: planes=3 compbytes=2 bitpad=-6 chroma=1x1 ctype=uint + 0: {2} + 1: {3} + 2: {1} + AVD: name=gbrp10le chroma=0:0 flags=0x30 [planar][rgb] + 0: p=2 st=2 o=0 sh=0 d=10 + 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 + Legacy desc: [ba][rgb][be] + planes=3, chroma=0:0 align=1:1 bits=10 cbits=10 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 0/0/[0:0] } + AVD: name=gbrp10be chroma=0:0 flags=0x31 [be][planar][rgb] + 0: p=2 st=2 o=0 sh=0 d=10 + 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 + Legacy desc: [ba][rgb][le] + planes=3, chroma=0:0 align=1:1 bits=12 cbits=12 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 0/0/[0:0] } + Regular: planes=3 compbytes=2 bitpad=-4 chroma=1x1 ctype=uint + 0: {2} + 1: {3} + 2: {1} + AVD: name=gbrp12le chroma=0:0 flags=0x30 [planar][rgb] + 0: p=2 st=2 o=0 sh=0 d=12 + 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 + Legacy desc: [ba][rgb][be] + planes=3, chroma=0:0 align=1:1 bits=12 cbits=12 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 0/0/[0:0] } + AVD: name=gbrp12be chroma=0:0 flags=0x31 [be][planar][rgb] + 0: p=2 st=2 o=0 sh=0 d=12 + 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 + Legacy desc: [ba][rgb][le] + planes=3, chroma=0:0 align=1:1 bits=14 cbits=14 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 0/0/[0:0] } + Regular: planes=3 compbytes=2 bitpad=-2 chroma=1x1 ctype=uint + 0: {2} + 1: {3} + 2: {1} + AVD: name=gbrp14le chroma=0:0 flags=0x30 [planar][rgb] + 0: p=2 st=2 o=0 sh=0 d=14 + 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 + Legacy desc: [ba][rgb][be] + planes=3, chroma=0:0 align=1:1 bits=14 cbits=14 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 0/0/[0:0] } + AVD: name=gbrp14be chroma=0:0 flags=0x31 [be][planar][rgb] + 0: p=2 st=2 o=0 sh=0 d=14 + 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 + Legacy desc: [ba][rgb][le] + planes=3, chroma=0:0 align=1:1 bits=16 cbits=16 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 0/0/[0:0] } + Regular: planes=3 compbytes=2 bitpad=0 chroma=1x1 ctype=uint + 0: {2} + 1: {3} + 2: {1} + AVD: name=gbrp16le chroma=0:0 flags=0x30 [planar][rgb] + 0: p=2 st=2 o=0 sh=0 d=16 + 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 + Legacy desc: [ba][rgb][be] + planes=3, chroma=0:0 align=1:1 bits=16 cbits=16 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 0/0/[0:0] } + AVD: name=gbrp16be chroma=0:0 flags=0x31 [be][planar][rgb] + 0: p=2 st=2 o=0 sh=0 d=16 + 1: p=0 st=2 o=0 sh=0 d=16 + 2: p=1 st=2 o=0 sh=0 d=16 +gbrp9: [GENERIC] fcsp=rgb ctype=uint + Legacy desc: [ba][rgb][le] + planes=3, chroma=0:0 align=1:1 bits=9 cbits=9 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 0/0/[0:0] } + Regular: planes=3 compbytes=2 bitpad=-7 chroma=1x1 ctype=uint + 0: {2} + 1: {3} + 2: {1} + AVD: name=gbrp9le chroma=0:0 flags=0x30 [planar][rgb] + 0: p=2 st=2 o=0 sh=0 d=9 + 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 + Legacy desc: [ba][rgb][be] + planes=3, chroma=0:0 align=1:1 bits=9 cbits=9 + {2/16/[0:0] 2/16/[0:0] 2/16/[0:0] 0/0/[0:0] } + AVD: name=gbrp9be chroma=0:0 flags=0x31 [be][planar][rgb] + 0: p=2 st=2 o=0 sh=0 d=9 + 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 + Legacy desc: [ba][rgb][le] + planes=3, chroma=0:0 align=1:1 bits=32 cbits=32 + {4/32/[0:0] 4/32/[0:0] 4/32/[0:0] 0/0/[0:0] } + Regular: planes=3 compbytes=4 bitpad=0 chroma=1x1 ctype=float + 0: {2} + 1: {3} + 2: {1} + AVD: name=gbrpf32le chroma=0:0 flags=0x230 [planar][rgb][float] + 0: p=2 st=4 o=0 sh=0 d=32 + 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 + Legacy desc: [ba][rgb][be] + planes=3, chroma=0:0 align=1:1 bits=32 cbits=32 + {4/32/[0:0] 4/32/[0:0] 4/32/[0:0] 0/0/[0:0] } + AVD: name=gbrpf32be chroma=0:0 flags=0x231 [be][planar][rgb][float] + 0: p=2 st=4 o=0 sh=0 d=32 + 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 + Legacy desc: [ba][yuvp][yuv][le][be] + planes=1, chroma=0:0 align=1:1 bits=8 cbits=8 + {1/8/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=1 bitpad=0 chroma=1x1 ctype=uint + 0: {1} + AVD: name=gray chroma=0:0 flags=0x40 + 0: p=0 st=1 o=0 sh=0 d=8 +gray10: [GENERIC] ctype=uint + Legacy desc: [ba][yuvp][yuv][le] + planes=1, chroma=0:0 align=1:1 bits=10 cbits=10 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=2 bitpad=-6 chroma=1x1 ctype=uint + 0: {1} + AVD: name=gray10le chroma=0:0 flags=0x0 + 0: p=0 st=2 o=0 sh=0 d=10 +gray10be: [GENERIC] ctype=uint + Legacy desc: [ba][yuvp][yuv][be] + planes=1, chroma=0:0 align=1:1 bits=10 cbits=10 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=gray10be chroma=0:0 flags=0x1 [be] + 0: p=0 st=2 o=0 sh=0 d=10 +gray12: [GENERIC] ctype=uint + Legacy desc: [ba][yuvp][yuv][le] + planes=1, chroma=0:0 align=1:1 bits=12 cbits=12 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=2 bitpad=-4 chroma=1x1 ctype=uint + 0: {1} + AVD: name=gray12le chroma=0:0 flags=0x0 + 0: p=0 st=2 o=0 sh=0 d=12 +gray12be: [GENERIC] ctype=uint + Legacy desc: [ba][yuvp][yuv][be] + planes=1, chroma=0:0 align=1:1 bits=12 cbits=12 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=gray12be chroma=0:0 flags=0x1 [be] + 0: p=0 st=2 o=0 sh=0 d=12 +gray14: [GENERIC] ctype=uint + Legacy desc: [ba][yuvp][yuv][le] + planes=1, chroma=0:0 align=1:1 bits=14 cbits=14 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=2 bitpad=-2 chroma=1x1 ctype=uint + 0: {1} + AVD: name=gray14le chroma=0:0 flags=0x0 + 0: p=0 st=2 o=0 sh=0 d=14 +gray14be: [GENERIC] ctype=uint + Legacy desc: [ba][yuvp][yuv][be] + planes=1, chroma=0:0 align=1:1 bits=14 cbits=14 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=gray14be chroma=0:0 flags=0x1 [be] + 0: p=0 st=2 o=0 sh=0 d=14 +gray16: ctype=uint + Legacy desc: [ba][yuvp][yuv][le] + planes=1, chroma=0:0 align=1:1 bits=16 cbits=16 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=2 bitpad=0 chroma=1x1 ctype=uint + 0: {1} + AVD: name=gray16le chroma=0:0 flags=0x0 + 0: p=0 st=2 o=0 sh=0 d=16 +gray16be: [GENERIC] ctype=uint + Legacy desc: [ba][yuvp][yuv][be] + planes=1, chroma=0:0 align=1:1 bits=16 cbits=16 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=gray16be chroma=0:0 flags=0x1 [be] + 0: p=0 st=2 o=0 sh=0 d=16 +gray9: [GENERIC] ctype=uint + Legacy desc: [ba][yuvp][yuv][le] + planes=1, chroma=0:0 align=1:1 bits=9 cbits=9 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=2 bitpad=-7 chroma=1x1 ctype=uint + 0: {1} + AVD: name=gray9le chroma=0:0 flags=0x0 + 0: p=0 st=2 o=0 sh=0 d=9 +gray9be: [GENERIC] ctype=uint + Legacy desc: [ba][yuvp][yuv][be] + planes=1, chroma=0:0 align=1:1 bits=9 cbits=9 + {2/16/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=gray9be chroma=0:0 flags=0x1 [be] + 0: p=0 st=2 o=0 sh=0 d=9 +grayf32: [GENERIC] ctype=float + Legacy desc: [ba][yuv][le] + planes=1, chroma=0:0 align=1:1 bits=32 cbits=32 + {4/32/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=1 compbytes=4 bitpad=0 chroma=1x1 ctype=float + 0: {1} + AVD: name=grayf32le chroma=0:0 flags=0x200 [float] + 0: p=0 st=4 o=0 sh=0 d=32 +grayf32be: [GENERIC] ctype=float + Legacy desc: [ba][yuv][be] + planes=1, chroma=0:0 align=1:1 bits=32 cbits=32 + {4/32/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=grayf32be chroma=0:0 flags=0x201 [be][float] + 0: p=0 st=4 o=0 sh=0 d=32 +mediacodec: [GENERIC] ctype=unknown + Legacy desc: [le][be][hw] + planes=0, chroma=0:0 align=1:1 bits=0 cbits=0 + {0/0/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=mediacodec chroma=0:0 flags=0x8 [hw] +mmal: ctype=unknown + Legacy desc: [le][be][hw] + planes=0, chroma=0:0 align=1:1 bits=0 cbits=0 + {0/0/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=mmal chroma=0:0 flags=0x8 [hw] +monob: [GENERIC] fcsp=rgb ctype=uint + Legacy desc: [rgb][le][be] + planes=1, chroma=0:0 align=8:1 bits=1 cbits=1 + {0/1/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=monob chroma=0:0 flags=0x4 [bs] + 0: p=0 st=1 o=0 sh=7 d=1 +monow: [GENERIC] ctype=uint + Legacy desc: [yuv][le][be] + planes=1, chroma=0:0 align=8:1 bits=1 cbits=1 + {0/1/[0:0] 0/0/[0:0] 0/0/[0:0] 0/0/[0:0] } + AVD: name=monow chroma=0:0 flags=0x4 [bs] + 0: p=0 st=1 o=0 sh=0 d=1 +nv12: ctype=uint + Legacy desc: [ba][nv][yuv][le][be] + planes=2, chroma=1:1 align=2:2 bits=8 cbits=8 + {1/8/[0:0] 2/16/[1:1] 0/0/[0:0] 0/0/[0:0] } + Regular: planes=2 compbytes=1 bitpad=0 chroma=2x2 ctype=uint + 0: {1} + 1: {2, 3} + AVD: name=nv12 chroma=1:1 flags=0x10 [planar] + 0: p=0 st=1 o=0 sh=0 d=8 + 1: p=1 st=2 o=0 sh=0 d=8 |