tests/fate/libavutil: add FATE test for pixdesc

Test av_get_pix_fmt / av_get_pix_fmt_name round-trip across all
pixel formats, av_color_{range,primaries,transfer,space}_name,
av_chroma_location_name and av_alpha_mode_name round-trips
through their from_name() counterparts using a name-equivalence
check (two enum values may legitimately share the same name
string), av_chroma_location_enum_to_pos and pos_to_enum
round-trip across all valid chroma locations, and iterate every
pixel format printing av_get_padded_bits_per_pixel and
av_pix_fmt_count_planes.

Coverage for libavutil/pixdesc.c: 83.63% -> 90.03%

Numbers measured against a full FATE run. Remaining uncovered
lines are av_get_pix_fmt_string, the av_get_pix_fmt_loss /
av_find_best_pix_fmt_of_2 public wrappers and a few loss
branches, the palette branches of av_read_image_line and
av_write_image_line, and the *_ext name lookups in
av_color_{primaries,transfer}_from_name.

Signed-off-by: marcos ashton <marcosashiglesias@gmail.com>
This commit is contained in:
marcos ashton authored and michaelni committed 2026-08-27 10:54:38 +00:00
1 parent a6f573a1db
commit 2a61dbb99f
4 files changed
+452 -11

No files matched your search

+2
View File
@@ -239,6 +239,7 @@ libavutil/tests/csp.* @MarcosAsh
libavutil/tests/dovi_meta.* @MarcosAsh
libavutil/tests/hdr_dynamic_vivid_metadata.* @MarcosAsh
libavutil/tests/mastering_display_metadata.* @MarcosAsh
libavutil/tests/pixdesc.* @MarcosAsh
libavutil/tests/tdrdi.* @MarcosAsh
libavutil/tests/timestamp.* @MarcosAsh
libavutil/tests/video_hint.* @MarcosAsh
@@ -249,6 +250,7 @@ tests/ref/fate/csp @MarcosAsh
tests/ref/fate/dovi_meta @MarcosAsh
tests/ref/fate/hdr_dynamic_vivid_metadata @MarcosAsh
tests/ref/fate/mastering_display_metadata @MarcosAsh
tests/ref/fate/pixdesc @MarcosAsh
tests/ref/fate/sub-mcc.* @programmerjake
tests/ref/fate/tdrdi @MarcosAsh
tests/ref/fate/timestamp @MarcosAsh
+163 -11
View File
@@ -19,25 +19,177 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavutil/log.h"
#include "libavutil/pixdesc.c"
#include <stdio.h>
#include <string.h>
int main(void){
int i;
int err=0;
#include "libavutil/macros.h"
#include "libavutil/pixdesc.h"
#include "libavutil/pixfmt.h"
/*
* from_name() may legitimately map to a different index when two enum
* values share the same name string (e.g. AVCOL_PRI_RESERVED0 and
* AVCOL_PRI_RESERVED both use "reserved"). Accept that as long as
* name(back) equals name(i).
*/
static int check_name_equivalence(const char *name, const char *back_name)
{
return back_name && !strcmp(name, back_name);
}
static int test_pix_fmt_round_trip(void)
{
int fail = 0;
for (int i = 0; i < AV_PIX_FMT_NB; i++) {
const char *name = av_get_pix_fmt_name(i);
if (!name)
continue;
if (av_get_pix_fmt(name) != i)
fail++;
}
return fail;
}
static int test_color_range_round_trip(void)
{
int fail = 0;
for (int i = 0; i < AVCOL_RANGE_NB; i++) {
const char *name = av_color_range_name(i);
if (!name)
continue;
int back = av_color_range_from_name(name);
if (back < 0 || !check_name_equivalence(name, av_color_range_name(back)))
fail++;
}
return fail;
}
static int test_color_primaries_round_trip(void)
{
int fail = 0;
for (int i = 0; i < AVCOL_PRI_NB; i++) {
const char *name = av_color_primaries_name(i);
if (!name)
continue;
int back = av_color_primaries_from_name(name);
if (back < 0 || !check_name_equivalence(name, av_color_primaries_name(back)))
fail++;
}
return fail;
}
static int test_color_transfer_round_trip(void)
{
int fail = 0;
for (int i = 0; i < AVCOL_TRC_NB; i++) {
const char *name = av_color_transfer_name(i);
if (!name)
continue;
int back = av_color_transfer_from_name(name);
if (back < 0 || !check_name_equivalence(name, av_color_transfer_name(back)))
fail++;
}
return fail;
}
static int test_color_space_round_trip(void)
{
int fail = 0;
for (int i = 0; i < AVCOL_SPC_NB; i++) {
const char *name = av_color_space_name(i);
if (!name)
continue;
int back = av_color_space_from_name(name);
if (back < 0 || !check_name_equivalence(name, av_color_space_name(back)))
fail++;
}
return fail;
}
static int test_chroma_location_round_trip(void)
{
int fail = 0;
for (int i = 0; i < AVCHROMA_LOC_NB; i++) {
const char *name = av_chroma_location_name(i);
if (!name)
continue;
int back = av_chroma_location_from_name(name);
if (back < 0 || !check_name_equivalence(name, av_chroma_location_name(back)))
fail++;
}
return fail;
}
static int test_alpha_mode_round_trip(void)
{
int fail = 0;
for (int i = 0; i < AVALPHA_MODE_NB; i++) {
const char *name = av_alpha_mode_name(i);
if (!name)
continue;
int back = av_alpha_mode_from_name(name);
if (back < 0 || !check_name_equivalence(name, av_alpha_mode_name(back)))
fail++;
}
return fail;
}
static int test_chroma_location_pos_round_trip(void)
{
int fail = 0;
for (int i = AVCHROMA_LOC_UNSPECIFIED + 1; i < AVCHROMA_LOC_NB; i++) {
int xpos, ypos;
if (av_chroma_location_enum_to_pos(&xpos, &ypos, i) < 0) {
fail++;
continue;
}
if ((int)av_chroma_location_pos_to_enum(xpos, ypos) != i)
fail++;
}
return fail;
}
int main(void)
{
int skip = 0;
for (i=0; i<AV_PIX_FMT_NB*2; i++) {
printf("Testing av_get_pix_fmt() / av_get_pix_fmt_name() round-trip\n");
printf(" result: %s\n",
test_pix_fmt_round_trip() ? "FAIL" : "OK");
printf("\nTesting av_color_*_name() / av_color_*_from_name() round-trips\n");
printf(" av_color_range: %s\n",
test_color_range_round_trip() ? "FAIL" : "OK");
printf(" av_color_primaries: %s\n",
test_color_primaries_round_trip() ? "FAIL" : "OK");
printf(" av_color_transfer: %s\n",
test_color_transfer_round_trip() ? "FAIL" : "OK");
printf(" av_color_space: %s\n",
test_color_space_round_trip() ? "FAIL" : "OK");
printf(" av_chroma_location: %s\n",
test_chroma_location_round_trip() ? "FAIL" : "OK");
printf(" av_alpha_mode: %s\n",
test_alpha_mode_round_trip() ? "FAIL" : "OK");
printf("\nTesting av_chroma_location_enum_to_pos / pos_to_enum round-trip\n");
printf(" result: %s\n",
test_chroma_location_pos_round_trip() ? "FAIL" : "OK");
printf("\nTesting pixel format descriptors\n");
for (int i = 0; i < AV_PIX_FMT_NB * 2; i++) {
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(i);
if(!desc || !desc->name) {
skip ++;
if (!desc || !desc->name) {
skip++;
continue;
}
if (skip) {
av_log(NULL, AV_LOG_INFO, "%3d unused pixel format values\n", skip);
printf(" %3d unused pixel format values\n", skip);
skip = 0;
}
av_log(NULL, AV_LOG_INFO, "pix fmt %s avg_bpp:%d colortype:%d\n", desc->name, av_get_padded_bits_per_pixel(desc), get_color_type(desc));
printf(" pix fmt %s avg_bpp:%d planes:%d\n", desc->name,
av_get_padded_bits_per_pixel(desc),
av_pix_fmt_count_planes(i));
}
return err;
return 0;
}
+4
View File
@@ -156,6 +156,10 @@ FATE_LIBAVUTIL += fate-parseutils
fate-parseutils: libavutil/tests/parseutils$(EXESUF)
fate-parseutils: CMD = run libavutil/tests/parseutils$(EXESUF)
FATE_LIBAVUTIL += fate-pixdesc
fate-pixdesc: libavutil/tests/pixdesc$(EXESUF)
fate-pixdesc: CMD = run libavutil/tests/pixdesc$(EXESUF)
FATE_LIBAVUTIL-$(CONFIG_PIXELUTILS) += fate-pixelutils
fate-pixelutils: libavutil/tests/pixelutils$(EXESUF)
fate-pixelutils: CMD = run libavutil/tests/pixelutils$(EXESUF)
+283
View File
@@ -0,0 +1,283 @@
Testing av_get_pix_fmt() / av_get_pix_fmt_name() round-trip
result: OK
Testing av_color_*_name() / av_color_*_from_name() round-trips
av_color_range: OK
av_color_primaries: OK
av_color_transfer: OK
av_color_space: OK
av_chroma_location: OK
av_alpha_mode: OK
Testing av_chroma_location_enum_to_pos / pos_to_enum round-trip
result: OK
Testing pixel format descriptors
pix fmt yuv420p avg_bpp:12 planes:3
pix fmt yuyv422 avg_bpp:16 planes:1
pix fmt rgb24 avg_bpp:24 planes:1
pix fmt bgr24 avg_bpp:24 planes:1
pix fmt yuv422p avg_bpp:16 planes:3
pix fmt yuv444p avg_bpp:24 planes:3
pix fmt yuv410p avg_bpp:9 planes:3
pix fmt yuv411p avg_bpp:12 planes:3
pix fmt gray avg_bpp:8 planes:1
pix fmt monow avg_bpp:1 planes:1
pix fmt monob avg_bpp:1 planes:1
pix fmt pal8 avg_bpp:8 planes:1
pix fmt yuvj420p avg_bpp:12 planes:3
pix fmt yuvj422p avg_bpp:16 planes:3
pix fmt yuvj444p avg_bpp:24 planes:3
pix fmt uyvy422 avg_bpp:16 planes:1
pix fmt uyyvyy411 avg_bpp:12 planes:1
pix fmt bgr8 avg_bpp:8 planes:1
pix fmt bgr4 avg_bpp:4 planes:1
pix fmt bgr4_byte avg_bpp:8 planes:1
pix fmt rgb8 avg_bpp:8 planes:1
pix fmt rgb4 avg_bpp:4 planes:1
pix fmt rgb4_byte avg_bpp:8 planes:1
pix fmt nv12 avg_bpp:12 planes:2
pix fmt nv21 avg_bpp:12 planes:2
pix fmt argb avg_bpp:32 planes:1
pix fmt rgba avg_bpp:32 planes:1
pix fmt abgr avg_bpp:32 planes:1
pix fmt bgra avg_bpp:32 planes:1
pix fmt gray16be avg_bpp:16 planes:1
pix fmt gray16le avg_bpp:16 planes:1
pix fmt yuv440p avg_bpp:16 planes:3
pix fmt yuvj440p avg_bpp:16 planes:3
pix fmt yuva420p avg_bpp:20 planes:4
pix fmt rgb48be avg_bpp:48 planes:1
pix fmt rgb48le avg_bpp:48 planes:1
pix fmt rgb565be avg_bpp:16 planes:1
pix fmt rgb565le avg_bpp:16 planes:1
pix fmt rgb555be avg_bpp:16 planes:1
pix fmt rgb555le avg_bpp:16 planes:1
pix fmt bgr565be avg_bpp:16 planes:1
pix fmt bgr565le avg_bpp:16 planes:1
pix fmt bgr555be avg_bpp:16 planes:1
pix fmt bgr555le avg_bpp:16 planes:1
pix fmt vaapi avg_bpp:0 planes:0
pix fmt yuv420p16le avg_bpp:24 planes:3
pix fmt yuv420p16be avg_bpp:24 planes:3
pix fmt yuv422p16le avg_bpp:32 planes:3
pix fmt yuv422p16be avg_bpp:32 planes:3
pix fmt yuv444p16le avg_bpp:48 planes:3
pix fmt yuv444p16be avg_bpp:48 planes:3
pix fmt dxva2_vld avg_bpp:0 planes:0
pix fmt rgb444le avg_bpp:16 planes:1
pix fmt rgb444be avg_bpp:16 planes:1
pix fmt bgr444le avg_bpp:16 planes:1
pix fmt bgr444be avg_bpp:16 planes:1
pix fmt ya8 avg_bpp:16 planes:1
pix fmt bgr48be avg_bpp:48 planes:1
pix fmt bgr48le avg_bpp:48 planes:1
pix fmt yuv420p9be avg_bpp:24 planes:3
pix fmt yuv420p9le avg_bpp:24 planes:3
pix fmt yuv420p10be avg_bpp:24 planes:3
pix fmt yuv420p10le avg_bpp:24 planes:3
pix fmt yuv422p10be avg_bpp:32 planes:3
pix fmt yuv422p10le avg_bpp:32 planes:3
pix fmt yuv444p9be avg_bpp:48 planes:3
pix fmt yuv444p9le avg_bpp:48 planes:3
pix fmt yuv444p10be avg_bpp:48 planes:3
pix fmt yuv444p10le avg_bpp:48 planes:3
pix fmt yuv422p9be avg_bpp:32 planes:3
pix fmt yuv422p9le avg_bpp:32 planes:3
pix fmt gbrp avg_bpp:24 planes:3
pix fmt gbrp9be avg_bpp:48 planes:3
pix fmt gbrp9le avg_bpp:48 planes:3
pix fmt gbrp10be avg_bpp:48 planes:3
pix fmt gbrp10le avg_bpp:48 planes:3
pix fmt gbrp16be avg_bpp:48 planes:3
pix fmt gbrp16le avg_bpp:48 planes:3
pix fmt yuva422p avg_bpp:24 planes:4
pix fmt yuva444p avg_bpp:32 planes:4
pix fmt yuva420p9be avg_bpp:40 planes:4
pix fmt yuva420p9le avg_bpp:40 planes:4
pix fmt yuva422p9be avg_bpp:48 planes:4
pix fmt yuva422p9le avg_bpp:48 planes:4
pix fmt yuva444p9be avg_bpp:64 planes:4
pix fmt yuva444p9le avg_bpp:64 planes:4
pix fmt yuva420p10be avg_bpp:40 planes:4
pix fmt yuva420p10le avg_bpp:40 planes:4
pix fmt yuva422p10be avg_bpp:48 planes:4
pix fmt yuva422p10le avg_bpp:48 planes:4
pix fmt yuva444p10be avg_bpp:64 planes:4
pix fmt yuva444p10le avg_bpp:64 planes:4
pix fmt yuva420p16be avg_bpp:40 planes:4
pix fmt yuva420p16le avg_bpp:40 planes:4
pix fmt yuva422p16be avg_bpp:48 planes:4
pix fmt yuva422p16le avg_bpp:48 planes:4
pix fmt yuva444p16be avg_bpp:64 planes:4
pix fmt yuva444p16le avg_bpp:64 planes:4
pix fmt vdpau avg_bpp:0 planes:0
pix fmt xyz12le avg_bpp:48 planes:1
pix fmt xyz12be avg_bpp:48 planes:1
pix fmt nv16 avg_bpp:16 planes:2
pix fmt nv20le avg_bpp:32 planes:2
pix fmt nv20be avg_bpp:32 planes:2
pix fmt rgba64be avg_bpp:64 planes:1
pix fmt rgba64le avg_bpp:64 planes:1
pix fmt bgra64be avg_bpp:64 planes:1
pix fmt bgra64le avg_bpp:64 planes:1
pix fmt yvyu422 avg_bpp:16 planes:1
pix fmt ya16be avg_bpp:32 planes:1
pix fmt ya16le avg_bpp:32 planes:1
pix fmt gbrap avg_bpp:32 planes:4
pix fmt gbrap16be avg_bpp:64 planes:4
pix fmt gbrap16le avg_bpp:64 planes:4
pix fmt qsv avg_bpp:0 planes:0
pix fmt mmal avg_bpp:0 planes:0
pix fmt d3d11va_vld avg_bpp:0 planes:0
pix fmt cuda avg_bpp:0 planes:0
pix fmt 0rgb avg_bpp:32 planes:1
pix fmt rgb0 avg_bpp:32 planes:1
pix fmt 0bgr avg_bpp:32 planes:1
pix fmt bgr0 avg_bpp:32 planes:1
pix fmt yuv420p12be avg_bpp:24 planes:3
pix fmt yuv420p12le avg_bpp:24 planes:3
pix fmt yuv420p14be avg_bpp:24 planes:3
pix fmt yuv420p14le avg_bpp:24 planes:3
pix fmt yuv422p12be avg_bpp:32 planes:3
pix fmt yuv422p12le avg_bpp:32 planes:3
pix fmt yuv422p14be avg_bpp:32 planes:3
pix fmt yuv422p14le avg_bpp:32 planes:3
pix fmt yuv444p12be avg_bpp:48 planes:3
pix fmt yuv444p12le avg_bpp:48 planes:3
pix fmt yuv444p14be avg_bpp:48 planes:3
pix fmt yuv444p14le avg_bpp:48 planes:3
pix fmt gbrp12be avg_bpp:48 planes:3
pix fmt gbrp12le avg_bpp:48 planes:3
pix fmt gbrp14be avg_bpp:48 planes:3
pix fmt gbrp14le avg_bpp:48 planes:3
pix fmt yuvj411p avg_bpp:12 planes:3
pix fmt bayer_bggr8 avg_bpp:8 planes:1
pix fmt bayer_rggb8 avg_bpp:8 planes:1
pix fmt bayer_gbrg8 avg_bpp:8 planes:1
pix fmt bayer_grbg8 avg_bpp:8 planes:1
pix fmt bayer_bggr16le avg_bpp:16 planes:1
pix fmt bayer_bggr16be avg_bpp:16 planes:1
pix fmt bayer_rggb16le avg_bpp:16 planes:1
pix fmt bayer_rggb16be avg_bpp:16 planes:1
pix fmt bayer_gbrg16le avg_bpp:16 planes:1
pix fmt bayer_gbrg16be avg_bpp:16 planes:1
pix fmt bayer_grbg16le avg_bpp:16 planes:1
pix fmt bayer_grbg16be avg_bpp:16 planes:1
pix fmt yuv440p10le avg_bpp:32 planes:3
pix fmt yuv440p10be avg_bpp:32 planes:3
pix fmt yuv440p12le avg_bpp:32 planes:3
pix fmt yuv440p12be avg_bpp:32 planes:3
pix fmt ayuv64le avg_bpp:64 planes:1
pix fmt ayuv64be avg_bpp:64 planes:1
pix fmt videotoolbox_vld avg_bpp:0 planes:0
pix fmt p010le avg_bpp:24 planes:2
pix fmt p010be avg_bpp:24 planes:2
pix fmt gbrap12be avg_bpp:64 planes:4
pix fmt gbrap12le avg_bpp:64 planes:4
pix fmt gbrap10be avg_bpp:64 planes:4
pix fmt gbrap10le avg_bpp:64 planes:4
pix fmt mediacodec avg_bpp:0 planes:0
pix fmt gray12be avg_bpp:16 planes:1
pix fmt gray12le avg_bpp:16 planes:1
pix fmt gray10be avg_bpp:16 planes:1
pix fmt gray10le avg_bpp:16 planes:1
pix fmt p016le avg_bpp:24 planes:2
pix fmt p016be avg_bpp:24 planes:2
pix fmt d3d11 avg_bpp:0 planes:0
pix fmt gray9be avg_bpp:16 planes:1
pix fmt gray9le avg_bpp:16 planes:1
pix fmt gbrpf32be avg_bpp:96 planes:3
pix fmt gbrpf32le avg_bpp:96 planes:3
pix fmt gbrapf32be avg_bpp:128 planes:4
pix fmt gbrapf32le avg_bpp:128 planes:4
pix fmt drm_prime avg_bpp:0 planes:0
pix fmt opencl avg_bpp:0 planes:0
pix fmt gray14be avg_bpp:16 planes:1
pix fmt gray14le avg_bpp:16 planes:1
pix fmt grayf32be avg_bpp:32 planes:1
pix fmt grayf32le avg_bpp:32 planes:1
pix fmt yuva422p12be avg_bpp:48 planes:4
pix fmt yuva422p12le avg_bpp:48 planes:4
pix fmt yuva444p12be avg_bpp:64 planes:4
pix fmt yuva444p12le avg_bpp:64 planes:4
pix fmt nv24 avg_bpp:24 planes:2
pix fmt nv42 avg_bpp:24 planes:2
pix fmt vulkan avg_bpp:0 planes:0
pix fmt y210be avg_bpp:32 planes:1
pix fmt y210le avg_bpp:32 planes:1
pix fmt x2rgb10le avg_bpp:32 planes:1
pix fmt x2rgb10be avg_bpp:32 planes:1
pix fmt x2bgr10le avg_bpp:32 planes:1
pix fmt x2bgr10be avg_bpp:32 planes:1
pix fmt p210be avg_bpp:32 planes:2
pix fmt p210le avg_bpp:32 planes:2
pix fmt p410be avg_bpp:48 planes:2
pix fmt p410le avg_bpp:48 planes:2
pix fmt p216be avg_bpp:32 planes:2
pix fmt p216le avg_bpp:32 planes:2
pix fmt p416be avg_bpp:48 planes:2
pix fmt p416le avg_bpp:48 planes:2
pix fmt vuya avg_bpp:32 planes:1
pix fmt rgbaf16be avg_bpp:64 planes:1
pix fmt rgbaf16le avg_bpp:64 planes:1
pix fmt vuyx avg_bpp:32 planes:1
pix fmt p012le avg_bpp:24 planes:2
pix fmt p012be avg_bpp:24 planes:2
pix fmt y212be avg_bpp:32 planes:1
pix fmt y212le avg_bpp:32 planes:1
pix fmt xv30be avg_bpp:32 planes:1
pix fmt xv30le avg_bpp:32 planes:1
pix fmt xv36be avg_bpp:64 planes:1
pix fmt xv36le avg_bpp:64 planes:1
pix fmt rgbf32be avg_bpp:96 planes:1
pix fmt rgbf32le avg_bpp:96 planes:1
pix fmt rgbaf32be avg_bpp:128 planes:1
pix fmt rgbaf32le avg_bpp:128 planes:1
pix fmt p212be avg_bpp:32 planes:2
pix fmt p212le avg_bpp:32 planes:2
pix fmt p412be avg_bpp:48 planes:2
pix fmt p412le avg_bpp:48 planes:2
pix fmt gbrap14be avg_bpp:64 planes:4
pix fmt gbrap14le avg_bpp:64 planes:4
pix fmt d3d12 avg_bpp:0 planes:0
pix fmt ayuv avg_bpp:32 planes:1
pix fmt uyva avg_bpp:32 planes:1
pix fmt vyu444 avg_bpp:24 planes:1
pix fmt v30xbe avg_bpp:32 planes:1
pix fmt v30xle avg_bpp:32 planes:1
pix fmt rgbf16be avg_bpp:48 planes:1
pix fmt rgbf16le avg_bpp:48 planes:1
pix fmt rgba128be avg_bpp:128 planes:1
pix fmt rgba128le avg_bpp:128 planes:1
pix fmt rgb96be avg_bpp:96 planes:1
pix fmt rgb96le avg_bpp:96 planes:1
pix fmt y216be avg_bpp:32 planes:1
pix fmt y216le avg_bpp:32 planes:1
pix fmt xv48be avg_bpp:64 planes:1
pix fmt xv48le avg_bpp:64 planes:1
pix fmt gbrpf16be avg_bpp:48 planes:3
pix fmt gbrpf16le avg_bpp:48 planes:3
pix fmt gbrapf16be avg_bpp:64 planes:4
pix fmt gbrapf16le avg_bpp:64 planes:4
pix fmt grayf16be avg_bpp:16 planes:1
pix fmt grayf16le avg_bpp:16 planes:1
pix fmt amf avg_bpp:0 planes:0
pix fmt gray32be avg_bpp:32 planes:1
pix fmt gray32le avg_bpp:32 planes:1
pix fmt yaf32be avg_bpp:64 planes:1
pix fmt yaf32le avg_bpp:64 planes:1
pix fmt yaf16be avg_bpp:32 planes:1
pix fmt yaf16le avg_bpp:32 planes:1
pix fmt gbrap32be avg_bpp:128 planes:4
pix fmt gbrap32le avg_bpp:128 planes:4
pix fmt yuv444p10msbbe avg_bpp:48 planes:3
pix fmt yuv444p10msble avg_bpp:48 planes:3
pix fmt yuv444p12msbbe avg_bpp:48 planes:3
pix fmt yuv444p12msble avg_bpp:48 planes:3
pix fmt gbrp10msbbe avg_bpp:48 planes:3
pix fmt gbrp10msble avg_bpp:48 planes:3
pix fmt gbrp12msbbe avg_bpp:48 planes:3
pix fmt gbrp12msble avg_bpp:48 planes:3
pix fmt ohcodec avg_bpp:0 planes:0
pix fmt cuarray avg_bpp:0 planes:0