| 1 | use std::error; |
| 2 | use std::ffi::{CStr, CString, NulError}; |
| 3 | use std::fmt; |
| 4 | use std::str::{from_utf8_unchecked, FromStr}; |
| 5 | |
| 6 | use ffi::AVPixelFormat::*; |
| 7 | use ffi::*; |
| 8 | |
| 9 | #[derive (Eq, PartialEq, Copy, Clone, Debug)] |
| 10 | pub enum Pixel { |
| 11 | None, |
| 12 | |
| 13 | YUV420P, |
| 14 | YUYV422, |
| 15 | RGB24, |
| 16 | BGR24, |
| 17 | YUV422P, |
| 18 | YUV444P, |
| 19 | YUV410P, |
| 20 | YUV411P, |
| 21 | GRAY8, |
| 22 | MonoWhite, |
| 23 | MonoBlack, |
| 24 | PAL8, |
| 25 | YUVJ420P, |
| 26 | YUVJ422P, |
| 27 | YUVJ444P, |
| 28 | #[cfg (all(feature = "ff_api_xvmc" , not(feature = "ffmpeg_5_0" )))] |
| 29 | XVMC_MPEG2_MC, |
| 30 | #[cfg (all(feature = "ff_api_xvmc" , not(feature = "ffmpeg_5_0" )))] |
| 31 | XVMC_MPEG2_IDCT, |
| 32 | UYVY422, |
| 33 | UYYVYY411, |
| 34 | BGR8, |
| 35 | BGR4, |
| 36 | BGR4_BYTE, |
| 37 | RGB8, |
| 38 | RGB4, |
| 39 | RGB4_BYTE, |
| 40 | NV12, |
| 41 | NV21, |
| 42 | |
| 43 | ARGB, |
| 44 | RGBA, |
| 45 | ABGR, |
| 46 | BGRA, |
| 47 | |
| 48 | GRAY16BE, |
| 49 | GRAY16LE, |
| 50 | YUV440P, |
| 51 | YUVJ440P, |
| 52 | YUVA420P, |
| 53 | #[cfg (feature = "ff_api_vdpau" )] |
| 54 | VDPAU_H264, |
| 55 | #[cfg (feature = "ff_api_vdpau" )] |
| 56 | VDPAU_MPEG1, |
| 57 | #[cfg (feature = "ff_api_vdpau" )] |
| 58 | VDPAU_MPEG2, |
| 59 | #[cfg (feature = "ff_api_vdpau" )] |
| 60 | VDPAU_WMV3, |
| 61 | #[cfg (feature = "ff_api_vdpau" )] |
| 62 | VDPAU_VC1, |
| 63 | RGB48BE, |
| 64 | RGB48LE, |
| 65 | |
| 66 | RGB565BE, |
| 67 | RGB565LE, |
| 68 | RGB555BE, |
| 69 | RGB555LE, |
| 70 | |
| 71 | BGR565BE, |
| 72 | BGR565LE, |
| 73 | BGR555BE, |
| 74 | BGR555LE, |
| 75 | |
| 76 | #[cfg (all(feature = "ff_api_vaapi" , not(feature = "ffmpeg_5_0" )))] |
| 77 | VAAPI_MOCO, |
| 78 | #[cfg (all(feature = "ff_api_vaapi" , not(feature = "ffmpeg_5_0" )))] |
| 79 | VAAPI_IDCT, |
| 80 | #[cfg (all(feature = "ff_api_vaapi" , not(feature = "ffmpeg_5_0" )))] |
| 81 | VAAPI_VLD, |
| 82 | #[cfg (any(not(feature = "ff_api_vaapi" ), feature = "ffmpeg_5_0" ))] |
| 83 | VAAPI, |
| 84 | |
| 85 | YUV420P16LE, |
| 86 | YUV420P16BE, |
| 87 | YUV422P16LE, |
| 88 | YUV422P16BE, |
| 89 | YUV444P16LE, |
| 90 | YUV444P16BE, |
| 91 | #[cfg (feature = "ff_api_vdpau" )] |
| 92 | VDPAU_MPEG4, |
| 93 | DXVA2_VLD, |
| 94 | |
| 95 | RGB444LE, |
| 96 | RGB444BE, |
| 97 | BGR444LE, |
| 98 | BGR444BE, |
| 99 | YA8, |
| 100 | |
| 101 | BGR48BE, |
| 102 | BGR48LE, |
| 103 | |
| 104 | YUV420P9BE, |
| 105 | YUV420P9LE, |
| 106 | YUV420P10BE, |
| 107 | YUV420P10LE, |
| 108 | YUV422P10BE, |
| 109 | YUV422P10LE, |
| 110 | YUV444P9BE, |
| 111 | YUV444P9LE, |
| 112 | YUV444P10BE, |
| 113 | YUV444P10LE, |
| 114 | YUV422P9BE, |
| 115 | YUV422P9LE, |
| 116 | #[cfg (not(feature = "ffmpeg_4_0" ))] |
| 117 | VDA_VLD, |
| 118 | |
| 119 | GBRP, |
| 120 | GBRP9BE, |
| 121 | GBRP9LE, |
| 122 | GBRP10BE, |
| 123 | GBRP10LE, |
| 124 | GBRP16BE, |
| 125 | GBRP16LE, |
| 126 | |
| 127 | YUVA420P9BE, |
| 128 | YUVA420P9LE, |
| 129 | YUVA422P9BE, |
| 130 | YUVA422P9LE, |
| 131 | YUVA444P9BE, |
| 132 | YUVA444P9LE, |
| 133 | YUVA420P10BE, |
| 134 | YUVA420P10LE, |
| 135 | YUVA422P10BE, |
| 136 | YUVA422P10LE, |
| 137 | YUVA444P10BE, |
| 138 | YUVA444P10LE, |
| 139 | YUVA420P16BE, |
| 140 | YUVA420P16LE, |
| 141 | YUVA422P16BE, |
| 142 | YUVA422P16LE, |
| 143 | YUVA444P16BE, |
| 144 | YUVA444P16LE, |
| 145 | |
| 146 | VDPAU, |
| 147 | |
| 148 | XYZ12LE, |
| 149 | XYZ12BE, |
| 150 | NV16, |
| 151 | NV20LE, |
| 152 | NV20BE, |
| 153 | |
| 154 | RGBA64BE, |
| 155 | RGBA64LE, |
| 156 | BGRA64BE, |
| 157 | BGRA64LE, |
| 158 | |
| 159 | YVYU422, |
| 160 | |
| 161 | #[cfg (not(feature = "ffmpeg_4_0" ))] |
| 162 | VDA, |
| 163 | |
| 164 | YA16BE, |
| 165 | YA16LE, |
| 166 | |
| 167 | QSV, |
| 168 | MMAL, |
| 169 | |
| 170 | D3D11VA_VLD, |
| 171 | |
| 172 | CUDA, |
| 173 | |
| 174 | ZRGB, |
| 175 | RGBZ, |
| 176 | ZBGR, |
| 177 | BGRZ, |
| 178 | YUVA444P, |
| 179 | YUVA422P, |
| 180 | |
| 181 | YUV420P12BE, |
| 182 | YUV420P12LE, |
| 183 | YUV420P14BE, |
| 184 | YUV420P14LE, |
| 185 | YUV422P12BE, |
| 186 | YUV422P12LE, |
| 187 | YUV422P14BE, |
| 188 | YUV422P14LE, |
| 189 | YUV444P12BE, |
| 190 | YUV444P12LE, |
| 191 | YUV444P14BE, |
| 192 | YUV444P14LE, |
| 193 | GBRP12BE, |
| 194 | GBRP12LE, |
| 195 | GBRP14BE, |
| 196 | GBRP14LE, |
| 197 | GBRAP, |
| 198 | GBRAP16BE, |
| 199 | GBRAP16LE, |
| 200 | YUVJ411P, |
| 201 | |
| 202 | BAYER_BGGR8, |
| 203 | BAYER_RGGB8, |
| 204 | BAYER_GBRG8, |
| 205 | BAYER_GRBG8, |
| 206 | BAYER_BGGR16LE, |
| 207 | BAYER_BGGR16BE, |
| 208 | BAYER_RGGB16LE, |
| 209 | BAYER_RGGB16BE, |
| 210 | BAYER_GBRG16LE, |
| 211 | BAYER_GBRG16BE, |
| 212 | BAYER_GRBG16LE, |
| 213 | BAYER_GRBG16BE, |
| 214 | |
| 215 | YUV440P10LE, |
| 216 | YUV440P10BE, |
| 217 | YUV440P12LE, |
| 218 | YUV440P12BE, |
| 219 | AYUV64LE, |
| 220 | AYUV64BE, |
| 221 | |
| 222 | VIDEOTOOLBOX, |
| 223 | |
| 224 | // --- defaults |
| 225 | #[cfg (all(feature = "ffmpeg_4_0" , not(feature = "ffmpeg_7_0" )))] |
| 226 | XVMC, |
| 227 | |
| 228 | RGB32, |
| 229 | RGB32_1, |
| 230 | BGR32, |
| 231 | BGR32_1, |
| 232 | ZRGB32, |
| 233 | ZBGR32, |
| 234 | |
| 235 | GRAY16, |
| 236 | YA16, |
| 237 | RGB48, |
| 238 | RGB565, |
| 239 | RGB555, |
| 240 | RGB444, |
| 241 | BGR48, |
| 242 | BGR565, |
| 243 | BGR555, |
| 244 | BGR444, |
| 245 | |
| 246 | YUV420P9, |
| 247 | YUV422P9, |
| 248 | YUV444P9, |
| 249 | YUV420P10, |
| 250 | YUV422P10, |
| 251 | YUV440P10, |
| 252 | YUV444P10, |
| 253 | YUV420P12, |
| 254 | YUV422P12, |
| 255 | YUV440P12, |
| 256 | YUV444P12, |
| 257 | YUV420P14, |
| 258 | YUV422P14, |
| 259 | YUV444P14, |
| 260 | YUV420P16, |
| 261 | YUV422P16, |
| 262 | YUV444P16, |
| 263 | |
| 264 | GBRP9, |
| 265 | GBRP10, |
| 266 | GBRP12, |
| 267 | GBRP14, |
| 268 | GBRP16, |
| 269 | GBRAP16, |
| 270 | |
| 271 | BAYER_BGGR16, |
| 272 | BAYER_RGGB16, |
| 273 | BAYER_GBRG16, |
| 274 | BAYER_GRBG16, |
| 275 | |
| 276 | YUVA420P9, |
| 277 | YUVA422P9, |
| 278 | YUVA444P9, |
| 279 | YUVA420P10, |
| 280 | YUVA422P10, |
| 281 | YUVA444P10, |
| 282 | YUVA420P16, |
| 283 | YUVA422P16, |
| 284 | YUVA444P16, |
| 285 | |
| 286 | XYZ12, |
| 287 | NV20, |
| 288 | AYUV64, |
| 289 | |
| 290 | P010LE, |
| 291 | P010BE, |
| 292 | GBRAP12BE, |
| 293 | GBRAP12LE, |
| 294 | GBRAP10LE, |
| 295 | GBRAP10BE, |
| 296 | MEDIACODEC, |
| 297 | GRAY12BE, |
| 298 | GRAY12LE, |
| 299 | GRAY10BE, |
| 300 | GRAY10LE, |
| 301 | P016LE, |
| 302 | P016BE, |
| 303 | |
| 304 | D3D11, |
| 305 | GRAY9BE, |
| 306 | GRAY9LE, |
| 307 | GBRPF32BE, |
| 308 | GBRPF32LE, |
| 309 | GBRAPF32BE, |
| 310 | GBRAPF32LE, |
| 311 | DRM_PRIME, |
| 312 | |
| 313 | #[cfg (feature = "ffmpeg_4_0" )] |
| 314 | OPENCL, |
| 315 | |
| 316 | #[cfg (feature = "ffmpeg_4_1" )] |
| 317 | GRAY14BE, |
| 318 | #[cfg (feature = "ffmpeg_4_1" )] |
| 319 | GRAY14LE, |
| 320 | #[cfg (feature = "ffmpeg_4_1" )] |
| 321 | GRAYF32BE, |
| 322 | #[cfg (feature = "ffmpeg_4_1" )] |
| 323 | GRAYF32LE, |
| 324 | |
| 325 | #[cfg (feature = "ffmpeg_4_2" )] |
| 326 | YUVA422P12BE, |
| 327 | #[cfg (feature = "ffmpeg_4_2" )] |
| 328 | YUVA422P12LE, |
| 329 | #[cfg (feature = "ffmpeg_4_2" )] |
| 330 | YUVA444P12BE, |
| 331 | #[cfg (feature = "ffmpeg_4_2" )] |
| 332 | YUVA444P12LE, |
| 333 | #[cfg (feature = "ffmpeg_4_2" )] |
| 334 | NV24, |
| 335 | #[cfg (feature = "ffmpeg_4_2" )] |
| 336 | NV42, |
| 337 | |
| 338 | #[cfg (feature = "ffmpeg_4_3" )] |
| 339 | VULKAN, |
| 340 | #[cfg (feature = "ffmpeg_4_3" )] |
| 341 | Y210BE, |
| 342 | #[cfg (feature = "ffmpeg_4_3" )] |
| 343 | Y210LE, |
| 344 | |
| 345 | #[cfg (feature = "ffmpeg_4_4" )] |
| 346 | X2RGB10LE, |
| 347 | #[cfg (feature = "ffmpeg_4_4" )] |
| 348 | X2RGB10BE, |
| 349 | |
| 350 | #[cfg (feature = "ffmpeg_5_0" )] |
| 351 | X2BGR10LE, |
| 352 | #[cfg (feature = "ffmpeg_5_0" )] |
| 353 | X2BGR10BE, |
| 354 | #[cfg (feature = "ffmpeg_5_0" )] |
| 355 | P210BE, |
| 356 | #[cfg (feature = "ffmpeg_5_0" )] |
| 357 | P210LE, |
| 358 | #[cfg (feature = "ffmpeg_5_0" )] |
| 359 | P410BE, |
| 360 | #[cfg (feature = "ffmpeg_5_0" )] |
| 361 | P410LE, |
| 362 | #[cfg (feature = "ffmpeg_5_0" )] |
| 363 | P216BE, |
| 364 | #[cfg (feature = "ffmpeg_5_0" )] |
| 365 | P216LE, |
| 366 | #[cfg (feature = "ffmpeg_5_0" )] |
| 367 | P416BE, |
| 368 | #[cfg (feature = "ffmpeg_5_0" )] |
| 369 | P416LE, |
| 370 | |
| 371 | #[cfg (feature = "ffmpeg_6_0" )] |
| 372 | VUYA, |
| 373 | #[cfg (feature = "ffmpeg_6_0" )] |
| 374 | RGBAF16BE, |
| 375 | #[cfg (feature = "ffmpeg_6_0" )] |
| 376 | RGBAF16LE, |
| 377 | #[cfg (feature = "ffmpeg_6_0" )] |
| 378 | VUYX, |
| 379 | #[cfg (feature = "ffmpeg_6_0" )] |
| 380 | P012LE, |
| 381 | #[cfg (feature = "ffmpeg_6_0" )] |
| 382 | P012BE, |
| 383 | #[cfg (feature = "ffmpeg_6_0" )] |
| 384 | Y212BE, |
| 385 | #[cfg (feature = "ffmpeg_6_0" )] |
| 386 | Y212LE, |
| 387 | #[cfg (feature = "ffmpeg_6_0" )] |
| 388 | XV30BE, |
| 389 | #[cfg (feature = "ffmpeg_6_0" )] |
| 390 | XV30LE, |
| 391 | #[cfg (feature = "ffmpeg_6_0" )] |
| 392 | XV36BE, |
| 393 | #[cfg (feature = "ffmpeg_6_0" )] |
| 394 | XV36LE, |
| 395 | #[cfg (feature = "ffmpeg_6_0" )] |
| 396 | RGBF32BE, |
| 397 | #[cfg (feature = "ffmpeg_6_0" )] |
| 398 | RGBF32LE, |
| 399 | #[cfg (feature = "ffmpeg_6_0" )] |
| 400 | RGBAF32BE, |
| 401 | #[cfg (feature = "ffmpeg_6_0" )] |
| 402 | RGBAF32LE, |
| 403 | |
| 404 | #[cfg (feature = "ffmpeg_6_1" )] |
| 405 | P212BE, |
| 406 | #[cfg (feature = "ffmpeg_6_1" )] |
| 407 | P212LE, |
| 408 | #[cfg (feature = "ffmpeg_6_1" )] |
| 409 | P412BE, |
| 410 | #[cfg (feature = "ffmpeg_6_1" )] |
| 411 | P412LE, |
| 412 | #[cfg (feature = "ffmpeg_6_1" )] |
| 413 | GBRAP14BE, |
| 414 | #[cfg (feature = "ffmpeg_6_1" )] |
| 415 | GBRAP14LE, |
| 416 | |
| 417 | #[cfg (feature = "ffmpeg_7_0" )] |
| 418 | D3D12, |
| 419 | |
| 420 | #[cfg (feature = "rpi" )] |
| 421 | SAND128, |
| 422 | #[cfg (feature = "rpi" )] |
| 423 | SAND64_10, |
| 424 | #[cfg (feature = "rpi" )] |
| 425 | SAND64_16, |
| 426 | #[cfg (feature = "rpi" )] |
| 427 | RPI4_8, |
| 428 | #[cfg (feature = "rpi" )] |
| 429 | RPI4_10, |
| 430 | } |
| 431 | |
| 432 | #[derive (Clone, Copy, PartialEq, Eq)] |
| 433 | pub struct Descriptor { |
| 434 | ptr: *const AVPixFmtDescriptor, |
| 435 | } |
| 436 | |
| 437 | unsafe impl Send for Descriptor {} |
| 438 | unsafe impl Sync for Descriptor {} |
| 439 | |
| 440 | impl Pixel { |
| 441 | pub const Y400A: Pixel = Pixel::YA8; |
| 442 | pub const GRAY8A: Pixel = Pixel::YA8; |
| 443 | pub const GBR24P: Pixel = Pixel::GBRP; |
| 444 | #[cfg (all(feature = "ff_api_xvmc" , not(feature = "ffmpeg_5_0" )))] |
| 445 | pub const XVMC: Pixel = Pixel::XVMC_MPEG2_IDCT; |
| 446 | |
| 447 | pub fn descriptor(self) -> Option<Descriptor> { |
| 448 | unsafe { |
| 449 | let ptr = av_pix_fmt_desc_get(self.into()); |
| 450 | |
| 451 | ptr.as_ref().map(|ptr: *const {unknown}| Descriptor { ptr }) |
| 452 | } |
| 453 | } |
| 454 | } |
| 455 | |
| 456 | impl Descriptor { |
| 457 | pub fn as_ptr(self) -> *const AVPixFmtDescriptor { |
| 458 | self.ptr |
| 459 | } |
| 460 | |
| 461 | pub fn name(self) -> &'static str { |
| 462 | unsafe { from_utf8_unchecked(CStr::from_ptr((*self.as_ptr()).name).to_bytes()) } |
| 463 | } |
| 464 | |
| 465 | pub fn nb_components(self) -> u8 { |
| 466 | unsafe { (*self.as_ptr()).nb_components } |
| 467 | } |
| 468 | |
| 469 | pub fn log2_chroma_w(self) -> u8 { |
| 470 | unsafe { (*self.as_ptr()).log2_chroma_w } |
| 471 | } |
| 472 | |
| 473 | pub fn log2_chroma_h(self) -> u8 { |
| 474 | unsafe { (*self.as_ptr()).log2_chroma_h } |
| 475 | } |
| 476 | } |
| 477 | |
| 478 | impl From<AVPixelFormat> for Pixel { |
| 479 | #[inline ] |
| 480 | fn from(value: AVPixelFormat) -> Self { |
| 481 | match value { |
| 482 | AV_PIX_FMT_NONE => Pixel::None, |
| 483 | |
| 484 | AV_PIX_FMT_YUV420P => Pixel::YUV420P, |
| 485 | AV_PIX_FMT_YUYV422 => Pixel::YUYV422, |
| 486 | AV_PIX_FMT_RGB24 => Pixel::RGB24, |
| 487 | AV_PIX_FMT_BGR24 => Pixel::BGR24, |
| 488 | AV_PIX_FMT_YUV422P => Pixel::YUV422P, |
| 489 | AV_PIX_FMT_YUV444P => Pixel::YUV444P, |
| 490 | AV_PIX_FMT_YUV410P => Pixel::YUV410P, |
| 491 | AV_PIX_FMT_YUV411P => Pixel::YUV411P, |
| 492 | AV_PIX_FMT_GRAY8 => Pixel::GRAY8, |
| 493 | AV_PIX_FMT_MONOWHITE => Pixel::MonoWhite, |
| 494 | AV_PIX_FMT_MONOBLACK => Pixel::MonoBlack, |
| 495 | AV_PIX_FMT_PAL8 => Pixel::PAL8, |
| 496 | AV_PIX_FMT_YUVJ420P => Pixel::YUVJ420P, |
| 497 | AV_PIX_FMT_YUVJ422P => Pixel::YUVJ422P, |
| 498 | AV_PIX_FMT_YUVJ444P => Pixel::YUVJ444P, |
| 499 | #[cfg (all(feature = "ffmpeg_4_0" , not(feature = "ffmpeg_7_0" )))] |
| 500 | AV_PIX_FMT_XVMC => Pixel::XVMC, |
| 501 | #[cfg (all(feature = "ff_api_xvmc" , not(feature = "ffmpeg_5_0" )))] |
| 502 | AV_PIX_FMT_XVMC_MPEG2_MC => Pixel::XVMC_MPEG2_MC, |
| 503 | #[cfg (all(feature = "ff_api_xvmc" , not(feature = "ffmpeg_5_0" )))] |
| 504 | AV_PIX_FMT_XVMC_MPEG2_IDCT => Pixel::XVMC_MPEG2_IDCT, |
| 505 | AV_PIX_FMT_UYVY422 => Pixel::UYVY422, |
| 506 | AV_PIX_FMT_UYYVYY411 => Pixel::UYYVYY411, |
| 507 | AV_PIX_FMT_BGR8 => Pixel::BGR8, |
| 508 | AV_PIX_FMT_BGR4 => Pixel::BGR4, |
| 509 | AV_PIX_FMT_BGR4_BYTE => Pixel::BGR4_BYTE, |
| 510 | AV_PIX_FMT_RGB8 => Pixel::RGB8, |
| 511 | AV_PIX_FMT_RGB4 => Pixel::RGB4, |
| 512 | AV_PIX_FMT_RGB4_BYTE => Pixel::RGB4_BYTE, |
| 513 | AV_PIX_FMT_NV12 => Pixel::NV12, |
| 514 | AV_PIX_FMT_NV21 => Pixel::NV21, |
| 515 | |
| 516 | AV_PIX_FMT_ARGB => Pixel::ARGB, |
| 517 | AV_PIX_FMT_RGBA => Pixel::RGBA, |
| 518 | AV_PIX_FMT_ABGR => Pixel::ABGR, |
| 519 | AV_PIX_FMT_BGRA => Pixel::BGRA, |
| 520 | |
| 521 | AV_PIX_FMT_GRAY16BE => Pixel::GRAY16BE, |
| 522 | AV_PIX_FMT_GRAY16LE => Pixel::GRAY16LE, |
| 523 | AV_PIX_FMT_YUV440P => Pixel::YUV440P, |
| 524 | AV_PIX_FMT_YUVJ440P => Pixel::YUVJ440P, |
| 525 | AV_PIX_FMT_YUVA420P => Pixel::YUVA420P, |
| 526 | #[cfg (feature = "ff_api_vdpau" )] |
| 527 | AV_PIX_FMT_VDPAU_H264 => Pixel::VDPAU_H264, |
| 528 | #[cfg (feature = "ff_api_vdpau" )] |
| 529 | AV_PIX_FMT_VDPAU_MPEG1 => Pixel::VDPAU_MPEG1, |
| 530 | #[cfg (feature = "ff_api_vdpau" )] |
| 531 | AV_PIX_FMT_VDPAU_MPEG2 => Pixel::VDPAU_MPEG2, |
| 532 | #[cfg (feature = "ff_api_vdpau" )] |
| 533 | AV_PIX_FMT_VDPAU_WMV3 => Pixel::VDPAU_WMV3, |
| 534 | #[cfg (feature = "ff_api_vdpau" )] |
| 535 | AV_PIX_FMT_VDPAU_VC1 => Pixel::VDPAU_VC1, |
| 536 | AV_PIX_FMT_RGB48BE => Pixel::RGB48BE, |
| 537 | AV_PIX_FMT_RGB48LE => Pixel::RGB48LE, |
| 538 | |
| 539 | AV_PIX_FMT_RGB565BE => Pixel::RGB565BE, |
| 540 | AV_PIX_FMT_RGB565LE => Pixel::RGB565LE, |
| 541 | AV_PIX_FMT_RGB555BE => Pixel::RGB555BE, |
| 542 | AV_PIX_FMT_RGB555LE => Pixel::RGB555LE, |
| 543 | |
| 544 | AV_PIX_FMT_BGR565BE => Pixel::BGR565BE, |
| 545 | AV_PIX_FMT_BGR565LE => Pixel::BGR565LE, |
| 546 | AV_PIX_FMT_BGR555BE => Pixel::BGR555BE, |
| 547 | AV_PIX_FMT_BGR555LE => Pixel::BGR555LE, |
| 548 | |
| 549 | #[cfg (all(feature = "ff_api_vaapi" , not(feature = "ffmpeg_5_0" )))] |
| 550 | AV_PIX_FMT_VAAPI_MOCO => Pixel::VAAPI_MOCO, |
| 551 | #[cfg (all(feature = "ff_api_vaapi" , not(feature = "ffmpeg_5_0" )))] |
| 552 | AV_PIX_FMT_VAAPI_IDCT => Pixel::VAAPI_IDCT, |
| 553 | #[cfg (all(feature = "ff_api_vaapi" , not(feature = "ffmpeg_5_0" )))] |
| 554 | AV_PIX_FMT_VAAPI_VLD => Pixel::VAAPI_VLD, |
| 555 | #[cfg (any(not(feature = "ff_api_vaapi" ), feature = "ffmpeg_5_0" ))] |
| 556 | AV_PIX_FMT_VAAPI => Pixel::VAAPI, |
| 557 | |
| 558 | AV_PIX_FMT_YUV420P16LE => Pixel::YUV420P16LE, |
| 559 | AV_PIX_FMT_YUV420P16BE => Pixel::YUV420P16BE, |
| 560 | AV_PIX_FMT_YUV422P16LE => Pixel::YUV422P16LE, |
| 561 | AV_PIX_FMT_YUV422P16BE => Pixel::YUV422P16BE, |
| 562 | AV_PIX_FMT_YUV444P16LE => Pixel::YUV444P16LE, |
| 563 | AV_PIX_FMT_YUV444P16BE => Pixel::YUV444P16BE, |
| 564 | #[cfg (feature = "ff_api_vdpau" )] |
| 565 | AV_PIX_FMT_VDPAU_MPEG4 => Pixel::VDPAU_MPEG4, |
| 566 | AV_PIX_FMT_DXVA2_VLD => Pixel::DXVA2_VLD, |
| 567 | |
| 568 | AV_PIX_FMT_RGB444LE => Pixel::RGB444LE, |
| 569 | AV_PIX_FMT_RGB444BE => Pixel::RGB444BE, |
| 570 | AV_PIX_FMT_BGR444LE => Pixel::BGR444LE, |
| 571 | AV_PIX_FMT_BGR444BE => Pixel::BGR444BE, |
| 572 | AV_PIX_FMT_YA8 => Pixel::YA8, |
| 573 | |
| 574 | AV_PIX_FMT_BGR48BE => Pixel::BGR48BE, |
| 575 | AV_PIX_FMT_BGR48LE => Pixel::BGR48LE, |
| 576 | |
| 577 | AV_PIX_FMT_YUV420P9BE => Pixel::YUV420P9BE, |
| 578 | AV_PIX_FMT_YUV420P9LE => Pixel::YUV420P9LE, |
| 579 | AV_PIX_FMT_YUV420P10BE => Pixel::YUV420P10BE, |
| 580 | AV_PIX_FMT_YUV420P10LE => Pixel::YUV420P10LE, |
| 581 | AV_PIX_FMT_YUV422P10BE => Pixel::YUV422P10BE, |
| 582 | AV_PIX_FMT_YUV422P10LE => Pixel::YUV422P10LE, |
| 583 | AV_PIX_FMT_YUV444P9BE => Pixel::YUV444P9BE, |
| 584 | AV_PIX_FMT_YUV444P9LE => Pixel::YUV444P9LE, |
| 585 | AV_PIX_FMT_YUV444P10BE => Pixel::YUV444P10BE, |
| 586 | AV_PIX_FMT_YUV444P10LE => Pixel::YUV444P10LE, |
| 587 | AV_PIX_FMT_YUV422P9BE => Pixel::YUV422P9BE, |
| 588 | AV_PIX_FMT_YUV422P9LE => Pixel::YUV422P9LE, |
| 589 | #[cfg (not(feature = "ffmpeg_4_0" ))] |
| 590 | AV_PIX_FMT_VDA_VLD => Pixel::VDA_VLD, |
| 591 | |
| 592 | AV_PIX_FMT_GBRP => Pixel::GBRP, |
| 593 | AV_PIX_FMT_GBRP9BE => Pixel::GBRP9BE, |
| 594 | AV_PIX_FMT_GBRP9LE => Pixel::GBRP9LE, |
| 595 | AV_PIX_FMT_GBRP10BE => Pixel::GBRP10BE, |
| 596 | AV_PIX_FMT_GBRP10LE => Pixel::GBRP10LE, |
| 597 | AV_PIX_FMT_GBRP16BE => Pixel::GBRP16BE, |
| 598 | AV_PIX_FMT_GBRP16LE => Pixel::GBRP16LE, |
| 599 | |
| 600 | AV_PIX_FMT_YUVA420P9BE => Pixel::YUVA420P9BE, |
| 601 | AV_PIX_FMT_YUVA420P9LE => Pixel::YUVA420P9LE, |
| 602 | AV_PIX_FMT_YUVA422P9BE => Pixel::YUVA422P9BE, |
| 603 | AV_PIX_FMT_YUVA422P9LE => Pixel::YUVA422P9LE, |
| 604 | AV_PIX_FMT_YUVA444P9BE => Pixel::YUVA444P9BE, |
| 605 | AV_PIX_FMT_YUVA444P9LE => Pixel::YUVA444P9LE, |
| 606 | AV_PIX_FMT_YUVA420P10BE => Pixel::YUVA420P10BE, |
| 607 | AV_PIX_FMT_YUVA420P10LE => Pixel::YUVA420P10LE, |
| 608 | AV_PIX_FMT_YUVA422P10BE => Pixel::YUVA422P10BE, |
| 609 | AV_PIX_FMT_YUVA422P10LE => Pixel::YUVA422P10LE, |
| 610 | AV_PIX_FMT_YUVA444P10BE => Pixel::YUVA444P10BE, |
| 611 | AV_PIX_FMT_YUVA444P10LE => Pixel::YUVA444P10LE, |
| 612 | AV_PIX_FMT_YUVA420P16BE => Pixel::YUVA420P16BE, |
| 613 | AV_PIX_FMT_YUVA420P16LE => Pixel::YUVA420P16LE, |
| 614 | AV_PIX_FMT_YUVA422P16BE => Pixel::YUVA422P16BE, |
| 615 | AV_PIX_FMT_YUVA422P16LE => Pixel::YUVA422P16LE, |
| 616 | AV_PIX_FMT_YUVA444P16BE => Pixel::YUVA444P16BE, |
| 617 | AV_PIX_FMT_YUVA444P16LE => Pixel::YUVA444P16LE, |
| 618 | |
| 619 | AV_PIX_FMT_VDPAU => Pixel::VDPAU, |
| 620 | |
| 621 | AV_PIX_FMT_XYZ12LE => Pixel::XYZ12LE, |
| 622 | AV_PIX_FMT_XYZ12BE => Pixel::XYZ12BE, |
| 623 | AV_PIX_FMT_NV16 => Pixel::NV16, |
| 624 | AV_PIX_FMT_NV20LE => Pixel::NV20LE, |
| 625 | AV_PIX_FMT_NV20BE => Pixel::NV20BE, |
| 626 | |
| 627 | AV_PIX_FMT_RGBA64BE => Pixel::RGBA64BE, |
| 628 | AV_PIX_FMT_RGBA64LE => Pixel::RGBA64LE, |
| 629 | AV_PIX_FMT_BGRA64BE => Pixel::BGRA64BE, |
| 630 | AV_PIX_FMT_BGRA64LE => Pixel::BGRA64LE, |
| 631 | |
| 632 | AV_PIX_FMT_YVYU422 => Pixel::YVYU422, |
| 633 | |
| 634 | #[cfg (not(feature = "ffmpeg_4_0" ))] |
| 635 | AV_PIX_FMT_VDA => Pixel::VDA, |
| 636 | |
| 637 | AV_PIX_FMT_YA16BE => Pixel::YA16BE, |
| 638 | AV_PIX_FMT_YA16LE => Pixel::YA16LE, |
| 639 | |
| 640 | AV_PIX_FMT_QSV => Pixel::QSV, |
| 641 | AV_PIX_FMT_MMAL => Pixel::MMAL, |
| 642 | |
| 643 | AV_PIX_FMT_D3D11VA_VLD => Pixel::D3D11VA_VLD, |
| 644 | |
| 645 | AV_PIX_FMT_CUDA => Pixel::CUDA, |
| 646 | |
| 647 | AV_PIX_FMT_0RGB => Pixel::ZRGB, |
| 648 | AV_PIX_FMT_RGB0 => Pixel::RGBZ, |
| 649 | AV_PIX_FMT_0BGR => Pixel::ZBGR, |
| 650 | AV_PIX_FMT_BGR0 => Pixel::BGRZ, |
| 651 | AV_PIX_FMT_YUVA444P => Pixel::YUVA444P, |
| 652 | AV_PIX_FMT_YUVA422P => Pixel::YUVA422P, |
| 653 | |
| 654 | AV_PIX_FMT_YUV420P12BE => Pixel::YUV420P12BE, |
| 655 | AV_PIX_FMT_YUV420P12LE => Pixel::YUV420P12LE, |
| 656 | AV_PIX_FMT_YUV420P14BE => Pixel::YUV420P14BE, |
| 657 | AV_PIX_FMT_YUV420P14LE => Pixel::YUV420P14LE, |
| 658 | AV_PIX_FMT_YUV422P12BE => Pixel::YUV422P12BE, |
| 659 | AV_PIX_FMT_YUV422P12LE => Pixel::YUV422P12LE, |
| 660 | AV_PIX_FMT_YUV422P14BE => Pixel::YUV422P14BE, |
| 661 | AV_PIX_FMT_YUV422P14LE => Pixel::YUV422P14LE, |
| 662 | AV_PIX_FMT_YUV444P12BE => Pixel::YUV444P12BE, |
| 663 | AV_PIX_FMT_YUV444P12LE => Pixel::YUV444P12LE, |
| 664 | AV_PIX_FMT_YUV444P14BE => Pixel::YUV444P14BE, |
| 665 | AV_PIX_FMT_YUV444P14LE => Pixel::YUV444P14LE, |
| 666 | AV_PIX_FMT_GBRP12BE => Pixel::GBRP12BE, |
| 667 | AV_PIX_FMT_GBRP12LE => Pixel::GBRP12LE, |
| 668 | AV_PIX_FMT_GBRP14BE => Pixel::GBRP14BE, |
| 669 | AV_PIX_FMT_GBRP14LE => Pixel::GBRP14LE, |
| 670 | AV_PIX_FMT_GBRAP => Pixel::GBRAP, |
| 671 | AV_PIX_FMT_GBRAP16BE => Pixel::GBRAP16BE, |
| 672 | AV_PIX_FMT_GBRAP16LE => Pixel::GBRAP16LE, |
| 673 | AV_PIX_FMT_YUVJ411P => Pixel::YUVJ411P, |
| 674 | |
| 675 | AV_PIX_FMT_BAYER_BGGR8 => Pixel::BAYER_BGGR8, |
| 676 | AV_PIX_FMT_BAYER_RGGB8 => Pixel::BAYER_RGGB8, |
| 677 | AV_PIX_FMT_BAYER_GBRG8 => Pixel::BAYER_GBRG8, |
| 678 | AV_PIX_FMT_BAYER_GRBG8 => Pixel::BAYER_GRBG8, |
| 679 | AV_PIX_FMT_BAYER_BGGR16LE => Pixel::BAYER_BGGR16LE, |
| 680 | AV_PIX_FMT_BAYER_BGGR16BE => Pixel::BAYER_BGGR16BE, |
| 681 | AV_PIX_FMT_BAYER_RGGB16LE => Pixel::BAYER_RGGB16LE, |
| 682 | AV_PIX_FMT_BAYER_RGGB16BE => Pixel::BAYER_RGGB16BE, |
| 683 | AV_PIX_FMT_BAYER_GBRG16LE => Pixel::BAYER_GBRG16LE, |
| 684 | AV_PIX_FMT_BAYER_GBRG16BE => Pixel::BAYER_GBRG16BE, |
| 685 | AV_PIX_FMT_BAYER_GRBG16LE => Pixel::BAYER_GRBG16LE, |
| 686 | AV_PIX_FMT_BAYER_GRBG16BE => Pixel::BAYER_GRBG16BE, |
| 687 | |
| 688 | AV_PIX_FMT_YUV440P10LE => Pixel::YUV440P10LE, |
| 689 | AV_PIX_FMT_YUV440P10BE => Pixel::YUV440P10BE, |
| 690 | AV_PIX_FMT_YUV440P12LE => Pixel::YUV440P12LE, |
| 691 | AV_PIX_FMT_YUV440P12BE => Pixel::YUV440P12BE, |
| 692 | AV_PIX_FMT_AYUV64LE => Pixel::AYUV64LE, |
| 693 | AV_PIX_FMT_AYUV64BE => Pixel::AYUV64BE, |
| 694 | |
| 695 | AV_PIX_FMT_VIDEOTOOLBOX => Pixel::VIDEOTOOLBOX, |
| 696 | |
| 697 | AV_PIX_FMT_P010LE => Pixel::P010LE, |
| 698 | AV_PIX_FMT_P010BE => Pixel::P010BE, |
| 699 | AV_PIX_FMT_GBRAP12BE => Pixel::GBRAP12BE, |
| 700 | AV_PIX_FMT_GBRAP12LE => Pixel::GBRAP12LE, |
| 701 | AV_PIX_FMT_GBRAP10LE => Pixel::GBRAP10LE, |
| 702 | AV_PIX_FMT_GBRAP10BE => Pixel::GBRAP10BE, |
| 703 | AV_PIX_FMT_MEDIACODEC => Pixel::MEDIACODEC, |
| 704 | AV_PIX_FMT_GRAY12BE => Pixel::GRAY12BE, |
| 705 | AV_PIX_FMT_GRAY12LE => Pixel::GRAY12LE, |
| 706 | AV_PIX_FMT_GRAY10BE => Pixel::GRAY10BE, |
| 707 | AV_PIX_FMT_GRAY10LE => Pixel::GRAY10LE, |
| 708 | AV_PIX_FMT_P016LE => Pixel::P016LE, |
| 709 | AV_PIX_FMT_P016BE => Pixel::P016BE, |
| 710 | |
| 711 | AV_PIX_FMT_NB => Pixel::None, |
| 712 | |
| 713 | AV_PIX_FMT_D3D11 => Pixel::D3D11, |
| 714 | AV_PIX_FMT_GRAY9BE => Pixel::GRAY9BE, |
| 715 | AV_PIX_FMT_GRAY9LE => Pixel::GRAY9LE, |
| 716 | AV_PIX_FMT_GBRPF32BE => Pixel::GBRPF32BE, |
| 717 | AV_PIX_FMT_GBRPF32LE => Pixel::GBRPF32LE, |
| 718 | AV_PIX_FMT_GBRAPF32BE => Pixel::GBRAPF32BE, |
| 719 | AV_PIX_FMT_GBRAPF32LE => Pixel::GBRAPF32LE, |
| 720 | AV_PIX_FMT_DRM_PRIME => Pixel::DRM_PRIME, |
| 721 | |
| 722 | #[cfg (feature = "ffmpeg_4_0" )] |
| 723 | AV_PIX_FMT_OPENCL => Pixel::OPENCL, |
| 724 | |
| 725 | #[cfg (feature = "ffmpeg_4_1" )] |
| 726 | AV_PIX_FMT_GRAY14BE => Pixel::GRAY14BE, |
| 727 | #[cfg (feature = "ffmpeg_4_1" )] |
| 728 | AV_PIX_FMT_GRAY14LE => Pixel::GRAY14LE, |
| 729 | #[cfg (feature = "ffmpeg_4_1" )] |
| 730 | AV_PIX_FMT_GRAYF32BE => Pixel::GRAYF32BE, |
| 731 | #[cfg (feature = "ffmpeg_4_1" )] |
| 732 | AV_PIX_FMT_GRAYF32LE => Pixel::GRAYF32LE, |
| 733 | |
| 734 | #[cfg (feature = "ffmpeg_4_2" )] |
| 735 | AV_PIX_FMT_YUVA422P12BE => Pixel::YUVA422P12BE, |
| 736 | #[cfg (feature = "ffmpeg_4_2" )] |
| 737 | AV_PIX_FMT_YUVA422P12LE => Pixel::YUVA422P12LE, |
| 738 | #[cfg (feature = "ffmpeg_4_2" )] |
| 739 | AV_PIX_FMT_YUVA444P12BE => Pixel::YUVA444P12BE, |
| 740 | #[cfg (feature = "ffmpeg_4_2" )] |
| 741 | AV_PIX_FMT_YUVA444P12LE => Pixel::YUVA444P12LE, |
| 742 | #[cfg (feature = "ffmpeg_4_2" )] |
| 743 | AV_PIX_FMT_NV24 => Pixel::NV24, |
| 744 | #[cfg (feature = "ffmpeg_4_2" )] |
| 745 | AV_PIX_FMT_NV42 => Pixel::NV42, |
| 746 | |
| 747 | #[cfg (feature = "ffmpeg_4_3" )] |
| 748 | AV_PIX_FMT_VULKAN => Pixel::VULKAN, |
| 749 | #[cfg (feature = "ffmpeg_4_3" )] |
| 750 | AV_PIX_FMT_Y210BE => Pixel::Y210BE, |
| 751 | #[cfg (feature = "ffmpeg_4_3" )] |
| 752 | AV_PIX_FMT_Y210LE => Pixel::Y210LE, |
| 753 | |
| 754 | #[cfg (feature = "ffmpeg_4_4" )] |
| 755 | AV_PIX_FMT_X2RGB10LE => Pixel::X2RGB10LE, |
| 756 | #[cfg (feature = "ffmpeg_4_4" )] |
| 757 | AV_PIX_FMT_X2RGB10BE => Pixel::X2RGB10BE, |
| 758 | |
| 759 | #[cfg (feature = "ffmpeg_5_0" )] |
| 760 | AV_PIX_FMT_X2BGR10LE => Pixel::X2BGR10LE, |
| 761 | #[cfg (feature = "ffmpeg_5_0" )] |
| 762 | AV_PIX_FMT_X2BGR10BE => Pixel::X2BGR10BE, |
| 763 | #[cfg (feature = "ffmpeg_5_0" )] |
| 764 | AV_PIX_FMT_P210BE => Pixel::P210BE, |
| 765 | #[cfg (feature = "ffmpeg_5_0" )] |
| 766 | AV_PIX_FMT_P210LE => Pixel::P210LE, |
| 767 | #[cfg (feature = "ffmpeg_5_0" )] |
| 768 | AV_PIX_FMT_P410BE => Pixel::P410BE, |
| 769 | #[cfg (feature = "ffmpeg_5_0" )] |
| 770 | AV_PIX_FMT_P410LE => Pixel::P410LE, |
| 771 | #[cfg (feature = "ffmpeg_5_0" )] |
| 772 | AV_PIX_FMT_P216BE => Pixel::P216BE, |
| 773 | #[cfg (feature = "ffmpeg_5_0" )] |
| 774 | AV_PIX_FMT_P216LE => Pixel::P216LE, |
| 775 | #[cfg (feature = "ffmpeg_5_0" )] |
| 776 | AV_PIX_FMT_P416BE => Pixel::P416BE, |
| 777 | #[cfg (feature = "ffmpeg_5_0" )] |
| 778 | AV_PIX_FMT_P416LE => Pixel::P416LE, |
| 779 | |
| 780 | #[cfg (feature = "ffmpeg_6_0" )] |
| 781 | AV_PIX_FMT_VUYA => Pixel::VUYA, |
| 782 | #[cfg (feature = "ffmpeg_6_0" )] |
| 783 | AV_PIX_FMT_RGBAF16BE => Pixel::RGBAF16BE, |
| 784 | #[cfg (feature = "ffmpeg_6_0" )] |
| 785 | AV_PIX_FMT_RGBAF16LE => Pixel::RGBAF16LE, |
| 786 | #[cfg (feature = "ffmpeg_6_0" )] |
| 787 | AV_PIX_FMT_VUYX => Pixel::VUYX, |
| 788 | #[cfg (feature = "ffmpeg_6_0" )] |
| 789 | AV_PIX_FMT_P012LE => Pixel::P012LE, |
| 790 | #[cfg (feature = "ffmpeg_6_0" )] |
| 791 | AV_PIX_FMT_P012BE => Pixel::P012BE, |
| 792 | #[cfg (feature = "ffmpeg_6_0" )] |
| 793 | AV_PIX_FMT_Y212BE => Pixel::Y212BE, |
| 794 | #[cfg (feature = "ffmpeg_6_0" )] |
| 795 | AV_PIX_FMT_Y212LE => Pixel::Y212LE, |
| 796 | #[cfg (feature = "ffmpeg_6_0" )] |
| 797 | AV_PIX_FMT_XV30BE => Pixel::XV30BE, |
| 798 | #[cfg (feature = "ffmpeg_6_0" )] |
| 799 | AV_PIX_FMT_XV30LE => Pixel::XV30LE, |
| 800 | #[cfg (feature = "ffmpeg_6_0" )] |
| 801 | AV_PIX_FMT_XV36BE => Pixel::XV36BE, |
| 802 | #[cfg (feature = "ffmpeg_6_0" )] |
| 803 | AV_PIX_FMT_XV36LE => Pixel::XV36LE, |
| 804 | #[cfg (feature = "ffmpeg_6_0" )] |
| 805 | AV_PIX_FMT_RGBF32BE => Pixel::RGBF32BE, |
| 806 | #[cfg (feature = "ffmpeg_6_0" )] |
| 807 | AV_PIX_FMT_RGBF32LE => Pixel::RGBF32LE, |
| 808 | #[cfg (feature = "ffmpeg_6_0" )] |
| 809 | AV_PIX_FMT_RGBAF32BE => Pixel::RGBAF32BE, |
| 810 | #[cfg (feature = "ffmpeg_6_0" )] |
| 811 | AV_PIX_FMT_RGBAF32LE => Pixel::RGBAF32LE, |
| 812 | |
| 813 | #[cfg (feature = "ffmpeg_6_1" )] |
| 814 | AV_PIX_FMT_P212BE => Pixel::P212BE, |
| 815 | #[cfg (feature = "ffmpeg_6_1" )] |
| 816 | AV_PIX_FMT_P212LE => Pixel::P212LE, |
| 817 | #[cfg (feature = "ffmpeg_6_1" )] |
| 818 | AV_PIX_FMT_P412BE => Pixel::P412BE, |
| 819 | #[cfg (feature = "ffmpeg_6_1" )] |
| 820 | AV_PIX_FMT_P412LE => Pixel::P412LE, |
| 821 | #[cfg (feature = "ffmpeg_6_1" )] |
| 822 | AV_PIX_FMT_GBRAP14BE => Pixel::GBRAP14BE, |
| 823 | #[cfg (feature = "ffmpeg_6_1" )] |
| 824 | AV_PIX_FMT_GBRAP14LE => Pixel::GBRAP14LE, |
| 825 | |
| 826 | #[cfg (feature = "ffmpeg_7_0" )] |
| 827 | AV_PIX_FMT_D3D12 => Pixel::D3D12, |
| 828 | |
| 829 | #[cfg (feature = "rpi" )] |
| 830 | AV_PIX_FMT_SAND128 => Pixel::SAND128, |
| 831 | #[cfg (feature = "rpi" )] |
| 832 | AV_PIX_FMT_SAND64_10 => Pixel::SAND64_10, |
| 833 | #[cfg (feature = "rpi" )] |
| 834 | AV_PIX_FMT_SAND64_16 => Pixel::SAND64_16, |
| 835 | #[cfg (feature = "rpi" )] |
| 836 | AV_PIX_FMT_RPI4_8 => Pixel::RPI4_8, |
| 837 | #[cfg (feature = "rpi" )] |
| 838 | AV_PIX_FMT_RPI4_10 => Pixel::RPI4_10, |
| 839 | } |
| 840 | } |
| 841 | } |
| 842 | |
| 843 | impl From<Pixel> for AVPixelFormat { |
| 844 | #[inline ] |
| 845 | fn from(value: Pixel) -> AVPixelFormat { |
| 846 | match value { |
| 847 | Pixel::None => AV_PIX_FMT_NONE, |
| 848 | |
| 849 | Pixel::YUV420P => AV_PIX_FMT_YUV420P, |
| 850 | Pixel::YUYV422 => AV_PIX_FMT_YUYV422, |
| 851 | Pixel::RGB24 => AV_PIX_FMT_RGB24, |
| 852 | Pixel::BGR24 => AV_PIX_FMT_BGR24, |
| 853 | Pixel::YUV422P => AV_PIX_FMT_YUV422P, |
| 854 | Pixel::YUV444P => AV_PIX_FMT_YUV444P, |
| 855 | Pixel::YUV410P => AV_PIX_FMT_YUV410P, |
| 856 | Pixel::YUV411P => AV_PIX_FMT_YUV411P, |
| 857 | Pixel::GRAY8 => AV_PIX_FMT_GRAY8, |
| 858 | Pixel::MonoWhite => AV_PIX_FMT_MONOWHITE, |
| 859 | Pixel::MonoBlack => AV_PIX_FMT_MONOBLACK, |
| 860 | Pixel::PAL8 => AV_PIX_FMT_PAL8, |
| 861 | Pixel::YUVJ420P => AV_PIX_FMT_YUVJ420P, |
| 862 | Pixel::YUVJ422P => AV_PIX_FMT_YUVJ422P, |
| 863 | Pixel::YUVJ444P => AV_PIX_FMT_YUVJ444P, |
| 864 | #[cfg (all(feature = "ff_api_xvmc" , not(feature = "ffmpeg_5_0" )))] |
| 865 | Pixel::XVMC_MPEG2_MC => AV_PIX_FMT_XVMC_MPEG2_MC, |
| 866 | #[cfg (all(feature = "ff_api_xvmc" , not(feature = "ffmpeg_5_0" )))] |
| 867 | Pixel::XVMC_MPEG2_IDCT => AV_PIX_FMT_XVMC_MPEG2_IDCT, |
| 868 | Pixel::UYVY422 => AV_PIX_FMT_UYVY422, |
| 869 | Pixel::UYYVYY411 => AV_PIX_FMT_UYYVYY411, |
| 870 | Pixel::BGR8 => AV_PIX_FMT_BGR8, |
| 871 | Pixel::BGR4 => AV_PIX_FMT_BGR4, |
| 872 | Pixel::BGR4_BYTE => AV_PIX_FMT_BGR4_BYTE, |
| 873 | Pixel::RGB8 => AV_PIX_FMT_RGB8, |
| 874 | Pixel::RGB4 => AV_PIX_FMT_RGB4, |
| 875 | Pixel::RGB4_BYTE => AV_PIX_FMT_RGB4_BYTE, |
| 876 | Pixel::NV12 => AV_PIX_FMT_NV12, |
| 877 | Pixel::NV21 => AV_PIX_FMT_NV21, |
| 878 | |
| 879 | Pixel::ARGB => AV_PIX_FMT_ARGB, |
| 880 | Pixel::RGBA => AV_PIX_FMT_RGBA, |
| 881 | Pixel::ABGR => AV_PIX_FMT_ABGR, |
| 882 | Pixel::BGRA => AV_PIX_FMT_BGRA, |
| 883 | |
| 884 | Pixel::GRAY16BE => AV_PIX_FMT_GRAY16BE, |
| 885 | Pixel::GRAY16LE => AV_PIX_FMT_GRAY16LE, |
| 886 | Pixel::YUV440P => AV_PIX_FMT_YUV440P, |
| 887 | Pixel::YUVJ440P => AV_PIX_FMT_YUVJ440P, |
| 888 | Pixel::YUVA420P => AV_PIX_FMT_YUVA420P, |
| 889 | #[cfg (feature = "ff_api_vdpau" )] |
| 890 | Pixel::VDPAU_H264 => AV_PIX_FMT_VDPAU_H264, |
| 891 | #[cfg (feature = "ff_api_vdpau" )] |
| 892 | Pixel::VDPAU_MPEG1 => AV_PIX_FMT_VDPAU_MPEG1, |
| 893 | #[cfg (feature = "ff_api_vdpau" )] |
| 894 | Pixel::VDPAU_MPEG2 => AV_PIX_FMT_VDPAU_MPEG2, |
| 895 | #[cfg (feature = "ff_api_vdpau" )] |
| 896 | Pixel::VDPAU_WMV3 => AV_PIX_FMT_VDPAU_WMV3, |
| 897 | #[cfg (feature = "ff_api_vdpau" )] |
| 898 | Pixel::VDPAU_VC1 => AV_PIX_FMT_VDPAU_VC1, |
| 899 | Pixel::RGB48BE => AV_PIX_FMT_RGB48BE, |
| 900 | Pixel::RGB48LE => AV_PIX_FMT_RGB48LE, |
| 901 | |
| 902 | Pixel::RGB565BE => AV_PIX_FMT_RGB565BE, |
| 903 | Pixel::RGB565LE => AV_PIX_FMT_RGB565LE, |
| 904 | Pixel::RGB555BE => AV_PIX_FMT_RGB555BE, |
| 905 | Pixel::RGB555LE => AV_PIX_FMT_RGB555LE, |
| 906 | |
| 907 | Pixel::BGR565BE => AV_PIX_FMT_BGR565BE, |
| 908 | Pixel::BGR565LE => AV_PIX_FMT_BGR565LE, |
| 909 | Pixel::BGR555BE => AV_PIX_FMT_BGR555BE, |
| 910 | Pixel::BGR555LE => AV_PIX_FMT_BGR555LE, |
| 911 | |
| 912 | #[cfg (all(feature = "ff_api_vaapi" , not(feature = "ffmpeg_5_0" )))] |
| 913 | Pixel::VAAPI_MOCO => AV_PIX_FMT_VAAPI_MOCO, |
| 914 | #[cfg (all(feature = "ff_api_vaapi" , not(feature = "ffmpeg_5_0" )))] |
| 915 | Pixel::VAAPI_IDCT => AV_PIX_FMT_VAAPI_IDCT, |
| 916 | #[cfg (all(feature = "ff_api_vaapi" , not(feature = "ffmpeg_5_0" )))] |
| 917 | Pixel::VAAPI_VLD => AV_PIX_FMT_VAAPI_VLD, |
| 918 | #[cfg (not(feature = "ff_api_vaapi" ))] |
| 919 | Pixel::VAAPI => AV_PIX_FMT_VAAPI, |
| 920 | |
| 921 | Pixel::YUV420P16LE => AV_PIX_FMT_YUV420P16LE, |
| 922 | Pixel::YUV420P16BE => AV_PIX_FMT_YUV420P16BE, |
| 923 | Pixel::YUV422P16LE => AV_PIX_FMT_YUV422P16LE, |
| 924 | Pixel::YUV422P16BE => AV_PIX_FMT_YUV422P16BE, |
| 925 | Pixel::YUV444P16LE => AV_PIX_FMT_YUV444P16LE, |
| 926 | Pixel::YUV444P16BE => AV_PIX_FMT_YUV444P16BE, |
| 927 | #[cfg (feature = "ff_api_vdpau" )] |
| 928 | Pixel::VDPAU_MPEG4 => AV_PIX_FMT_VDPAU_MPEG4, |
| 929 | Pixel::DXVA2_VLD => AV_PIX_FMT_DXVA2_VLD, |
| 930 | |
| 931 | Pixel::RGB444LE => AV_PIX_FMT_RGB444LE, |
| 932 | Pixel::RGB444BE => AV_PIX_FMT_RGB444BE, |
| 933 | Pixel::BGR444LE => AV_PIX_FMT_BGR444LE, |
| 934 | Pixel::BGR444BE => AV_PIX_FMT_BGR444BE, |
| 935 | Pixel::YA8 => AV_PIX_FMT_YA8, |
| 936 | |
| 937 | Pixel::BGR48BE => AV_PIX_FMT_BGR48BE, |
| 938 | Pixel::BGR48LE => AV_PIX_FMT_BGR48LE, |
| 939 | |
| 940 | Pixel::YUV420P9BE => AV_PIX_FMT_YUV420P9BE, |
| 941 | Pixel::YUV420P9LE => AV_PIX_FMT_YUV420P9LE, |
| 942 | Pixel::YUV420P10BE => AV_PIX_FMT_YUV420P10BE, |
| 943 | Pixel::YUV420P10LE => AV_PIX_FMT_YUV420P10LE, |
| 944 | Pixel::YUV422P10BE => AV_PIX_FMT_YUV422P10BE, |
| 945 | Pixel::YUV422P10LE => AV_PIX_FMT_YUV422P10LE, |
| 946 | Pixel::YUV444P9BE => AV_PIX_FMT_YUV444P9BE, |
| 947 | Pixel::YUV444P9LE => AV_PIX_FMT_YUV444P9LE, |
| 948 | Pixel::YUV444P10BE => AV_PIX_FMT_YUV444P10BE, |
| 949 | Pixel::YUV444P10LE => AV_PIX_FMT_YUV444P10LE, |
| 950 | Pixel::YUV422P9BE => AV_PIX_FMT_YUV422P9BE, |
| 951 | Pixel::YUV422P9LE => AV_PIX_FMT_YUV422P9LE, |
| 952 | #[cfg (not(feature = "ffmpeg_4_0" ))] |
| 953 | Pixel::VDA_VLD => AV_PIX_FMT_VDA_VLD, |
| 954 | |
| 955 | Pixel::GBRP => AV_PIX_FMT_GBRP, |
| 956 | Pixel::GBRP9BE => AV_PIX_FMT_GBRP9BE, |
| 957 | Pixel::GBRP9LE => AV_PIX_FMT_GBRP9LE, |
| 958 | Pixel::GBRP10BE => AV_PIX_FMT_GBRP10BE, |
| 959 | Pixel::GBRP10LE => AV_PIX_FMT_GBRP10LE, |
| 960 | Pixel::GBRP16BE => AV_PIX_FMT_GBRP16BE, |
| 961 | Pixel::GBRP16LE => AV_PIX_FMT_GBRP16LE, |
| 962 | |
| 963 | Pixel::YUVA420P9BE => AV_PIX_FMT_YUVA420P9BE, |
| 964 | Pixel::YUVA420P9LE => AV_PIX_FMT_YUVA420P9LE, |
| 965 | Pixel::YUVA422P9BE => AV_PIX_FMT_YUVA422P9BE, |
| 966 | Pixel::YUVA422P9LE => AV_PIX_FMT_YUVA422P9LE, |
| 967 | Pixel::YUVA444P9BE => AV_PIX_FMT_YUVA444P9BE, |
| 968 | Pixel::YUVA444P9LE => AV_PIX_FMT_YUVA444P9LE, |
| 969 | Pixel::YUVA420P10BE => AV_PIX_FMT_YUVA420P10BE, |
| 970 | Pixel::YUVA420P10LE => AV_PIX_FMT_YUVA420P10LE, |
| 971 | Pixel::YUVA422P10BE => AV_PIX_FMT_YUVA422P10BE, |
| 972 | Pixel::YUVA422P10LE => AV_PIX_FMT_YUVA422P10LE, |
| 973 | Pixel::YUVA444P10BE => AV_PIX_FMT_YUVA444P10BE, |
| 974 | Pixel::YUVA444P10LE => AV_PIX_FMT_YUVA444P10LE, |
| 975 | Pixel::YUVA420P16BE => AV_PIX_FMT_YUVA420P16BE, |
| 976 | Pixel::YUVA420P16LE => AV_PIX_FMT_YUVA420P16LE, |
| 977 | Pixel::YUVA422P16BE => AV_PIX_FMT_YUVA422P16BE, |
| 978 | Pixel::YUVA422P16LE => AV_PIX_FMT_YUVA422P16LE, |
| 979 | Pixel::YUVA444P16BE => AV_PIX_FMT_YUVA444P16BE, |
| 980 | Pixel::YUVA444P16LE => AV_PIX_FMT_YUVA444P16LE, |
| 981 | |
| 982 | Pixel::VDPAU => AV_PIX_FMT_VDPAU, |
| 983 | |
| 984 | Pixel::XYZ12LE => AV_PIX_FMT_XYZ12LE, |
| 985 | Pixel::XYZ12BE => AV_PIX_FMT_XYZ12BE, |
| 986 | Pixel::NV16 => AV_PIX_FMT_NV16, |
| 987 | Pixel::NV20LE => AV_PIX_FMT_NV20LE, |
| 988 | Pixel::NV20BE => AV_PIX_FMT_NV20BE, |
| 989 | |
| 990 | Pixel::RGBA64BE => AV_PIX_FMT_RGBA64BE, |
| 991 | Pixel::RGBA64LE => AV_PIX_FMT_RGBA64LE, |
| 992 | Pixel::BGRA64BE => AV_PIX_FMT_BGRA64BE, |
| 993 | Pixel::BGRA64LE => AV_PIX_FMT_BGRA64LE, |
| 994 | |
| 995 | Pixel::YVYU422 => AV_PIX_FMT_YVYU422, |
| 996 | |
| 997 | #[cfg (not(feature = "ffmpeg_4_0" ))] |
| 998 | Pixel::VDA => AV_PIX_FMT_VDA, |
| 999 | |
| 1000 | Pixel::YA16BE => AV_PIX_FMT_YA16BE, |
| 1001 | Pixel::YA16LE => AV_PIX_FMT_YA16LE, |
| 1002 | |
| 1003 | Pixel::QSV => AV_PIX_FMT_QSV, |
| 1004 | Pixel::MMAL => AV_PIX_FMT_MMAL, |
| 1005 | |
| 1006 | Pixel::D3D11VA_VLD => AV_PIX_FMT_D3D11VA_VLD, |
| 1007 | |
| 1008 | Pixel::CUDA => AV_PIX_FMT_CUDA, |
| 1009 | |
| 1010 | Pixel::ZRGB => AV_PIX_FMT_0RGB, |
| 1011 | Pixel::RGBZ => AV_PIX_FMT_RGB0, |
| 1012 | Pixel::ZBGR => AV_PIX_FMT_0BGR, |
| 1013 | Pixel::BGRZ => AV_PIX_FMT_BGR0, |
| 1014 | Pixel::YUVA444P => AV_PIX_FMT_YUVA444P, |
| 1015 | Pixel::YUVA422P => AV_PIX_FMT_YUVA422P, |
| 1016 | |
| 1017 | Pixel::YUV420P12BE => AV_PIX_FMT_YUV420P12BE, |
| 1018 | Pixel::YUV420P12LE => AV_PIX_FMT_YUV420P12LE, |
| 1019 | Pixel::YUV420P14BE => AV_PIX_FMT_YUV420P14BE, |
| 1020 | Pixel::YUV420P14LE => AV_PIX_FMT_YUV420P14LE, |
| 1021 | Pixel::YUV422P12BE => AV_PIX_FMT_YUV422P12BE, |
| 1022 | Pixel::YUV422P12LE => AV_PIX_FMT_YUV422P12LE, |
| 1023 | Pixel::YUV422P14BE => AV_PIX_FMT_YUV422P14BE, |
| 1024 | Pixel::YUV422P14LE => AV_PIX_FMT_YUV422P14LE, |
| 1025 | Pixel::YUV444P12BE => AV_PIX_FMT_YUV444P12BE, |
| 1026 | Pixel::YUV444P12LE => AV_PIX_FMT_YUV444P12LE, |
| 1027 | Pixel::YUV444P14BE => AV_PIX_FMT_YUV444P14BE, |
| 1028 | Pixel::YUV444P14LE => AV_PIX_FMT_YUV444P14LE, |
| 1029 | Pixel::GBRP12BE => AV_PIX_FMT_GBRP12BE, |
| 1030 | Pixel::GBRP12LE => AV_PIX_FMT_GBRP12LE, |
| 1031 | Pixel::GBRP14BE => AV_PIX_FMT_GBRP14BE, |
| 1032 | Pixel::GBRP14LE => AV_PIX_FMT_GBRP14LE, |
| 1033 | Pixel::GBRAP => AV_PIX_FMT_GBRAP, |
| 1034 | Pixel::GBRAP16BE => AV_PIX_FMT_GBRAP16BE, |
| 1035 | Pixel::GBRAP16LE => AV_PIX_FMT_GBRAP16LE, |
| 1036 | Pixel::YUVJ411P => AV_PIX_FMT_YUVJ411P, |
| 1037 | |
| 1038 | Pixel::BAYER_BGGR8 => AV_PIX_FMT_BAYER_BGGR8, |
| 1039 | Pixel::BAYER_RGGB8 => AV_PIX_FMT_BAYER_RGGB8, |
| 1040 | Pixel::BAYER_GBRG8 => AV_PIX_FMT_BAYER_GBRG8, |
| 1041 | Pixel::BAYER_GRBG8 => AV_PIX_FMT_BAYER_GRBG8, |
| 1042 | Pixel::BAYER_BGGR16LE => AV_PIX_FMT_BAYER_BGGR16LE, |
| 1043 | Pixel::BAYER_BGGR16BE => AV_PIX_FMT_BAYER_BGGR16BE, |
| 1044 | Pixel::BAYER_RGGB16LE => AV_PIX_FMT_BAYER_RGGB16LE, |
| 1045 | Pixel::BAYER_RGGB16BE => AV_PIX_FMT_BAYER_RGGB16BE, |
| 1046 | Pixel::BAYER_GBRG16LE => AV_PIX_FMT_BAYER_GBRG16LE, |
| 1047 | Pixel::BAYER_GBRG16BE => AV_PIX_FMT_BAYER_GBRG16BE, |
| 1048 | Pixel::BAYER_GRBG16LE => AV_PIX_FMT_BAYER_GRBG16LE, |
| 1049 | Pixel::BAYER_GRBG16BE => AV_PIX_FMT_BAYER_GRBG16BE, |
| 1050 | |
| 1051 | Pixel::YUV440P10LE => AV_PIX_FMT_YUV440P10LE, |
| 1052 | Pixel::YUV440P10BE => AV_PIX_FMT_YUV440P10BE, |
| 1053 | Pixel::YUV440P12LE => AV_PIX_FMT_YUV440P12LE, |
| 1054 | Pixel::YUV440P12BE => AV_PIX_FMT_YUV440P12BE, |
| 1055 | Pixel::AYUV64LE => AV_PIX_FMT_AYUV64LE, |
| 1056 | Pixel::AYUV64BE => AV_PIX_FMT_AYUV64BE, |
| 1057 | |
| 1058 | Pixel::VIDEOTOOLBOX => AV_PIX_FMT_VIDEOTOOLBOX, |
| 1059 | |
| 1060 | // --- defaults |
| 1061 | #[cfg (all(feature = "ffmpeg_4_0" , not(feature = "ffmpeg_7_0" )))] |
| 1062 | Pixel::XVMC => AV_PIX_FMT_XVMC, |
| 1063 | |
| 1064 | Pixel::RGB32 => AV_PIX_FMT_RGB32, |
| 1065 | Pixel::RGB32_1 => AV_PIX_FMT_RGB32_1, |
| 1066 | Pixel::BGR32 => AV_PIX_FMT_BGR32, |
| 1067 | Pixel::BGR32_1 => AV_PIX_FMT_BGR32_1, |
| 1068 | Pixel::ZRGB32 => AV_PIX_FMT_0RGB32, |
| 1069 | Pixel::ZBGR32 => AV_PIX_FMT_0BGR32, |
| 1070 | |
| 1071 | Pixel::GRAY16 => AV_PIX_FMT_GRAY16, |
| 1072 | Pixel::YA16 => AV_PIX_FMT_YA16, |
| 1073 | Pixel::RGB48 => AV_PIX_FMT_RGB48, |
| 1074 | Pixel::RGB565 => AV_PIX_FMT_RGB565, |
| 1075 | Pixel::RGB555 => AV_PIX_FMT_RGB555, |
| 1076 | Pixel::RGB444 => AV_PIX_FMT_RGB444, |
| 1077 | Pixel::BGR48 => AV_PIX_FMT_BGR48, |
| 1078 | Pixel::BGR565 => AV_PIX_FMT_BGR565, |
| 1079 | Pixel::BGR555 => AV_PIX_FMT_BGR555, |
| 1080 | Pixel::BGR444 => AV_PIX_FMT_BGR444, |
| 1081 | |
| 1082 | Pixel::YUV420P9 => AV_PIX_FMT_YUV420P9, |
| 1083 | Pixel::YUV422P9 => AV_PIX_FMT_YUV422P9, |
| 1084 | Pixel::YUV444P9 => AV_PIX_FMT_YUV444P9, |
| 1085 | Pixel::YUV420P10 => AV_PIX_FMT_YUV420P10, |
| 1086 | Pixel::YUV422P10 => AV_PIX_FMT_YUV422P10, |
| 1087 | Pixel::YUV440P10 => AV_PIX_FMT_YUV440P10, |
| 1088 | Pixel::YUV444P10 => AV_PIX_FMT_YUV444P10, |
| 1089 | Pixel::YUV420P12 => AV_PIX_FMT_YUV420P12, |
| 1090 | Pixel::YUV422P12 => AV_PIX_FMT_YUV422P12, |
| 1091 | Pixel::YUV440P12 => AV_PIX_FMT_YUV440P12, |
| 1092 | Pixel::YUV444P12 => AV_PIX_FMT_YUV444P12, |
| 1093 | Pixel::YUV420P14 => AV_PIX_FMT_YUV420P14, |
| 1094 | Pixel::YUV422P14 => AV_PIX_FMT_YUV422P14, |
| 1095 | Pixel::YUV444P14 => AV_PIX_FMT_YUV444P14, |
| 1096 | Pixel::YUV420P16 => AV_PIX_FMT_YUV420P16, |
| 1097 | Pixel::YUV422P16 => AV_PIX_FMT_YUV422P16, |
| 1098 | Pixel::YUV444P16 => AV_PIX_FMT_YUV444P16, |
| 1099 | |
| 1100 | Pixel::GBRP9 => AV_PIX_FMT_GBRP9, |
| 1101 | Pixel::GBRP10 => AV_PIX_FMT_GBRP10, |
| 1102 | Pixel::GBRP12 => AV_PIX_FMT_GBRP12, |
| 1103 | Pixel::GBRP14 => AV_PIX_FMT_GBRP14, |
| 1104 | Pixel::GBRP16 => AV_PIX_FMT_GBRP16, |
| 1105 | Pixel::GBRAP16 => AV_PIX_FMT_GBRAP16, |
| 1106 | |
| 1107 | Pixel::BAYER_BGGR16 => AV_PIX_FMT_BAYER_BGGR16, |
| 1108 | Pixel::BAYER_RGGB16 => AV_PIX_FMT_BAYER_RGGB16, |
| 1109 | Pixel::BAYER_GBRG16 => AV_PIX_FMT_BAYER_GBRG16, |
| 1110 | Pixel::BAYER_GRBG16 => AV_PIX_FMT_BAYER_GRBG16, |
| 1111 | |
| 1112 | Pixel::YUVA420P9 => AV_PIX_FMT_YUVA420P9, |
| 1113 | Pixel::YUVA422P9 => AV_PIX_FMT_YUVA422P9, |
| 1114 | Pixel::YUVA444P9 => AV_PIX_FMT_YUVA444P9, |
| 1115 | Pixel::YUVA420P10 => AV_PIX_FMT_YUVA420P10, |
| 1116 | Pixel::YUVA422P10 => AV_PIX_FMT_YUVA422P10, |
| 1117 | Pixel::YUVA444P10 => AV_PIX_FMT_YUVA444P10, |
| 1118 | Pixel::YUVA420P16 => AV_PIX_FMT_YUVA420P16, |
| 1119 | Pixel::YUVA422P16 => AV_PIX_FMT_YUVA422P16, |
| 1120 | Pixel::YUVA444P16 => AV_PIX_FMT_YUVA444P16, |
| 1121 | |
| 1122 | Pixel::XYZ12 => AV_PIX_FMT_XYZ12, |
| 1123 | Pixel::NV20 => AV_PIX_FMT_NV20, |
| 1124 | Pixel::AYUV64 => AV_PIX_FMT_AYUV64, |
| 1125 | |
| 1126 | Pixel::P010LE => AV_PIX_FMT_P010LE, |
| 1127 | Pixel::P010BE => AV_PIX_FMT_P010BE, |
| 1128 | Pixel::GBRAP12BE => AV_PIX_FMT_GBRAP12BE, |
| 1129 | Pixel::GBRAP12LE => AV_PIX_FMT_GBRAP12LE, |
| 1130 | Pixel::GBRAP10LE => AV_PIX_FMT_GBRAP10LE, |
| 1131 | Pixel::GBRAP10BE => AV_PIX_FMT_GBRAP10BE, |
| 1132 | Pixel::MEDIACODEC => AV_PIX_FMT_MEDIACODEC, |
| 1133 | Pixel::GRAY12BE => AV_PIX_FMT_GRAY12BE, |
| 1134 | Pixel::GRAY12LE => AV_PIX_FMT_GRAY12LE, |
| 1135 | Pixel::GRAY10BE => AV_PIX_FMT_GRAY10BE, |
| 1136 | Pixel::GRAY10LE => AV_PIX_FMT_GRAY10LE, |
| 1137 | Pixel::P016LE => AV_PIX_FMT_P016LE, |
| 1138 | Pixel::P016BE => AV_PIX_FMT_P016BE, |
| 1139 | |
| 1140 | Pixel::D3D11 => AV_PIX_FMT_D3D11, |
| 1141 | Pixel::GRAY9BE => AV_PIX_FMT_GRAY9BE, |
| 1142 | Pixel::GRAY9LE => AV_PIX_FMT_GRAY9LE, |
| 1143 | Pixel::GBRPF32BE => AV_PIX_FMT_GBRPF32BE, |
| 1144 | Pixel::GBRPF32LE => AV_PIX_FMT_GBRPF32LE, |
| 1145 | Pixel::GBRAPF32BE => AV_PIX_FMT_GBRAPF32BE, |
| 1146 | Pixel::GBRAPF32LE => AV_PIX_FMT_GBRAPF32LE, |
| 1147 | Pixel::DRM_PRIME => AV_PIX_FMT_DRM_PRIME, |
| 1148 | |
| 1149 | #[cfg (feature = "ffmpeg_4_0" )] |
| 1150 | Pixel::OPENCL => AV_PIX_FMT_OPENCL, |
| 1151 | |
| 1152 | #[cfg (feature = "ffmpeg_4_1" )] |
| 1153 | Pixel::GRAY14BE => AV_PIX_FMT_GRAY14BE, |
| 1154 | #[cfg (feature = "ffmpeg_4_1" )] |
| 1155 | Pixel::GRAY14LE => AV_PIX_FMT_GRAY14LE, |
| 1156 | #[cfg (feature = "ffmpeg_4_1" )] |
| 1157 | Pixel::GRAYF32BE => AV_PIX_FMT_GRAYF32BE, |
| 1158 | #[cfg (feature = "ffmpeg_4_1" )] |
| 1159 | Pixel::GRAYF32LE => AV_PIX_FMT_GRAYF32LE, |
| 1160 | |
| 1161 | #[cfg (feature = "ffmpeg_4_2" )] |
| 1162 | Pixel::YUVA422P12BE => AV_PIX_FMT_YUVA422P12BE, |
| 1163 | #[cfg (feature = "ffmpeg_4_2" )] |
| 1164 | Pixel::YUVA422P12LE => AV_PIX_FMT_YUVA422P12LE, |
| 1165 | #[cfg (feature = "ffmpeg_4_2" )] |
| 1166 | Pixel::YUVA444P12BE => AV_PIX_FMT_YUVA444P12BE, |
| 1167 | #[cfg (feature = "ffmpeg_4_2" )] |
| 1168 | Pixel::YUVA444P12LE => AV_PIX_FMT_YUVA444P12LE, |
| 1169 | #[cfg (feature = "ffmpeg_4_2" )] |
| 1170 | Pixel::NV24 => AV_PIX_FMT_NV24, |
| 1171 | #[cfg (feature = "ffmpeg_4_2" )] |
| 1172 | Pixel::NV42 => AV_PIX_FMT_NV42, |
| 1173 | |
| 1174 | #[cfg (feature = "ffmpeg_4_3" )] |
| 1175 | Pixel::VULKAN => AV_PIX_FMT_VULKAN, |
| 1176 | #[cfg (feature = "ffmpeg_4_3" )] |
| 1177 | Pixel::Y210BE => AV_PIX_FMT_Y210BE, |
| 1178 | #[cfg (feature = "ffmpeg_4_3" )] |
| 1179 | Pixel::Y210LE => AV_PIX_FMT_Y210LE, |
| 1180 | |
| 1181 | #[cfg (feature = "ffmpeg_4_4" )] |
| 1182 | Pixel::X2RGB10LE => AV_PIX_FMT_X2RGB10LE, |
| 1183 | #[cfg (feature = "ffmpeg_4_4" )] |
| 1184 | Pixel::X2RGB10BE => AV_PIX_FMT_X2RGB10BE, |
| 1185 | |
| 1186 | #[cfg (feature = "ffmpeg_5_0" )] |
| 1187 | Pixel::X2BGR10LE => AV_PIX_FMT_X2BGR10LE, |
| 1188 | #[cfg (feature = "ffmpeg_5_0" )] |
| 1189 | Pixel::X2BGR10BE => AV_PIX_FMT_X2BGR10BE, |
| 1190 | #[cfg (feature = "ffmpeg_5_0" )] |
| 1191 | Pixel::P210BE => AV_PIX_FMT_P210BE, |
| 1192 | #[cfg (feature = "ffmpeg_5_0" )] |
| 1193 | Pixel::P210LE => AV_PIX_FMT_P210LE, |
| 1194 | #[cfg (feature = "ffmpeg_5_0" )] |
| 1195 | Pixel::P410BE => AV_PIX_FMT_P410BE, |
| 1196 | #[cfg (feature = "ffmpeg_5_0" )] |
| 1197 | Pixel::P410LE => AV_PIX_FMT_P410LE, |
| 1198 | #[cfg (feature = "ffmpeg_5_0" )] |
| 1199 | Pixel::P216BE => AV_PIX_FMT_P216BE, |
| 1200 | #[cfg (feature = "ffmpeg_5_0" )] |
| 1201 | Pixel::P216LE => AV_PIX_FMT_P216LE, |
| 1202 | #[cfg (feature = "ffmpeg_5_0" )] |
| 1203 | Pixel::P416BE => AV_PIX_FMT_P416BE, |
| 1204 | #[cfg (feature = "ffmpeg_5_0" )] |
| 1205 | Pixel::P416LE => AV_PIX_FMT_P416LE, |
| 1206 | |
| 1207 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1208 | Pixel::VUYA => AV_PIX_FMT_VUYA, |
| 1209 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1210 | Pixel::RGBAF16BE => AV_PIX_FMT_RGBAF16BE, |
| 1211 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1212 | Pixel::RGBAF16LE => AV_PIX_FMT_RGBAF16LE, |
| 1213 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1214 | Pixel::VUYX => AV_PIX_FMT_VUYX, |
| 1215 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1216 | Pixel::P012LE => AV_PIX_FMT_P012LE, |
| 1217 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1218 | Pixel::P012BE => AV_PIX_FMT_P012BE, |
| 1219 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1220 | Pixel::Y212BE => AV_PIX_FMT_Y212BE, |
| 1221 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1222 | Pixel::Y212LE => AV_PIX_FMT_Y212LE, |
| 1223 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1224 | Pixel::XV30BE => AV_PIX_FMT_XV30BE, |
| 1225 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1226 | Pixel::XV30LE => AV_PIX_FMT_XV30LE, |
| 1227 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1228 | Pixel::XV36BE => AV_PIX_FMT_XV36BE, |
| 1229 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1230 | Pixel::XV36LE => AV_PIX_FMT_XV36LE, |
| 1231 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1232 | Pixel::RGBF32BE => AV_PIX_FMT_RGBF32BE, |
| 1233 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1234 | Pixel::RGBF32LE => AV_PIX_FMT_RGBF32LE, |
| 1235 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1236 | Pixel::RGBAF32BE => AV_PIX_FMT_RGBAF32BE, |
| 1237 | #[cfg (feature = "ffmpeg_6_0" )] |
| 1238 | Pixel::RGBAF32LE => AV_PIX_FMT_RGBAF32LE, |
| 1239 | |
| 1240 | #[cfg (feature = "ffmpeg_6_1" )] |
| 1241 | Pixel::P212BE => AV_PIX_FMT_P212BE, |
| 1242 | #[cfg (feature = "ffmpeg_6_1" )] |
| 1243 | Pixel::P212LE => AV_PIX_FMT_P212LE, |
| 1244 | #[cfg (feature = "ffmpeg_6_1" )] |
| 1245 | Pixel::P412BE => AV_PIX_FMT_P412BE, |
| 1246 | #[cfg (feature = "ffmpeg_6_1" )] |
| 1247 | Pixel::P412LE => AV_PIX_FMT_P412LE, |
| 1248 | #[cfg (feature = "ffmpeg_6_1" )] |
| 1249 | Pixel::GBRAP14BE => AV_PIX_FMT_GBRAP14BE, |
| 1250 | #[cfg (feature = "ffmpeg_6_1" )] |
| 1251 | Pixel::GBRAP14LE => AV_PIX_FMT_GBRAP14LE, |
| 1252 | |
| 1253 | #[cfg (feature = "ffmpeg_7_0" )] |
| 1254 | Pixel::D3D12 => AV_PIX_FMT_D3D12, |
| 1255 | |
| 1256 | #[cfg (feature = "rpi" )] |
| 1257 | Pixel::SAND128 => AV_PIX_FMT_SAND128, |
| 1258 | #[cfg (feature = "rpi" )] |
| 1259 | Pixel::SAND64_10 => AV_PIX_FMT_SAND64_10, |
| 1260 | #[cfg (feature = "rpi" )] |
| 1261 | Pixel::SAND64_16 => AV_PIX_FMT_SAND64_16, |
| 1262 | #[cfg (feature = "rpi" )] |
| 1263 | Pixel::RPI4_8 => AV_PIX_FMT_RPI4_8, |
| 1264 | #[cfg (feature = "rpi" )] |
| 1265 | Pixel::RPI4_10 => AV_PIX_FMT_RPI4_10, |
| 1266 | } |
| 1267 | } |
| 1268 | } |
| 1269 | |
| 1270 | #[derive (Debug)] |
| 1271 | pub enum ParsePixelError { |
| 1272 | NulError(NulError), |
| 1273 | UnknownFormat, |
| 1274 | } |
| 1275 | |
| 1276 | impl fmt::Display for ParsePixelError { |
| 1277 | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { |
| 1278 | match *self { |
| 1279 | ParsePixelError::NulError(ref e: &NulError) => e.fmt(f), |
| 1280 | ParsePixelError::UnknownFormat => write!(f, "unknown pixel format" ), |
| 1281 | } |
| 1282 | } |
| 1283 | } |
| 1284 | |
| 1285 | impl error::Error for ParsePixelError { |
| 1286 | fn cause(&self) -> Option<&dyn error::Error> { |
| 1287 | match *self { |
| 1288 | ParsePixelError::NulError(ref e: &NulError) => Some(e), |
| 1289 | ParsePixelError::UnknownFormat => None, |
| 1290 | } |
| 1291 | } |
| 1292 | } |
| 1293 | |
| 1294 | impl From<NulError> for ParsePixelError { |
| 1295 | fn from(x: NulError) -> ParsePixelError { |
| 1296 | ParsePixelError::NulError(x) |
| 1297 | } |
| 1298 | } |
| 1299 | |
| 1300 | impl FromStr for Pixel { |
| 1301 | type Err = ParsePixelError; |
| 1302 | |
| 1303 | #[inline (always)] |
| 1304 | fn from_str(s: &str) -> Result<Pixel, ParsePixelError> { |
| 1305 | let cstring: CString = CString::new(s)?; |
| 1306 | let format: Pixel = unsafe { av_get_pix_fmt(cstring.as_ptr()) }.into(); |
| 1307 | |
| 1308 | if format == Pixel::None { |
| 1309 | Err(ParsePixelError::UnknownFormat) |
| 1310 | } else { |
| 1311 | Ok(format) |
| 1312 | } |
| 1313 | } |
| 1314 | } |
| 1315 | |