From 5c402a12562aaad02c572ad8dc46cdfc4f478576 Mon Sep 17 00:00:00 2001 From: meh Date: Wed, 13 May 2015 23:36:08 +0200 Subject: [PATCH] util: move SampleFormat and PixelFormat to util::format --- src/format/mod.rs | 4 +- src/util/format/mod.rs | 5 + src/util/format/pixel.rs | 718 ++++++++++++++++++ .../{sample_format.rs => format/sample.rs} | 68 +- src/util/frame/mod.rs | 15 +- src/util/mod.rs | 3 +- src/util/pixel_format.rs | 718 ------------------ 7 files changed, 767 insertions(+), 764 deletions(-) create mode 100644 src/util/format/mod.rs create mode 100644 src/util/format/pixel.rs rename src/util/{sample_format.rs => format/sample.rs} (60%) delete mode 100644 src/util/pixel_format.rs diff --git a/src/format/mod.rs b/src/format/mod.rs index c63c30b..129ae70 100644 --- a/src/format/mod.rs +++ b/src/format/mod.rs @@ -1,5 +1,5 @@ -pub use ::util::sample_format::SampleFormat as Sample; -pub use ::util::pixel_format::PixelFormat as Pixel; +pub use ::util::format::Sample; +pub use ::util::format::Pixel; pub mod stream; diff --git a/src/util/format/mod.rs b/src/util/format/mod.rs new file mode 100644 index 0000000..3f3cadb --- /dev/null +++ b/src/util/format/mod.rs @@ -0,0 +1,5 @@ +pub mod sample; +pub use self::sample::Sample; + +pub mod pixel; +pub use self::pixel::Pixel; diff --git a/src/util/format/pixel.rs b/src/util/format/pixel.rs new file mode 100644 index 0000000..eea4b8c --- /dev/null +++ b/src/util/format/pixel.rs @@ -0,0 +1,718 @@ +use ffi::*; + +#[derive(Eq, PartialEq, Copy, Clone, Debug)] +pub enum Pixel { + 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 Pixel { + fn from(value: AVPixelFormat) -> Self { + match value { + AV_PIX_FMT_NONE => Pixel::None, + + AV_PIX_FMT_YUV420P => Pixel::YUV420P, + AV_PIX_FMT_YUYV422 => Pixel::YUYV422, + AV_PIX_FMT_RGB24 => Pixel::RGB24, + AV_PIX_FMT_BGR24 => Pixel::BGR24, + AV_PIX_FMT_YUV422P => Pixel::YUV422P, + AV_PIX_FMT_YUV444P => Pixel::YUV444P, + AV_PIX_FMT_YUV410P => Pixel::YUV410P, + AV_PIX_FMT_YUV411P => Pixel::YUV411P, + AV_PIX_FMT_GRAY8 => Pixel::GRAY8, + AV_PIX_FMT_MONOWHITE => Pixel::MonoWhite, + AV_PIX_FMT_MONOBLACK => Pixel::MonoBlack, + AV_PIX_FMT_PAL8 => Pixel::PAL8, + AV_PIX_FMT_YUVJ420P => Pixel::YUVJ420P, + AV_PIX_FMT_YUVJ422P => Pixel::YUVJ422P, + AV_PIX_FMT_YUVJ444P => Pixel::YUVJ444P, + AV_PIX_FMT_XVMC_MPEG2_MC => Pixel::XVMC_MPEG2_MC, + AV_PIX_FMT_XVMC_MPEG2_IDCT => Pixel::XVMC_MPEG2_IDCT, + AV_PIX_FMT_UYVY422 => Pixel::UYVY422, + AV_PIX_FMT_UYYVYY411 => Pixel::UYYVYY411, + AV_PIX_FMT_BGR8 => Pixel::BGR8, + AV_PIX_FMT_BGR4 => Pixel::BGR4, + AV_PIX_FMT_BGR4_BYTE => Pixel::BGR4_BYTE, + AV_PIX_FMT_RGB8 => Pixel::RGB8, + AV_PIX_FMT_RGB4 => Pixel::RGB4, + AV_PIX_FMT_RGB4_BYTE => Pixel::RGB4_BYTE, + AV_PIX_FMT_NV12 => Pixel::NV12, + AV_PIX_FMT_NV21 => Pixel::NV21, + + AV_PIX_FMT_ARGB => Pixel::ARGB, + AV_PIX_FMT_RGBA => Pixel::RGBA, + AV_PIX_FMT_ABGR => Pixel::ABGR, + AV_PIX_FMT_BGRA => Pixel::BGRA, + + AV_PIX_FMT_GRAY16BE => Pixel::GRAY16BE, + AV_PIX_FMT_GRAY16LE => Pixel::GRAY16LE, + AV_PIX_FMT_YUV440P => Pixel::YUV440P, + AV_PIX_FMT_YUVJ440P => Pixel::YUVJ440P, + AV_PIX_FMT_YUVA420P => Pixel::YUVA420P, + AV_PIX_FMT_VDPAU_H264 => Pixel::VDPAU_H264, + AV_PIX_FMT_VDPAU_MPEG1 => Pixel::VDPAU_MPEG1, + AV_PIX_FMT_VDPAU_MPEG2 => Pixel::VDPAU_MPEG2, + AV_PIX_FMT_VDPAU_WMV3 => Pixel::VDPAU_WMV3, + AV_PIX_FMT_VDPAU_VC1 => Pixel::VDPAU_VC1, + AV_PIX_FMT_RGB48BE => Pixel::RGB48BE, + AV_PIX_FMT_RGB48LE => Pixel::RGB48LE, + + AV_PIX_FMT_RGB565BE => Pixel::RGB565BE, + AV_PIX_FMT_RGB565LE => Pixel::RGB565LE, + AV_PIX_FMT_RGB555BE => Pixel::RGB555BE, + AV_PIX_FMT_RGB555LE => Pixel::RGB555LE, + + AV_PIX_FMT_BGR565BE => Pixel::BGR565BE, + AV_PIX_FMT_BGR565LE => Pixel::BGR565LE, + AV_PIX_FMT_BGR555BE => Pixel::BGR555BE, + AV_PIX_FMT_BGR555LE => Pixel::BGR555LE, + + AV_PIX_FMT_VAAPI_MOCO => Pixel::VAAPI_MOCO, + AV_PIX_FMT_VAAPI_IDCT => Pixel::VAAPI_IDCT, + AV_PIX_FMT_VAAPI_VLD => Pixel::VAAPI_VLD, + + AV_PIX_FMT_YUV420P16LE => Pixel::YUV420P16LE, + AV_PIX_FMT_YUV420P16BE => Pixel::YUV420P16BE, + AV_PIX_FMT_YUV422P16LE => Pixel::YUV422P16LE, + AV_PIX_FMT_YUV422P16BE => Pixel::YUV422P16BE, + AV_PIX_FMT_YUV444P16LE => Pixel::YUV444P16LE, + AV_PIX_FMT_YUV444P16BE => Pixel::YUV444P16BE, + AV_PIX_FMT_VDPAU_MPEG4 => Pixel::VDPAU_MPEG4, + AV_PIX_FMT_DXVA2_VLD => Pixel::DXVA2_VLD, + + AV_PIX_FMT_RGB444LE => Pixel::RGB444LE, + AV_PIX_FMT_RGB444BE => Pixel::RGB444BE, + AV_PIX_FMT_BGR444LE => Pixel::BGR444LE, + AV_PIX_FMT_BGR444BE => Pixel::BGR444BE, + AV_PIX_FMT_YA8 => Pixel::YA8, + + AV_PIX_FMT_BGR48BE => Pixel::BGR48BE, + AV_PIX_FMT_BGR48LE => Pixel::BGR48LE, + + AV_PIX_FMT_YUV420P9BE => Pixel::YUV420P9BE, + AV_PIX_FMT_YUV420P9LE => Pixel::YUV420P9LE, + AV_PIX_FMT_YUV420P10BE => Pixel::YUV420P10BE, + AV_PIX_FMT_YUV420P10LE => Pixel::YUV420P10LE, + AV_PIX_FMT_YUV422P10BE => Pixel::YUV422P10BE, + AV_PIX_FMT_YUV422P10LE => Pixel::YUV422P10LE, + AV_PIX_FMT_YUV444P9BE => Pixel::YUV444P9BE, + AV_PIX_FMT_YUV444P9LE => Pixel::YUV444P9LE, + AV_PIX_FMT_YUV444P10BE => Pixel::YUV444P10BE, + AV_PIX_FMT_YUV444P10LE => Pixel::YUV444P10LE, + AV_PIX_FMT_YUV422P9BE => Pixel::YUV422P9BE, + AV_PIX_FMT_YUV422P9LE => Pixel::YUV422P9LE, + AV_PIX_FMT_VDA_VLD => Pixel::VDA_VLD, + + AV_PIX_FMT_GBRP => Pixel::GBRP, + AV_PIX_FMT_GBRP9BE => Pixel::GBRP9BE, + AV_PIX_FMT_GBRP9LE => Pixel::GBRP9LE, + AV_PIX_FMT_GBRP10BE => Pixel::GBRP10BE, + AV_PIX_FMT_GBRP10LE => Pixel::GBRP10LE, + AV_PIX_FMT_GBRP16BE => Pixel::GBRP16BE, + AV_PIX_FMT_GBRP16LE => Pixel::GBRP16LE, + + AV_PIX_FMT_YUVA422P_LIBAV => Pixel::YUVA422P_LIBAV, + AV_PIX_FMT_YUVA444P_LIBAV => Pixel::YUVA444P_LIBAV, + + AV_PIX_FMT_YUVA420P9BE => Pixel::YUVA420P9BE, + AV_PIX_FMT_YUVA420P9LE => Pixel::YUVA420P9LE, + AV_PIX_FMT_YUVA422P9BE => Pixel::YUVA422P9BE, + AV_PIX_FMT_YUVA422P9LE => Pixel::YUVA422P9LE, + AV_PIX_FMT_YUVA444P9BE => Pixel::YUVA444P9BE, + AV_PIX_FMT_YUVA444P9LE => Pixel::YUVA444P9LE, + AV_PIX_FMT_YUVA420P10BE => Pixel::YUVA420P10BE, + AV_PIX_FMT_YUVA420P10LE => Pixel::YUVA420P10LE, + AV_PIX_FMT_YUVA422P10BE => Pixel::YUVA422P10BE, + AV_PIX_FMT_YUVA422P10LE => Pixel::YUVA422P10LE, + AV_PIX_FMT_YUVA444P10BE => Pixel::YUVA444P10BE, + AV_PIX_FMT_YUVA444P10LE => Pixel::YUVA444P10LE, + AV_PIX_FMT_YUVA420P16BE => Pixel::YUVA420P16BE, + AV_PIX_FMT_YUVA420P16LE => Pixel::YUVA420P16LE, + AV_PIX_FMT_YUVA422P16BE => Pixel::YUVA422P16BE, + AV_PIX_FMT_YUVA422P16LE => Pixel::YUVA422P16LE, + AV_PIX_FMT_YUVA444P16BE => Pixel::YUVA444P16BE, + AV_PIX_FMT_YUVA444P16LE => Pixel::YUVA444P16LE, + + AV_PIX_FMT_VDPAU => Pixel::VDPAU, + + AV_PIX_FMT_XYZ12LE => Pixel::XYZ12LE, + AV_PIX_FMT_XYZ12BE => Pixel::XYZ12BE, + AV_PIX_FMT_NV16 => Pixel::NV16, + AV_PIX_FMT_NV20LE => Pixel::NV20LE, + AV_PIX_FMT_NV20BE => Pixel::NV20BE, + + AV_PIX_FMT_RGBA64BE_LIBAV => Pixel::RGBA64BE_LIBAV, + AV_PIX_FMT_RGBA64LE_LIBAV => Pixel::RGBA64LE_LIBAV, + AV_PIX_FMT_BGRA64BE_LIBAV => Pixel::BGRA64BE_LIBAV, + AV_PIX_FMT_BGRA64LE_LIBAV => Pixel::BGRA64LE_LIBAV, + + AV_PIX_FMT_YVYU422 => Pixel::YVYU422, + + AV_PIX_FMT_VDA => Pixel::VDA, + + AV_PIX_FMT_YA16BE => Pixel::YA16BE, + AV_PIX_FMT_YA16LE => Pixel::YA16LE, + + AV_PIX_FMT_GBRAP_LIBAV => Pixel::GBRAP_LIBAV, + AV_PIX_FMT_GBRAP16BE_LIBAV => Pixel::GBRAP16BE_LIBAV, + AV_PIX_FMT_GBRAP16LE_LIBAV => Pixel::GBRAP16LE_LIBAV, + AV_PIX_FMT_QSV => Pixel::QSV, + + AV_PIX_FMT_0RGB => Pixel::ZRGB, + AV_PIX_FMT_RGB0 => Pixel::RGBZ, + AV_PIX_FMT_0BGR => Pixel::ZBGR, + AV_PIX_FMT_BGR0 => Pixel::BGRZ, + AV_PIX_FMT_YUVA444P => Pixel::YUVA444P, + AV_PIX_FMT_YUVA422P => Pixel::YUVA422P, + + AV_PIX_FMT_YUV420P12BE => Pixel::YUV420P12BE, + AV_PIX_FMT_YUV420P12LE => Pixel::YUV420P12LE, + AV_PIX_FMT_YUV420P14BE => Pixel::YUV420P14BE, + AV_PIX_FMT_YUV420P14LE => Pixel::YUV420P14LE, + AV_PIX_FMT_YUV422P12BE => Pixel::YUV422P12BE, + AV_PIX_FMT_YUV422P12LE => Pixel::YUV422P12LE, + AV_PIX_FMT_YUV422P14BE => Pixel::YUV422P14BE, + AV_PIX_FMT_YUV422P14LE => Pixel::YUV422P14LE, + AV_PIX_FMT_YUV444P12BE => Pixel::YUV444P12BE, + AV_PIX_FMT_YUV444P12LE => Pixel::YUV444P12LE, + AV_PIX_FMT_YUV444P14BE => Pixel::YUV444P14BE, + AV_PIX_FMT_YUV444P14LE => Pixel::YUV444P14LE, + AV_PIX_FMT_GBRP12BE => Pixel::GBRP12BE, + AV_PIX_FMT_GBRP12LE => Pixel::GBRP12LE, + AV_PIX_FMT_GBRP14BE => Pixel::GBRP14BE, + AV_PIX_FMT_GBRP14LE => Pixel::GBRP14LE, + AV_PIX_FMT_GBRAP => Pixel::GBRAP, + AV_PIX_FMT_GBRAP16BE => Pixel::GBRAP16BE, + AV_PIX_FMT_GBRAP16LE => Pixel::GBRAP16LE, + AV_PIX_FMT_YUVJ411P => Pixel::YUVJ411P, + + AV_PIX_FMT_BAYER_BGGR8 => Pixel::BAYER_BGGR8, + AV_PIX_FMT_BAYER_RGGB8 => Pixel::BAYER_RGGB8, + AV_PIX_FMT_BAYER_GBRG8 => Pixel::BAYER_GBRG8, + AV_PIX_FMT_BAYER_GRBG8 => Pixel::BAYER_GRBG8, + AV_PIX_FMT_BAYER_BGGR16LE => Pixel::BAYER_BGGR16LE, + AV_PIX_FMT_BAYER_BGGR16BE => Pixel::BAYER_BGGR16BE, + AV_PIX_FMT_BAYER_RGGB16LE => Pixel::BAYER_RGGB16LE, + AV_PIX_FMT_BAYER_RGGB16BE => Pixel::BAYER_RGGB16BE, + AV_PIX_FMT_BAYER_GBRG16LE => Pixel::BAYER_GBRG16LE, + AV_PIX_FMT_BAYER_GBRG16BE => Pixel::BAYER_GBRG16BE, + AV_PIX_FMT_BAYER_GRBG16LE => Pixel::BAYER_GRBG16LE, + AV_PIX_FMT_BAYER_GRBG16BE => Pixel::BAYER_GRBG16BE, + + AV_PIX_FMT_NB => Pixel::None + } + } +} + +impl Into for Pixel { + fn into(self) -> AVPixelFormat { + match self { + Pixel::None => AV_PIX_FMT_NONE, + + Pixel::YUV420P => AV_PIX_FMT_YUV420P, + Pixel::YUYV422 => AV_PIX_FMT_YUYV422, + Pixel::RGB24 => AV_PIX_FMT_RGB24, + Pixel::BGR24 => AV_PIX_FMT_BGR24, + Pixel::YUV422P => AV_PIX_FMT_YUV422P, + Pixel::YUV444P => AV_PIX_FMT_YUV444P, + Pixel::YUV410P => AV_PIX_FMT_YUV410P, + Pixel::YUV411P => AV_PIX_FMT_YUV411P, + Pixel::GRAY8 => AV_PIX_FMT_GRAY8, + Pixel::MonoWhite => AV_PIX_FMT_MONOWHITE, + Pixel::MonoBlack => AV_PIX_FMT_MONOBLACK, + Pixel::PAL8 => AV_PIX_FMT_PAL8, + Pixel::YUVJ420P => AV_PIX_FMT_YUVJ420P, + Pixel::YUVJ422P => AV_PIX_FMT_YUVJ422P, + Pixel::YUVJ444P => AV_PIX_FMT_YUVJ444P, + Pixel::XVMC_MPEG2_MC => AV_PIX_FMT_XVMC_MPEG2_MC, + Pixel::XVMC_MPEG2_IDCT => AV_PIX_FMT_XVMC_MPEG2_IDCT, + Pixel::UYVY422 => AV_PIX_FMT_UYVY422, + Pixel::UYYVYY411 => AV_PIX_FMT_UYYVYY411, + Pixel::BGR8 => AV_PIX_FMT_BGR8, + Pixel::BGR4 => AV_PIX_FMT_BGR4, + Pixel::BGR4_BYTE => AV_PIX_FMT_BGR4_BYTE, + Pixel::RGB8 => AV_PIX_FMT_RGB8, + Pixel::RGB4 => AV_PIX_FMT_RGB4, + Pixel::RGB4_BYTE => AV_PIX_FMT_RGB4_BYTE, + Pixel::NV12 => AV_PIX_FMT_NV12, + Pixel::NV21 => AV_PIX_FMT_NV21, + + Pixel::ARGB => AV_PIX_FMT_ARGB, + Pixel::RGBA => AV_PIX_FMT_RGBA, + Pixel::ABGR => AV_PIX_FMT_ABGR, + Pixel::BGRA => AV_PIX_FMT_BGRA, + + Pixel::GRAY16BE => AV_PIX_FMT_GRAY16BE, + Pixel::GRAY16LE => AV_PIX_FMT_GRAY16LE, + Pixel::YUV440P => AV_PIX_FMT_YUV440P, + Pixel::YUVJ440P => AV_PIX_FMT_YUVJ440P, + Pixel::YUVA420P => AV_PIX_FMT_YUVA420P, + Pixel::VDPAU_H264 => AV_PIX_FMT_VDPAU_H264, + Pixel::VDPAU_MPEG1 => AV_PIX_FMT_VDPAU_MPEG1, + Pixel::VDPAU_MPEG2 => AV_PIX_FMT_VDPAU_MPEG2, + Pixel::VDPAU_WMV3 => AV_PIX_FMT_VDPAU_WMV3, + Pixel::VDPAU_VC1 => AV_PIX_FMT_VDPAU_VC1, + Pixel::RGB48BE => AV_PIX_FMT_RGB48BE, + Pixel::RGB48LE => AV_PIX_FMT_RGB48LE, + + Pixel::RGB565BE => AV_PIX_FMT_RGB565BE, + Pixel::RGB565LE => AV_PIX_FMT_RGB565LE, + Pixel::RGB555BE => AV_PIX_FMT_RGB555BE, + Pixel::RGB555LE => AV_PIX_FMT_RGB555LE, + + Pixel::BGR565BE => AV_PIX_FMT_BGR565BE, + Pixel::BGR565LE => AV_PIX_FMT_BGR565LE, + Pixel::BGR555BE => AV_PIX_FMT_BGR555BE, + Pixel::BGR555LE => AV_PIX_FMT_BGR555LE, + + Pixel::VAAPI_MOCO => AV_PIX_FMT_VAAPI_MOCO, + Pixel::VAAPI_IDCT => AV_PIX_FMT_VAAPI_IDCT, + Pixel::VAAPI_VLD => AV_PIX_FMT_VAAPI_VLD, + + Pixel::YUV420P16LE => AV_PIX_FMT_YUV420P16LE, + Pixel::YUV420P16BE => AV_PIX_FMT_YUV420P16BE, + Pixel::YUV422P16LE => AV_PIX_FMT_YUV422P16LE, + Pixel::YUV422P16BE => AV_PIX_FMT_YUV422P16BE, + Pixel::YUV444P16LE => AV_PIX_FMT_YUV444P16LE, + Pixel::YUV444P16BE => AV_PIX_FMT_YUV444P16BE, + Pixel::VDPAU_MPEG4 => AV_PIX_FMT_VDPAU_MPEG4, + Pixel::DXVA2_VLD => AV_PIX_FMT_DXVA2_VLD, + + Pixel::RGB444LE => AV_PIX_FMT_RGB444LE, + Pixel::RGB444BE => AV_PIX_FMT_RGB444BE, + Pixel::BGR444LE => AV_PIX_FMT_BGR444LE, + Pixel::BGR444BE => AV_PIX_FMT_BGR444BE, + Pixel::YA8 => AV_PIX_FMT_YA8, + + Pixel::BGR48BE => AV_PIX_FMT_BGR48BE, + Pixel::BGR48LE => AV_PIX_FMT_BGR48LE, + + Pixel::YUV420P9BE => AV_PIX_FMT_YUV420P9BE, + Pixel::YUV420P9LE => AV_PIX_FMT_YUV420P9LE, + Pixel::YUV420P10BE => AV_PIX_FMT_YUV420P10BE, + Pixel::YUV420P10LE => AV_PIX_FMT_YUV420P10LE, + Pixel::YUV422P10BE => AV_PIX_FMT_YUV422P10BE, + Pixel::YUV422P10LE => AV_PIX_FMT_YUV422P10LE, + Pixel::YUV444P9BE => AV_PIX_FMT_YUV444P9BE, + Pixel::YUV444P9LE => AV_PIX_FMT_YUV444P9LE, + Pixel::YUV444P10BE => AV_PIX_FMT_YUV444P10BE, + Pixel::YUV444P10LE => AV_PIX_FMT_YUV444P10LE, + Pixel::YUV422P9BE => AV_PIX_FMT_YUV422P9BE, + Pixel::YUV422P9LE => AV_PIX_FMT_YUV422P9LE, + Pixel::VDA_VLD => AV_PIX_FMT_VDA_VLD, + + Pixel::GBRP => AV_PIX_FMT_GBRP, + Pixel::GBRP9BE => AV_PIX_FMT_GBRP9BE, + Pixel::GBRP9LE => AV_PIX_FMT_GBRP9LE, + Pixel::GBRP10BE => AV_PIX_FMT_GBRP10BE, + Pixel::GBRP10LE => AV_PIX_FMT_GBRP10LE, + Pixel::GBRP16BE => AV_PIX_FMT_GBRP16BE, + Pixel::GBRP16LE => AV_PIX_FMT_GBRP16LE, + + Pixel::YUVA422P_LIBAV => AV_PIX_FMT_YUVA422P_LIBAV, + Pixel::YUVA444P_LIBAV => AV_PIX_FMT_YUVA444P_LIBAV, + + Pixel::YUVA420P9BE => AV_PIX_FMT_YUVA420P9BE, + Pixel::YUVA420P9LE => AV_PIX_FMT_YUVA420P9LE, + Pixel::YUVA422P9BE => AV_PIX_FMT_YUVA422P9BE, + Pixel::YUVA422P9LE => AV_PIX_FMT_YUVA422P9LE, + Pixel::YUVA444P9BE => AV_PIX_FMT_YUVA444P9BE, + Pixel::YUVA444P9LE => AV_PIX_FMT_YUVA444P9LE, + Pixel::YUVA420P10BE => AV_PIX_FMT_YUVA420P10BE, + Pixel::YUVA420P10LE => AV_PIX_FMT_YUVA420P10LE, + Pixel::YUVA422P10BE => AV_PIX_FMT_YUVA422P10BE, + Pixel::YUVA422P10LE => AV_PIX_FMT_YUVA422P10LE, + Pixel::YUVA444P10BE => AV_PIX_FMT_YUVA444P10BE, + Pixel::YUVA444P10LE => AV_PIX_FMT_YUVA444P10LE, + Pixel::YUVA420P16BE => AV_PIX_FMT_YUVA420P16BE, + Pixel::YUVA420P16LE => AV_PIX_FMT_YUVA420P16LE, + Pixel::YUVA422P16BE => AV_PIX_FMT_YUVA422P16BE, + Pixel::YUVA422P16LE => AV_PIX_FMT_YUVA422P16LE, + Pixel::YUVA444P16BE => AV_PIX_FMT_YUVA444P16BE, + Pixel::YUVA444P16LE => AV_PIX_FMT_YUVA444P16LE, + + Pixel::VDPAU => AV_PIX_FMT_VDPAU, + + Pixel::XYZ12LE => AV_PIX_FMT_XYZ12LE, + Pixel::XYZ12BE => AV_PIX_FMT_XYZ12BE, + Pixel::NV16 => AV_PIX_FMT_NV16, + Pixel::NV20LE => AV_PIX_FMT_NV20LE, + Pixel::NV20BE => AV_PIX_FMT_NV20BE, + + Pixel::RGBA64BE_LIBAV => AV_PIX_FMT_RGBA64BE_LIBAV, + Pixel::RGBA64LE_LIBAV => AV_PIX_FMT_RGBA64LE_LIBAV, + Pixel::BGRA64BE_LIBAV => AV_PIX_FMT_BGRA64BE_LIBAV, + Pixel::BGRA64LE_LIBAV => AV_PIX_FMT_BGRA64LE_LIBAV, + + Pixel::YVYU422 => AV_PIX_FMT_YVYU422, + + Pixel::VDA => AV_PIX_FMT_VDA, + + Pixel::YA16BE => AV_PIX_FMT_YA16BE, + Pixel::YA16LE => AV_PIX_FMT_YA16LE, + + Pixel::GBRAP_LIBAV => AV_PIX_FMT_GBRAP_LIBAV, + Pixel::GBRAP16BE_LIBAV => AV_PIX_FMT_GBRAP16BE_LIBAV, + Pixel::GBRAP16LE_LIBAV => AV_PIX_FMT_GBRAP16LE_LIBAV, + Pixel::QSV => AV_PIX_FMT_QSV, + + Pixel::ZRGB => AV_PIX_FMT_0RGB, + Pixel::RGBZ => AV_PIX_FMT_RGB0, + Pixel::ZBGR => AV_PIX_FMT_0BGR, + Pixel::BGRZ => AV_PIX_FMT_BGR0, + Pixel::YUVA444P => AV_PIX_FMT_YUVA444P, + Pixel::YUVA422P => AV_PIX_FMT_YUVA422P, + + Pixel::YUV420P12BE => AV_PIX_FMT_YUV420P12BE, + Pixel::YUV420P12LE => AV_PIX_FMT_YUV420P12LE, + Pixel::YUV420P14BE => AV_PIX_FMT_YUV420P14BE, + Pixel::YUV420P14LE => AV_PIX_FMT_YUV420P14LE, + Pixel::YUV422P12BE => AV_PIX_FMT_YUV422P12BE, + Pixel::YUV422P12LE => AV_PIX_FMT_YUV422P12LE, + Pixel::YUV422P14BE => AV_PIX_FMT_YUV422P14BE, + Pixel::YUV422P14LE => AV_PIX_FMT_YUV422P14LE, + Pixel::YUV444P12BE => AV_PIX_FMT_YUV444P12BE, + Pixel::YUV444P12LE => AV_PIX_FMT_YUV444P12LE, + Pixel::YUV444P14BE => AV_PIX_FMT_YUV444P14BE, + Pixel::YUV444P14LE => AV_PIX_FMT_YUV444P14LE, + Pixel::GBRP12BE => AV_PIX_FMT_GBRP12BE, + Pixel::GBRP12LE => AV_PIX_FMT_GBRP12LE, + Pixel::GBRP14BE => AV_PIX_FMT_GBRP14BE, + Pixel::GBRP14LE => AV_PIX_FMT_GBRP14LE, + Pixel::GBRAP => AV_PIX_FMT_GBRAP, + Pixel::GBRAP16BE => AV_PIX_FMT_GBRAP16BE, + Pixel::GBRAP16LE => AV_PIX_FMT_GBRAP16LE, + Pixel::YUVJ411P => AV_PIX_FMT_YUVJ411P, + + Pixel::BAYER_BGGR8 => AV_PIX_FMT_BAYER_BGGR8, + Pixel::BAYER_RGGB8 => AV_PIX_FMT_BAYER_RGGB8, + Pixel::BAYER_GBRG8 => AV_PIX_FMT_BAYER_GBRG8, + Pixel::BAYER_GRBG8 => AV_PIX_FMT_BAYER_GRBG8, + Pixel::BAYER_BGGR16LE => AV_PIX_FMT_BAYER_BGGR16LE, + Pixel::BAYER_BGGR16BE => AV_PIX_FMT_BAYER_BGGR16BE, + Pixel::BAYER_RGGB16LE => AV_PIX_FMT_BAYER_RGGB16LE, + Pixel::BAYER_RGGB16BE => AV_PIX_FMT_BAYER_RGGB16BE, + Pixel::BAYER_GBRG16LE => AV_PIX_FMT_BAYER_GBRG16LE, + Pixel::BAYER_GBRG16BE => AV_PIX_FMT_BAYER_GBRG16BE, + Pixel::BAYER_GRBG16LE => AV_PIX_FMT_BAYER_GRBG16LE, + Pixel::BAYER_GRBG16BE => AV_PIX_FMT_BAYER_GRBG16BE, + + // --- defaults + Pixel::XVMC => AV_PIX_FMT_XVMC, + Pixel::Y400A => AV_PIX_FMT_Y400A, + Pixel::GRAY8A => AV_PIX_FMT_GRAY8A, + Pixel::GBR24P => AV_PIX_FMT_GBR24P, + + Pixel::RGB32 => AV_PIX_FMT_RGB32, + Pixel::RGB32_1 => AV_PIX_FMT_RGB32_1, + Pixel::BGR32 => AV_PIX_FMT_BGR32, + Pixel::BGR32_1 => AV_PIX_FMT_BGR32_1, + Pixel::ZRGB32 => AV_PIX_FMT_0RGB32, + Pixel::ZBGR32 => AV_PIX_FMT_0BGR32, + + Pixel::GRAY16 => AV_PIX_FMT_GRAY16, + Pixel::YA16 => AV_PIX_FMT_YA16, + Pixel::RGB48 => AV_PIX_FMT_RGB48, + Pixel::RGB565 => AV_PIX_FMT_RGB565, + Pixel::RGB555 => AV_PIX_FMT_RGB555, + Pixel::RGB444 => AV_PIX_FMT_RGB444, + Pixel::BGR48 => AV_PIX_FMT_BGR48, + Pixel::BGR565 => AV_PIX_FMT_BGR565, + Pixel::BGR555 => AV_PIX_FMT_BGR555, + Pixel::BGR444 => AV_PIX_FMT_BGR444, + + Pixel::YUV420P9 => AV_PIX_FMT_YUV420P9, + Pixel::YUV422P9 => AV_PIX_FMT_YUV422P9, + Pixel::YUV444P9 => AV_PIX_FMT_YUV444P9, + Pixel::YUV420P10 => AV_PIX_FMT_YUV420P10, + Pixel::YUV422P10 => AV_PIX_FMT_YUV422P10, + Pixel::YUV444P10 => AV_PIX_FMT_YUV444P10, + Pixel::YUV420P12 => AV_PIX_FMT_YUV420P12, + Pixel::YUV422P12 => AV_PIX_FMT_YUV422P12, + Pixel::YUV444P12 => AV_PIX_FMT_YUV444P12, + Pixel::YUV420P14 => AV_PIX_FMT_YUV420P14, + Pixel::YUV422P14 => AV_PIX_FMT_YUV422P14, + Pixel::YUV444P14 => AV_PIX_FMT_YUV444P14, + Pixel::YUV420P16 => AV_PIX_FMT_YUV420P16, + Pixel::YUV422P16 => AV_PIX_FMT_YUV422P16, + Pixel::YUV444P16 => AV_PIX_FMT_YUV444P16, + + Pixel::GBRP9 => AV_PIX_FMT_GBRP9, + Pixel::GBRP10 => AV_PIX_FMT_GBRP10, + Pixel::GBRP12 => AV_PIX_FMT_GBRP12, + Pixel::GBRP14 => AV_PIX_FMT_GBRP14, + Pixel::GBRP16 => AV_PIX_FMT_GBRP16, + Pixel::GBRAP16 => AV_PIX_FMT_GBRAP16, + + Pixel::BAYER_BGGR16 => AV_PIX_FMT_BAYER_BGGR16, + Pixel::BAYER_RGGB16 => AV_PIX_FMT_BAYER_RGGB16, + Pixel::BAYER_GBRG16 => AV_PIX_FMT_BAYER_GBRG16, + Pixel::BAYER_GRBG16 => AV_PIX_FMT_BAYER_GRBG16, + + Pixel::YUVA420P9 => AV_PIX_FMT_YUVA420P9, + Pixel::YUVA422P9 => AV_PIX_FMT_YUVA422P9, + Pixel::YUVA444P9 => AV_PIX_FMT_YUVA444P9, + Pixel::YUVA420P10 => AV_PIX_FMT_YUVA420P10, + Pixel::YUVA422P10 => AV_PIX_FMT_YUVA422P10, + Pixel::YUVA444P10 => AV_PIX_FMT_YUVA444P10, + Pixel::YUVA420P16 => AV_PIX_FMT_YUVA420P16, + Pixel::YUVA422P16 => AV_PIX_FMT_YUVA422P16, + Pixel::YUVA444P16 => AV_PIX_FMT_YUVA444P16, + + Pixel::XYZ12 => AV_PIX_FMT_XYZ12, + Pixel::NV20 => AV_PIX_FMT_NV20, + } + } +} diff --git a/src/util/sample_format.rs b/src/util/format/sample.rs similarity index 60% rename from src/util/sample_format.rs rename to src/util/format/sample.rs index 7e9c4b7..3edbbc1 100644 --- a/src/util/sample_format.rs +++ b/src/util/format/sample.rs @@ -9,7 +9,7 @@ use libc::{c_int, uint8_t}; use ffi::*; #[derive(Eq, PartialEq, Copy, Clone, Debug)] -pub enum SampleFormat { +pub enum Sample { None, U8, S16, @@ -24,7 +24,7 @@ pub enum SampleFormat { DBLP, } -impl SampleFormat { +impl Sample { pub fn name(&self) -> &'static str { unsafe { from_utf8_unchecked(CStr::from_ptr(av_get_sample_fmt_name((*self).into())).to_bytes()) @@ -33,13 +33,13 @@ impl SampleFormat { pub fn packed(&self) -> Self { unsafe { - SampleFormat::from(av_get_packed_sample_fmt((*self).into())) + Sample::from(av_get_packed_sample_fmt((*self).into())) } } pub fn planar(&self) -> Self { unsafe { - SampleFormat::from(av_get_planar_sample_fmt((*self).into())) + Sample::from(av_get_planar_sample_fmt((*self).into())) } } @@ -60,56 +60,56 @@ impl SampleFormat { } } -impl From for SampleFormat { +impl From for Sample { fn from(value: AVSampleFormat) -> Self { match value { - AV_SAMPLE_FMT_NONE => SampleFormat::None, - AV_SAMPLE_FMT_U8 => SampleFormat::U8, - AV_SAMPLE_FMT_S16 => SampleFormat::S16, - AV_SAMPLE_FMT_S32 => SampleFormat::S32, - AV_SAMPLE_FMT_FLT => SampleFormat::FLT, - AV_SAMPLE_FMT_DBL => SampleFormat::DBL, + AV_SAMPLE_FMT_NONE => Sample::None, + AV_SAMPLE_FMT_U8 => Sample::U8, + AV_SAMPLE_FMT_S16 => Sample::S16, + AV_SAMPLE_FMT_S32 => Sample::S32, + AV_SAMPLE_FMT_FLT => Sample::FLT, + AV_SAMPLE_FMT_DBL => Sample::DBL, - AV_SAMPLE_FMT_U8P => SampleFormat::U8P, - AV_SAMPLE_FMT_S16P => SampleFormat::S16P, - AV_SAMPLE_FMT_S32P => SampleFormat::S32P, - AV_SAMPLE_FMT_FLTP => SampleFormat::FLTP, - AV_SAMPLE_FMT_DBLP => SampleFormat::DBLP, + AV_SAMPLE_FMT_U8P => Sample::U8P, + AV_SAMPLE_FMT_S16P => Sample::S16P, + AV_SAMPLE_FMT_S32P => Sample::S32P, + AV_SAMPLE_FMT_FLTP => Sample::FLTP, + AV_SAMPLE_FMT_DBLP => Sample::DBLP, - AV_SAMPLE_FMT_NB => SampleFormat::None + AV_SAMPLE_FMT_NB => Sample::None } } } -impl From<&'static str> for SampleFormat { +impl From<&'static str> for Sample { fn from(value: &'static str) -> Self { unsafe { - SampleFormat::from(av_get_sample_fmt(CString::new(value).unwrap().as_ptr())) + Sample::from(av_get_sample_fmt(CString::new(value).unwrap().as_ptr())) } } } -impl Into for SampleFormat { +impl Into for Sample { fn into(self) -> AVSampleFormat { match self { - SampleFormat::None => AV_SAMPLE_FMT_NONE, - SampleFormat::U8 => AV_SAMPLE_FMT_U8, - SampleFormat::S16 => AV_SAMPLE_FMT_S16, - SampleFormat::S32 => AV_SAMPLE_FMT_S32, - SampleFormat::FLT => AV_SAMPLE_FMT_FLT, - SampleFormat::DBL => AV_SAMPLE_FMT_DBL, + Sample::None => AV_SAMPLE_FMT_NONE, + Sample::U8 => AV_SAMPLE_FMT_U8, + Sample::S16 => AV_SAMPLE_FMT_S16, + Sample::S32 => AV_SAMPLE_FMT_S32, + Sample::FLT => AV_SAMPLE_FMT_FLT, + Sample::DBL => AV_SAMPLE_FMT_DBL, - SampleFormat::U8P => AV_SAMPLE_FMT_U8P, - SampleFormat::S16P => AV_SAMPLE_FMT_S16P, - SampleFormat::S32P => AV_SAMPLE_FMT_S32P, - SampleFormat::FLTP => AV_SAMPLE_FMT_FLTP, - SampleFormat::DBLP => AV_SAMPLE_FMT_DBLP, + Sample::U8P => AV_SAMPLE_FMT_U8P, + Sample::S16P => AV_SAMPLE_FMT_S16P, + Sample::S32P => AV_SAMPLE_FMT_S32P, + Sample::FLTP => AV_SAMPLE_FMT_FLTP, + Sample::DBLP => AV_SAMPLE_FMT_DBLP, } } } pub struct Buffer { - pub format: SampleFormat, + pub format: Sample, pub channels: usize, pub samples: usize, pub align: bool, @@ -119,13 +119,13 @@ pub struct Buffer { } impl Buffer { - pub fn size(format: SampleFormat, channels: usize, samples: usize, align: bool) -> usize { + pub fn size(format: Sample, channels: usize, samples: usize, align: bool) -> usize { unsafe { av_samples_get_buffer_size(ptr::null_mut(), channels as c_int, samples as c_int, format.into(), !align as c_int) as usize } } - pub fn new(format: SampleFormat, channels: usize, samples: usize, align: bool) -> Self { + pub fn new(format: Sample, channels: usize, samples: usize, align: bool) -> Self { unsafe { let mut buf = Buffer { format: format, diff --git a/src/util/frame/mod.rs b/src/util/frame/mod.rs index 7c52f99..cfd0073 100644 --- a/src/util/frame/mod.rs +++ b/src/util/frame/mod.rs @@ -8,8 +8,7 @@ use std::ops::Deref; use ffi::*; use ::{Dictionary, Rational}; -use ::util::pixel_format::PixelFormat; -use ::util::sample_format::SampleFormat; +use ::util::format; use ::picture; use ::color; @@ -163,13 +162,13 @@ impl Audio { Audio(Frame::new()) } - pub fn format(&self) -> SampleFormat { + pub fn format(&self) -> format::Sample { unsafe { if (*self.ptr).format == -1 { - SampleFormat::None + format::Sample::None } else { - SampleFormat::from(mem::transmute::<_, AVSampleFormat>(((*self.ptr).format))) + format::Sample::from(mem::transmute::<_, AVSampleFormat>(((*self.ptr).format))) } } } @@ -258,13 +257,13 @@ impl Video { Video(Frame::new()) } - pub fn format(&self) -> PixelFormat { + pub fn format(&self) -> format::Pixel { unsafe { if (*self.ptr).format == -1 { - PixelFormat::None + format::Pixel::None } else { - PixelFormat::from(mem::transmute::<_, AVPixelFormat>(((*self.ptr).format))) + format::Pixel::from(mem::transmute::<_, AVPixelFormat>(((*self.ptr).format))) } } } diff --git a/src/util/mod.rs b/src/util/mod.rs index af7eaae..3a9a29b 100644 --- a/src/util/mod.rs +++ b/src/util/mod.rs @@ -4,8 +4,7 @@ pub mod rational; pub mod media; pub mod picture; pub mod color; -pub mod sample_format; -pub mod pixel_format; +pub mod format; pub mod frame; use std::ffi::CStr; diff --git a/src/util/pixel_format.rs b/src/util/pixel_format.rs deleted file mode 100644 index 84b0626..0000000 --- a/src/util/pixel_format.rs +++ /dev/null @@ -1,718 +0,0 @@ -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, - } - } -}