From 1a9ca7a4a092c09f68996ab36b9e182fd1158da7 Mon Sep 17 00:00:00 2001 From: meh Date: Tue, 12 May 2015 03:23:29 +0200 Subject: [PATCH] util/pixel_format: add PixelFormat --- src/lib.rs | 1 + src/util/mod.rs | 1 + src/util/pixel_format.rs | 718 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 720 insertions(+) create mode 100644 src/util/pixel_format.rs diff --git a/src/lib.rs b/src/lib.rs index 9264247..fe07444 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -13,3 +13,4 @@ pub use util::color_space::ColorSpace; pub use util::color_range::ColorRange; pub use util::media; pub use util::sample_format::SampleFormat; +pub use util::pixel_format::PixelFormat; diff --git a/src/util/mod.rs b/src/util/mod.rs index ed834e6..a181019 100644 --- a/src/util/mod.rs +++ b/src/util/mod.rs @@ -5,6 +5,7 @@ pub mod media; pub mod color_space; pub mod color_range; pub mod sample_format; +pub mod pixel_format; use std::ffi::CStr; use std::str::from_utf8_unchecked; diff --git a/src/util/pixel_format.rs b/src/util/pixel_format.rs new file mode 100644 index 0000000..84b0626 --- /dev/null +++ b/src/util/pixel_format.rs @@ -0,0 +1,718 @@ +use ffi::*; + +#[derive(Eq, PartialEq, Copy, Clone, Debug)] +pub enum PixelFormat { + None, + + YUV420P, + YUYV422, + RGB24, + BGR24, + YUV422P, + YUV444P, + YUV410P, + YUV411P, + GRAY8, + MonoWhite, + MonoBlack, + PAL8, + YUVJ420P, + YUVJ422P, + YUVJ444P, + XVMC_MPEG2_MC, + XVMC_MPEG2_IDCT, + UYVY422, + UYYVYY411, + BGR8, + BGR4, + BGR4_BYTE, + RGB8, + RGB4, + RGB4_BYTE, + NV12, + NV21, + + ARGB, + RGBA, + ABGR, + BGRA, + + GRAY16BE, + GRAY16LE, + YUV440P, + YUVJ440P, + YUVA420P, + VDPAU_H264, + VDPAU_MPEG1, + VDPAU_MPEG2, + VDPAU_WMV3, + VDPAU_VC1, + RGB48BE, + RGB48LE, + + RGB565BE, + RGB565LE, + RGB555BE, + RGB555LE, + + BGR565BE, + BGR565LE, + BGR555BE, + BGR555LE, + + VAAPI_MOCO, + VAAPI_IDCT, + VAAPI_VLD, + + YUV420P16LE, + YUV420P16BE, + YUV422P16LE, + YUV422P16BE, + YUV444P16LE, + YUV444P16BE, + VDPAU_MPEG4, + DXVA2_VLD, + + RGB444LE, + RGB444BE, + BGR444LE, + BGR444BE, + YA8, + + BGR48BE, + BGR48LE, + + YUV420P9BE, + YUV420P9LE, + YUV420P10BE, + YUV420P10LE, + YUV422P10BE, + YUV422P10LE, + YUV444P9BE, + YUV444P9LE, + YUV444P10BE, + YUV444P10LE, + YUV422P9BE, + YUV422P9LE, + VDA_VLD, + + GBRP, + GBRP9BE, + GBRP9LE, + GBRP10BE, + GBRP10LE, + GBRP16BE, + GBRP16LE, + + YUVA422P_LIBAV, + YUVA444P_LIBAV, + + YUVA420P9BE, + YUVA420P9LE, + YUVA422P9BE, + YUVA422P9LE, + YUVA444P9BE, + YUVA444P9LE, + YUVA420P10BE, + YUVA420P10LE, + YUVA422P10BE, + YUVA422P10LE, + YUVA444P10BE, + YUVA444P10LE, + YUVA420P16BE, + YUVA420P16LE, + YUVA422P16BE, + YUVA422P16LE, + YUVA444P16BE, + YUVA444P16LE, + + VDPAU, + + XYZ12LE, + XYZ12BE, + NV16, + NV20LE, + NV20BE, + + RGBA64BE_LIBAV, + RGBA64LE_LIBAV, + BGRA64BE_LIBAV, + BGRA64LE_LIBAV, + + YVYU422, + + VDA, + + YA16BE, + YA16LE, + + GBRAP_LIBAV, + GBRAP16BE_LIBAV, + GBRAP16LE_LIBAV, + QSV, + + ZRGB, + RGBZ, + ZBGR, + BGRZ, + YUVA444P, + YUVA422P, + + YUV420P12BE, + YUV420P12LE, + YUV420P14BE, + YUV420P14LE, + YUV422P12BE, + YUV422P12LE, + YUV422P14BE, + YUV422P14LE, + YUV444P12BE, + YUV444P12LE, + YUV444P14BE, + YUV444P14LE, + GBRP12BE, + GBRP12LE, + GBRP14BE, + GBRP14LE, + GBRAP, + GBRAP16BE, + GBRAP16LE, + YUVJ411P, + + BAYER_BGGR8, + BAYER_RGGB8, + BAYER_GBRG8, + BAYER_GRBG8, + BAYER_BGGR16LE, + BAYER_BGGR16BE, + BAYER_RGGB16LE, + BAYER_RGGB16BE, + BAYER_GBRG16LE, + BAYER_GBRG16BE, + BAYER_GRBG16LE, + BAYER_GRBG16BE, + + // --- defaults + XVMC, + Y400A, + GRAY8A, + GBR24P, + + RGB32, + RGB32_1, + BGR32, + BGR32_1, + ZRGB32, + ZBGR32, + + GRAY16, + YA16, + RGB48, + RGB565, + RGB555, + RGB444, + BGR48, + BGR565, + BGR555, + BGR444, + + YUV420P9, + YUV422P9, + YUV444P9, + YUV420P10, + YUV422P10, + YUV444P10, + YUV420P12, + YUV422P12, + YUV444P12, + YUV420P14, + YUV422P14, + YUV444P14, + YUV420P16, + YUV422P16, + YUV444P16, + + GBRP9, + GBRP10, + GBRP12, + GBRP14, + GBRP16, + GBRAP16, + + BAYER_BGGR16, + BAYER_RGGB16, + BAYER_GBRG16, + BAYER_GRBG16, + + YUVA420P9, + YUVA422P9, + YUVA444P9, + YUVA420P10, + YUVA422P10, + YUVA444P10, + YUVA420P16, + YUVA422P16, + YUVA444P16, + + XYZ12, + NV20, +} + +impl From for PixelFormat { + fn from(value: AVPixelFormat) -> Self { + match value { + AV_PIX_FMT_NONE => PixelFormat::None, + + AV_PIX_FMT_YUV420P => PixelFormat::YUV420P, + AV_PIX_FMT_YUYV422 => PixelFormat::YUYV422, + AV_PIX_FMT_RGB24 => PixelFormat::RGB24, + AV_PIX_FMT_BGR24 => PixelFormat::BGR24, + AV_PIX_FMT_YUV422P => PixelFormat::YUV422P, + AV_PIX_FMT_YUV444P => PixelFormat::YUV444P, + AV_PIX_FMT_YUV410P => PixelFormat::YUV410P, + AV_PIX_FMT_YUV411P => PixelFormat::YUV411P, + AV_PIX_FMT_GRAY8 => PixelFormat::GRAY8, + AV_PIX_FMT_MONOWHITE => PixelFormat::MonoWhite, + AV_PIX_FMT_MONOBLACK => PixelFormat::MonoBlack, + AV_PIX_FMT_PAL8 => PixelFormat::PAL8, + AV_PIX_FMT_YUVJ420P => PixelFormat::YUVJ420P, + AV_PIX_FMT_YUVJ422P => PixelFormat::YUVJ422P, + AV_PIX_FMT_YUVJ444P => PixelFormat::YUVJ444P, + AV_PIX_FMT_XVMC_MPEG2_MC => PixelFormat::XVMC_MPEG2_MC, + AV_PIX_FMT_XVMC_MPEG2_IDCT => PixelFormat::XVMC_MPEG2_IDCT, + AV_PIX_FMT_UYVY422 => PixelFormat::UYVY422, + AV_PIX_FMT_UYYVYY411 => PixelFormat::UYYVYY411, + AV_PIX_FMT_BGR8 => PixelFormat::BGR8, + AV_PIX_FMT_BGR4 => PixelFormat::BGR4, + AV_PIX_FMT_BGR4_BYTE => PixelFormat::BGR4_BYTE, + AV_PIX_FMT_RGB8 => PixelFormat::RGB8, + AV_PIX_FMT_RGB4 => PixelFormat::RGB4, + AV_PIX_FMT_RGB4_BYTE => PixelFormat::RGB4_BYTE, + AV_PIX_FMT_NV12 => PixelFormat::NV12, + AV_PIX_FMT_NV21 => PixelFormat::NV21, + + AV_PIX_FMT_ARGB => PixelFormat::ARGB, + AV_PIX_FMT_RGBA => PixelFormat::RGBA, + AV_PIX_FMT_ABGR => PixelFormat::ABGR, + AV_PIX_FMT_BGRA => PixelFormat::BGRA, + + AV_PIX_FMT_GRAY16BE => PixelFormat::GRAY16BE, + AV_PIX_FMT_GRAY16LE => PixelFormat::GRAY16LE, + AV_PIX_FMT_YUV440P => PixelFormat::YUV440P, + AV_PIX_FMT_YUVJ440P => PixelFormat::YUVJ440P, + AV_PIX_FMT_YUVA420P => PixelFormat::YUVA420P, + AV_PIX_FMT_VDPAU_H264 => PixelFormat::VDPAU_H264, + AV_PIX_FMT_VDPAU_MPEG1 => PixelFormat::VDPAU_MPEG1, + AV_PIX_FMT_VDPAU_MPEG2 => PixelFormat::VDPAU_MPEG2, + AV_PIX_FMT_VDPAU_WMV3 => PixelFormat::VDPAU_WMV3, + AV_PIX_FMT_VDPAU_VC1 => PixelFormat::VDPAU_VC1, + AV_PIX_FMT_RGB48BE => PixelFormat::RGB48BE, + AV_PIX_FMT_RGB48LE => PixelFormat::RGB48LE, + + AV_PIX_FMT_RGB565BE => PixelFormat::RGB565BE, + AV_PIX_FMT_RGB565LE => PixelFormat::RGB565LE, + AV_PIX_FMT_RGB555BE => PixelFormat::RGB555BE, + AV_PIX_FMT_RGB555LE => PixelFormat::RGB555LE, + + AV_PIX_FMT_BGR565BE => PixelFormat::BGR565BE, + AV_PIX_FMT_BGR565LE => PixelFormat::BGR565LE, + AV_PIX_FMT_BGR555BE => PixelFormat::BGR555BE, + AV_PIX_FMT_BGR555LE => PixelFormat::BGR555LE, + + AV_PIX_FMT_VAAPI_MOCO => PixelFormat::VAAPI_MOCO, + AV_PIX_FMT_VAAPI_IDCT => PixelFormat::VAAPI_IDCT, + AV_PIX_FMT_VAAPI_VLD => PixelFormat::VAAPI_VLD, + + AV_PIX_FMT_YUV420P16LE => PixelFormat::YUV420P16LE, + AV_PIX_FMT_YUV420P16BE => PixelFormat::YUV420P16BE, + AV_PIX_FMT_YUV422P16LE => PixelFormat::YUV422P16LE, + AV_PIX_FMT_YUV422P16BE => PixelFormat::YUV422P16BE, + AV_PIX_FMT_YUV444P16LE => PixelFormat::YUV444P16LE, + AV_PIX_FMT_YUV444P16BE => PixelFormat::YUV444P16BE, + AV_PIX_FMT_VDPAU_MPEG4 => PixelFormat::VDPAU_MPEG4, + AV_PIX_FMT_DXVA2_VLD => PixelFormat::DXVA2_VLD, + + AV_PIX_FMT_RGB444LE => PixelFormat::RGB444LE, + AV_PIX_FMT_RGB444BE => PixelFormat::RGB444BE, + AV_PIX_FMT_BGR444LE => PixelFormat::BGR444LE, + AV_PIX_FMT_BGR444BE => PixelFormat::BGR444BE, + AV_PIX_FMT_YA8 => PixelFormat::YA8, + + AV_PIX_FMT_BGR48BE => PixelFormat::BGR48BE, + AV_PIX_FMT_BGR48LE => PixelFormat::BGR48LE, + + AV_PIX_FMT_YUV420P9BE => PixelFormat::YUV420P9BE, + AV_PIX_FMT_YUV420P9LE => PixelFormat::YUV420P9LE, + AV_PIX_FMT_YUV420P10BE => PixelFormat::YUV420P10BE, + AV_PIX_FMT_YUV420P10LE => PixelFormat::YUV420P10LE, + AV_PIX_FMT_YUV422P10BE => PixelFormat::YUV422P10BE, + AV_PIX_FMT_YUV422P10LE => PixelFormat::YUV422P10LE, + AV_PIX_FMT_YUV444P9BE => PixelFormat::YUV444P9BE, + AV_PIX_FMT_YUV444P9LE => PixelFormat::YUV444P9LE, + AV_PIX_FMT_YUV444P10BE => PixelFormat::YUV444P10BE, + AV_PIX_FMT_YUV444P10LE => PixelFormat::YUV444P10LE, + AV_PIX_FMT_YUV422P9BE => PixelFormat::YUV422P9BE, + AV_PIX_FMT_YUV422P9LE => PixelFormat::YUV422P9LE, + AV_PIX_FMT_VDA_VLD => PixelFormat::VDA_VLD, + + AV_PIX_FMT_GBRP => PixelFormat::GBRP, + AV_PIX_FMT_GBRP9BE => PixelFormat::GBRP9BE, + AV_PIX_FMT_GBRP9LE => PixelFormat::GBRP9LE, + AV_PIX_FMT_GBRP10BE => PixelFormat::GBRP10BE, + AV_PIX_FMT_GBRP10LE => PixelFormat::GBRP10LE, + AV_PIX_FMT_GBRP16BE => PixelFormat::GBRP16BE, + AV_PIX_FMT_GBRP16LE => PixelFormat::GBRP16LE, + + AV_PIX_FMT_YUVA422P_LIBAV => PixelFormat::YUVA422P_LIBAV, + AV_PIX_FMT_YUVA444P_LIBAV => PixelFormat::YUVA444P_LIBAV, + + AV_PIX_FMT_YUVA420P9BE => PixelFormat::YUVA420P9BE, + AV_PIX_FMT_YUVA420P9LE => PixelFormat::YUVA420P9LE, + AV_PIX_FMT_YUVA422P9BE => PixelFormat::YUVA422P9BE, + AV_PIX_FMT_YUVA422P9LE => PixelFormat::YUVA422P9LE, + AV_PIX_FMT_YUVA444P9BE => PixelFormat::YUVA444P9BE, + AV_PIX_FMT_YUVA444P9LE => PixelFormat::YUVA444P9LE, + AV_PIX_FMT_YUVA420P10BE => PixelFormat::YUVA420P10BE, + AV_PIX_FMT_YUVA420P10LE => PixelFormat::YUVA420P10LE, + AV_PIX_FMT_YUVA422P10BE => PixelFormat::YUVA422P10BE, + AV_PIX_FMT_YUVA422P10LE => PixelFormat::YUVA422P10LE, + AV_PIX_FMT_YUVA444P10BE => PixelFormat::YUVA444P10BE, + AV_PIX_FMT_YUVA444P10LE => PixelFormat::YUVA444P10LE, + AV_PIX_FMT_YUVA420P16BE => PixelFormat::YUVA420P16BE, + AV_PIX_FMT_YUVA420P16LE => PixelFormat::YUVA420P16LE, + AV_PIX_FMT_YUVA422P16BE => PixelFormat::YUVA422P16BE, + AV_PIX_FMT_YUVA422P16LE => PixelFormat::YUVA422P16LE, + AV_PIX_FMT_YUVA444P16BE => PixelFormat::YUVA444P16BE, + AV_PIX_FMT_YUVA444P16LE => PixelFormat::YUVA444P16LE, + + AV_PIX_FMT_VDPAU => PixelFormat::VDPAU, + + AV_PIX_FMT_XYZ12LE => PixelFormat::XYZ12LE, + AV_PIX_FMT_XYZ12BE => PixelFormat::XYZ12BE, + AV_PIX_FMT_NV16 => PixelFormat::NV16, + AV_PIX_FMT_NV20LE => PixelFormat::NV20LE, + AV_PIX_FMT_NV20BE => PixelFormat::NV20BE, + + AV_PIX_FMT_RGBA64BE_LIBAV => PixelFormat::RGBA64BE_LIBAV, + AV_PIX_FMT_RGBA64LE_LIBAV => PixelFormat::RGBA64LE_LIBAV, + AV_PIX_FMT_BGRA64BE_LIBAV => PixelFormat::BGRA64BE_LIBAV, + AV_PIX_FMT_BGRA64LE_LIBAV => PixelFormat::BGRA64LE_LIBAV, + + AV_PIX_FMT_YVYU422 => PixelFormat::YVYU422, + + AV_PIX_FMT_VDA => PixelFormat::VDA, + + AV_PIX_FMT_YA16BE => PixelFormat::YA16BE, + AV_PIX_FMT_YA16LE => PixelFormat::YA16LE, + + AV_PIX_FMT_GBRAP_LIBAV => PixelFormat::GBRAP_LIBAV, + AV_PIX_FMT_GBRAP16BE_LIBAV => PixelFormat::GBRAP16BE_LIBAV, + AV_PIX_FMT_GBRAP16LE_LIBAV => PixelFormat::GBRAP16LE_LIBAV, + AV_PIX_FMT_QSV => PixelFormat::QSV, + + AV_PIX_FMT_0RGB => PixelFormat::ZRGB, + AV_PIX_FMT_RGB0 => PixelFormat::RGBZ, + AV_PIX_FMT_0BGR => PixelFormat::ZBGR, + AV_PIX_FMT_BGR0 => PixelFormat::BGRZ, + AV_PIX_FMT_YUVA444P => PixelFormat::YUVA444P, + AV_PIX_FMT_YUVA422P => PixelFormat::YUVA422P, + + AV_PIX_FMT_YUV420P12BE => PixelFormat::YUV420P12BE, + AV_PIX_FMT_YUV420P12LE => PixelFormat::YUV420P12LE, + AV_PIX_FMT_YUV420P14BE => PixelFormat::YUV420P14BE, + AV_PIX_FMT_YUV420P14LE => PixelFormat::YUV420P14LE, + AV_PIX_FMT_YUV422P12BE => PixelFormat::YUV422P12BE, + AV_PIX_FMT_YUV422P12LE => PixelFormat::YUV422P12LE, + AV_PIX_FMT_YUV422P14BE => PixelFormat::YUV422P14BE, + AV_PIX_FMT_YUV422P14LE => PixelFormat::YUV422P14LE, + AV_PIX_FMT_YUV444P12BE => PixelFormat::YUV444P12BE, + AV_PIX_FMT_YUV444P12LE => PixelFormat::YUV444P12LE, + AV_PIX_FMT_YUV444P14BE => PixelFormat::YUV444P14BE, + AV_PIX_FMT_YUV444P14LE => PixelFormat::YUV444P14LE, + AV_PIX_FMT_GBRP12BE => PixelFormat::GBRP12BE, + AV_PIX_FMT_GBRP12LE => PixelFormat::GBRP12LE, + AV_PIX_FMT_GBRP14BE => PixelFormat::GBRP14BE, + AV_PIX_FMT_GBRP14LE => PixelFormat::GBRP14LE, + AV_PIX_FMT_GBRAP => PixelFormat::GBRAP, + AV_PIX_FMT_GBRAP16BE => PixelFormat::GBRAP16BE, + AV_PIX_FMT_GBRAP16LE => PixelFormat::GBRAP16LE, + AV_PIX_FMT_YUVJ411P => PixelFormat::YUVJ411P, + + AV_PIX_FMT_BAYER_BGGR8 => PixelFormat::BAYER_BGGR8, + AV_PIX_FMT_BAYER_RGGB8 => PixelFormat::BAYER_RGGB8, + AV_PIX_FMT_BAYER_GBRG8 => PixelFormat::BAYER_GBRG8, + AV_PIX_FMT_BAYER_GRBG8 => PixelFormat::BAYER_GRBG8, + AV_PIX_FMT_BAYER_BGGR16LE => PixelFormat::BAYER_BGGR16LE, + AV_PIX_FMT_BAYER_BGGR16BE => PixelFormat::BAYER_BGGR16BE, + AV_PIX_FMT_BAYER_RGGB16LE => PixelFormat::BAYER_RGGB16LE, + AV_PIX_FMT_BAYER_RGGB16BE => PixelFormat::BAYER_RGGB16BE, + AV_PIX_FMT_BAYER_GBRG16LE => PixelFormat::BAYER_GBRG16LE, + AV_PIX_FMT_BAYER_GBRG16BE => PixelFormat::BAYER_GBRG16BE, + AV_PIX_FMT_BAYER_GRBG16LE => PixelFormat::BAYER_GRBG16LE, + AV_PIX_FMT_BAYER_GRBG16BE => PixelFormat::BAYER_GRBG16BE, + + AV_PIX_FMT_NB => PixelFormat::None + } + } +} + +impl Into for PixelFormat { + fn into(self) -> AVPixelFormat { + match self { + PixelFormat::None => AV_PIX_FMT_NONE, + + PixelFormat::YUV420P => AV_PIX_FMT_YUV420P, + PixelFormat::YUYV422 => AV_PIX_FMT_YUYV422, + PixelFormat::RGB24 => AV_PIX_FMT_RGB24, + PixelFormat::BGR24 => AV_PIX_FMT_BGR24, + PixelFormat::YUV422P => AV_PIX_FMT_YUV422P, + PixelFormat::YUV444P => AV_PIX_FMT_YUV444P, + PixelFormat::YUV410P => AV_PIX_FMT_YUV410P, + PixelFormat::YUV411P => AV_PIX_FMT_YUV411P, + PixelFormat::GRAY8 => AV_PIX_FMT_GRAY8, + PixelFormat::MonoWhite => AV_PIX_FMT_MONOWHITE, + PixelFormat::MonoBlack => AV_PIX_FMT_MONOBLACK, + PixelFormat::PAL8 => AV_PIX_FMT_PAL8, + PixelFormat::YUVJ420P => AV_PIX_FMT_YUVJ420P, + PixelFormat::YUVJ422P => AV_PIX_FMT_YUVJ422P, + PixelFormat::YUVJ444P => AV_PIX_FMT_YUVJ444P, + PixelFormat::XVMC_MPEG2_MC => AV_PIX_FMT_XVMC_MPEG2_MC, + PixelFormat::XVMC_MPEG2_IDCT => AV_PIX_FMT_XVMC_MPEG2_IDCT, + PixelFormat::UYVY422 => AV_PIX_FMT_UYVY422, + PixelFormat::UYYVYY411 => AV_PIX_FMT_UYYVYY411, + PixelFormat::BGR8 => AV_PIX_FMT_BGR8, + PixelFormat::BGR4 => AV_PIX_FMT_BGR4, + PixelFormat::BGR4_BYTE => AV_PIX_FMT_BGR4_BYTE, + PixelFormat::RGB8 => AV_PIX_FMT_RGB8, + PixelFormat::RGB4 => AV_PIX_FMT_RGB4, + PixelFormat::RGB4_BYTE => AV_PIX_FMT_RGB4_BYTE, + PixelFormat::NV12 => AV_PIX_FMT_NV12, + PixelFormat::NV21 => AV_PIX_FMT_NV21, + + PixelFormat::ARGB => AV_PIX_FMT_ARGB, + PixelFormat::RGBA => AV_PIX_FMT_RGBA, + PixelFormat::ABGR => AV_PIX_FMT_ABGR, + PixelFormat::BGRA => AV_PIX_FMT_BGRA, + + PixelFormat::GRAY16BE => AV_PIX_FMT_GRAY16BE, + PixelFormat::GRAY16LE => AV_PIX_FMT_GRAY16LE, + PixelFormat::YUV440P => AV_PIX_FMT_YUV440P, + PixelFormat::YUVJ440P => AV_PIX_FMT_YUVJ440P, + PixelFormat::YUVA420P => AV_PIX_FMT_YUVA420P, + PixelFormat::VDPAU_H264 => AV_PIX_FMT_VDPAU_H264, + PixelFormat::VDPAU_MPEG1 => AV_PIX_FMT_VDPAU_MPEG1, + PixelFormat::VDPAU_MPEG2 => AV_PIX_FMT_VDPAU_MPEG2, + PixelFormat::VDPAU_WMV3 => AV_PIX_FMT_VDPAU_WMV3, + PixelFormat::VDPAU_VC1 => AV_PIX_FMT_VDPAU_VC1, + PixelFormat::RGB48BE => AV_PIX_FMT_RGB48BE, + PixelFormat::RGB48LE => AV_PIX_FMT_RGB48LE, + + PixelFormat::RGB565BE => AV_PIX_FMT_RGB565BE, + PixelFormat::RGB565LE => AV_PIX_FMT_RGB565LE, + PixelFormat::RGB555BE => AV_PIX_FMT_RGB555BE, + PixelFormat::RGB555LE => AV_PIX_FMT_RGB555LE, + + PixelFormat::BGR565BE => AV_PIX_FMT_BGR565BE, + PixelFormat::BGR565LE => AV_PIX_FMT_BGR565LE, + PixelFormat::BGR555BE => AV_PIX_FMT_BGR555BE, + PixelFormat::BGR555LE => AV_PIX_FMT_BGR555LE, + + PixelFormat::VAAPI_MOCO => AV_PIX_FMT_VAAPI_MOCO, + PixelFormat::VAAPI_IDCT => AV_PIX_FMT_VAAPI_IDCT, + PixelFormat::VAAPI_VLD => AV_PIX_FMT_VAAPI_VLD, + + PixelFormat::YUV420P16LE => AV_PIX_FMT_YUV420P16LE, + PixelFormat::YUV420P16BE => AV_PIX_FMT_YUV420P16BE, + PixelFormat::YUV422P16LE => AV_PIX_FMT_YUV422P16LE, + PixelFormat::YUV422P16BE => AV_PIX_FMT_YUV422P16BE, + PixelFormat::YUV444P16LE => AV_PIX_FMT_YUV444P16LE, + PixelFormat::YUV444P16BE => AV_PIX_FMT_YUV444P16BE, + PixelFormat::VDPAU_MPEG4 => AV_PIX_FMT_VDPAU_MPEG4, + PixelFormat::DXVA2_VLD => AV_PIX_FMT_DXVA2_VLD, + + PixelFormat::RGB444LE => AV_PIX_FMT_RGB444LE, + PixelFormat::RGB444BE => AV_PIX_FMT_RGB444BE, + PixelFormat::BGR444LE => AV_PIX_FMT_BGR444LE, + PixelFormat::BGR444BE => AV_PIX_FMT_BGR444BE, + PixelFormat::YA8 => AV_PIX_FMT_YA8, + + PixelFormat::BGR48BE => AV_PIX_FMT_BGR48BE, + PixelFormat::BGR48LE => AV_PIX_FMT_BGR48LE, + + PixelFormat::YUV420P9BE => AV_PIX_FMT_YUV420P9BE, + PixelFormat::YUV420P9LE => AV_PIX_FMT_YUV420P9LE, + PixelFormat::YUV420P10BE => AV_PIX_FMT_YUV420P10BE, + PixelFormat::YUV420P10LE => AV_PIX_FMT_YUV420P10LE, + PixelFormat::YUV422P10BE => AV_PIX_FMT_YUV422P10BE, + PixelFormat::YUV422P10LE => AV_PIX_FMT_YUV422P10LE, + PixelFormat::YUV444P9BE => AV_PIX_FMT_YUV444P9BE, + PixelFormat::YUV444P9LE => AV_PIX_FMT_YUV444P9LE, + PixelFormat::YUV444P10BE => AV_PIX_FMT_YUV444P10BE, + PixelFormat::YUV444P10LE => AV_PIX_FMT_YUV444P10LE, + PixelFormat::YUV422P9BE => AV_PIX_FMT_YUV422P9BE, + PixelFormat::YUV422P9LE => AV_PIX_FMT_YUV422P9LE, + PixelFormat::VDA_VLD => AV_PIX_FMT_VDA_VLD, + + PixelFormat::GBRP => AV_PIX_FMT_GBRP, + PixelFormat::GBRP9BE => AV_PIX_FMT_GBRP9BE, + PixelFormat::GBRP9LE => AV_PIX_FMT_GBRP9LE, + PixelFormat::GBRP10BE => AV_PIX_FMT_GBRP10BE, + PixelFormat::GBRP10LE => AV_PIX_FMT_GBRP10LE, + PixelFormat::GBRP16BE => AV_PIX_FMT_GBRP16BE, + PixelFormat::GBRP16LE => AV_PIX_FMT_GBRP16LE, + + PixelFormat::YUVA422P_LIBAV => AV_PIX_FMT_YUVA422P_LIBAV, + PixelFormat::YUVA444P_LIBAV => AV_PIX_FMT_YUVA444P_LIBAV, + + PixelFormat::YUVA420P9BE => AV_PIX_FMT_YUVA420P9BE, + PixelFormat::YUVA420P9LE => AV_PIX_FMT_YUVA420P9LE, + PixelFormat::YUVA422P9BE => AV_PIX_FMT_YUVA422P9BE, + PixelFormat::YUVA422P9LE => AV_PIX_FMT_YUVA422P9LE, + PixelFormat::YUVA444P9BE => AV_PIX_FMT_YUVA444P9BE, + PixelFormat::YUVA444P9LE => AV_PIX_FMT_YUVA444P9LE, + PixelFormat::YUVA420P10BE => AV_PIX_FMT_YUVA420P10BE, + PixelFormat::YUVA420P10LE => AV_PIX_FMT_YUVA420P10LE, + PixelFormat::YUVA422P10BE => AV_PIX_FMT_YUVA422P10BE, + PixelFormat::YUVA422P10LE => AV_PIX_FMT_YUVA422P10LE, + PixelFormat::YUVA444P10BE => AV_PIX_FMT_YUVA444P10BE, + PixelFormat::YUVA444P10LE => AV_PIX_FMT_YUVA444P10LE, + PixelFormat::YUVA420P16BE => AV_PIX_FMT_YUVA420P16BE, + PixelFormat::YUVA420P16LE => AV_PIX_FMT_YUVA420P16LE, + PixelFormat::YUVA422P16BE => AV_PIX_FMT_YUVA422P16BE, + PixelFormat::YUVA422P16LE => AV_PIX_FMT_YUVA422P16LE, + PixelFormat::YUVA444P16BE => AV_PIX_FMT_YUVA444P16BE, + PixelFormat::YUVA444P16LE => AV_PIX_FMT_YUVA444P16LE, + + PixelFormat::VDPAU => AV_PIX_FMT_VDPAU, + + PixelFormat::XYZ12LE => AV_PIX_FMT_XYZ12LE, + PixelFormat::XYZ12BE => AV_PIX_FMT_XYZ12BE, + PixelFormat::NV16 => AV_PIX_FMT_NV16, + PixelFormat::NV20LE => AV_PIX_FMT_NV20LE, + PixelFormat::NV20BE => AV_PIX_FMT_NV20BE, + + PixelFormat::RGBA64BE_LIBAV => AV_PIX_FMT_RGBA64BE_LIBAV, + PixelFormat::RGBA64LE_LIBAV => AV_PIX_FMT_RGBA64LE_LIBAV, + PixelFormat::BGRA64BE_LIBAV => AV_PIX_FMT_BGRA64BE_LIBAV, + PixelFormat::BGRA64LE_LIBAV => AV_PIX_FMT_BGRA64LE_LIBAV, + + PixelFormat::YVYU422 => AV_PIX_FMT_YVYU422, + + PixelFormat::VDA => AV_PIX_FMT_VDA, + + PixelFormat::YA16BE => AV_PIX_FMT_YA16BE, + PixelFormat::YA16LE => AV_PIX_FMT_YA16LE, + + PixelFormat::GBRAP_LIBAV => AV_PIX_FMT_GBRAP_LIBAV, + PixelFormat::GBRAP16BE_LIBAV => AV_PIX_FMT_GBRAP16BE_LIBAV, + PixelFormat::GBRAP16LE_LIBAV => AV_PIX_FMT_GBRAP16LE_LIBAV, + PixelFormat::QSV => AV_PIX_FMT_QSV, + + PixelFormat::ZRGB => AV_PIX_FMT_0RGB, + PixelFormat::RGBZ => AV_PIX_FMT_RGB0, + PixelFormat::ZBGR => AV_PIX_FMT_0BGR, + PixelFormat::BGRZ => AV_PIX_FMT_BGR0, + PixelFormat::YUVA444P => AV_PIX_FMT_YUVA444P, + PixelFormat::YUVA422P => AV_PIX_FMT_YUVA422P, + + PixelFormat::YUV420P12BE => AV_PIX_FMT_YUV420P12BE, + PixelFormat::YUV420P12LE => AV_PIX_FMT_YUV420P12LE, + PixelFormat::YUV420P14BE => AV_PIX_FMT_YUV420P14BE, + PixelFormat::YUV420P14LE => AV_PIX_FMT_YUV420P14LE, + PixelFormat::YUV422P12BE => AV_PIX_FMT_YUV422P12BE, + PixelFormat::YUV422P12LE => AV_PIX_FMT_YUV422P12LE, + PixelFormat::YUV422P14BE => AV_PIX_FMT_YUV422P14BE, + PixelFormat::YUV422P14LE => AV_PIX_FMT_YUV422P14LE, + PixelFormat::YUV444P12BE => AV_PIX_FMT_YUV444P12BE, + PixelFormat::YUV444P12LE => AV_PIX_FMT_YUV444P12LE, + PixelFormat::YUV444P14BE => AV_PIX_FMT_YUV444P14BE, + PixelFormat::YUV444P14LE => AV_PIX_FMT_YUV444P14LE, + PixelFormat::GBRP12BE => AV_PIX_FMT_GBRP12BE, + PixelFormat::GBRP12LE => AV_PIX_FMT_GBRP12LE, + PixelFormat::GBRP14BE => AV_PIX_FMT_GBRP14BE, + PixelFormat::GBRP14LE => AV_PIX_FMT_GBRP14LE, + PixelFormat::GBRAP => AV_PIX_FMT_GBRAP, + PixelFormat::GBRAP16BE => AV_PIX_FMT_GBRAP16BE, + PixelFormat::GBRAP16LE => AV_PIX_FMT_GBRAP16LE, + PixelFormat::YUVJ411P => AV_PIX_FMT_YUVJ411P, + + PixelFormat::BAYER_BGGR8 => AV_PIX_FMT_BAYER_BGGR8, + PixelFormat::BAYER_RGGB8 => AV_PIX_FMT_BAYER_RGGB8, + PixelFormat::BAYER_GBRG8 => AV_PIX_FMT_BAYER_GBRG8, + PixelFormat::BAYER_GRBG8 => AV_PIX_FMT_BAYER_GRBG8, + PixelFormat::BAYER_BGGR16LE => AV_PIX_FMT_BAYER_BGGR16LE, + PixelFormat::BAYER_BGGR16BE => AV_PIX_FMT_BAYER_BGGR16BE, + PixelFormat::BAYER_RGGB16LE => AV_PIX_FMT_BAYER_RGGB16LE, + PixelFormat::BAYER_RGGB16BE => AV_PIX_FMT_BAYER_RGGB16BE, + PixelFormat::BAYER_GBRG16LE => AV_PIX_FMT_BAYER_GBRG16LE, + PixelFormat::BAYER_GBRG16BE => AV_PIX_FMT_BAYER_GBRG16BE, + PixelFormat::BAYER_GRBG16LE => AV_PIX_FMT_BAYER_GRBG16LE, + PixelFormat::BAYER_GRBG16BE => AV_PIX_FMT_BAYER_GRBG16BE, + + // --- defaults + PixelFormat::XVMC => AV_PIX_FMT_XVMC, + PixelFormat::Y400A => AV_PIX_FMT_Y400A, + PixelFormat::GRAY8A => AV_PIX_FMT_GRAY8A, + PixelFormat::GBR24P => AV_PIX_FMT_GBR24P, + + PixelFormat::RGB32 => AV_PIX_FMT_RGB32, + PixelFormat::RGB32_1 => AV_PIX_FMT_RGB32_1, + PixelFormat::BGR32 => AV_PIX_FMT_BGR32, + PixelFormat::BGR32_1 => AV_PIX_FMT_BGR32_1, + PixelFormat::ZRGB32 => AV_PIX_FMT_0RGB32, + PixelFormat::ZBGR32 => AV_PIX_FMT_0BGR32, + + PixelFormat::GRAY16 => AV_PIX_FMT_GRAY16, + PixelFormat::YA16 => AV_PIX_FMT_YA16, + PixelFormat::RGB48 => AV_PIX_FMT_RGB48, + PixelFormat::RGB565 => AV_PIX_FMT_RGB565, + PixelFormat::RGB555 => AV_PIX_FMT_RGB555, + PixelFormat::RGB444 => AV_PIX_FMT_RGB444, + PixelFormat::BGR48 => AV_PIX_FMT_BGR48, + PixelFormat::BGR565 => AV_PIX_FMT_BGR565, + PixelFormat::BGR555 => AV_PIX_FMT_BGR555, + PixelFormat::BGR444 => AV_PIX_FMT_BGR444, + + PixelFormat::YUV420P9 => AV_PIX_FMT_YUV420P9, + PixelFormat::YUV422P9 => AV_PIX_FMT_YUV422P9, + PixelFormat::YUV444P9 => AV_PIX_FMT_YUV444P9, + PixelFormat::YUV420P10 => AV_PIX_FMT_YUV420P10, + PixelFormat::YUV422P10 => AV_PIX_FMT_YUV422P10, + PixelFormat::YUV444P10 => AV_PIX_FMT_YUV444P10, + PixelFormat::YUV420P12 => AV_PIX_FMT_YUV420P12, + PixelFormat::YUV422P12 => AV_PIX_FMT_YUV422P12, + PixelFormat::YUV444P12 => AV_PIX_FMT_YUV444P12, + PixelFormat::YUV420P14 => AV_PIX_FMT_YUV420P14, + PixelFormat::YUV422P14 => AV_PIX_FMT_YUV422P14, + PixelFormat::YUV444P14 => AV_PIX_FMT_YUV444P14, + PixelFormat::YUV420P16 => AV_PIX_FMT_YUV420P16, + PixelFormat::YUV422P16 => AV_PIX_FMT_YUV422P16, + PixelFormat::YUV444P16 => AV_PIX_FMT_YUV444P16, + + PixelFormat::GBRP9 => AV_PIX_FMT_GBRP9, + PixelFormat::GBRP10 => AV_PIX_FMT_GBRP10, + PixelFormat::GBRP12 => AV_PIX_FMT_GBRP12, + PixelFormat::GBRP14 => AV_PIX_FMT_GBRP14, + PixelFormat::GBRP16 => AV_PIX_FMT_GBRP16, + PixelFormat::GBRAP16 => AV_PIX_FMT_GBRAP16, + + PixelFormat::BAYER_BGGR16 => AV_PIX_FMT_BAYER_BGGR16, + PixelFormat::BAYER_RGGB16 => AV_PIX_FMT_BAYER_RGGB16, + PixelFormat::BAYER_GBRG16 => AV_PIX_FMT_BAYER_GBRG16, + PixelFormat::BAYER_GRBG16 => AV_PIX_FMT_BAYER_GRBG16, + + PixelFormat::YUVA420P9 => AV_PIX_FMT_YUVA420P9, + PixelFormat::YUVA422P9 => AV_PIX_FMT_YUVA422P9, + PixelFormat::YUVA444P9 => AV_PIX_FMT_YUVA444P9, + PixelFormat::YUVA420P10 => AV_PIX_FMT_YUVA420P10, + PixelFormat::YUVA422P10 => AV_PIX_FMT_YUVA422P10, + PixelFormat::YUVA444P10 => AV_PIX_FMT_YUVA444P10, + PixelFormat::YUVA420P16 => AV_PIX_FMT_YUVA420P16, + PixelFormat::YUVA422P16 => AV_PIX_FMT_YUVA422P16, + PixelFormat::YUVA444P16 => AV_PIX_FMT_YUVA444P16, + + PixelFormat::XYZ12 => AV_PIX_FMT_XYZ12, + PixelFormat::NV20 => AV_PIX_FMT_NV20, + } + } +}