47 #ifndef __WEED_COMPAT_H__ 48 #define __WEED_COMPAT_H__ 56 #ifdef NEED_FOURCC_COMPAT 58 #ifndef __WEED_PALETTES_H__ 62 #define WEED_COMPAT_VERSION 0.10.0 64 int fourccp_to_weedp(
unsigned int fourcc,
int bpp,
int *interlaced,
int *sampling,
65 int *sspace,
int *clamping) {
79 if (interlaced != NULL) *interlaced = 0;
109 if (interlaced != NULL) *interlaced = 1;
204 #include <libavcodec/avcodec.h> 205 #include <libavutil/pixfmt.h> 207 typedef struct AVCodecTag {
213 #define MKTAG(a, b, c, d) ((a) | ((b) << 8) | ((c) << 16) | ((d) << 24)) 216 #if (LIBAVCODEC_VERSION_MAJOR <= 54) 217 #define AVCodecID CodecID 219 #define AV_CODEC_ID_NONE CODEC_ID_NONE 220 #define AV_CODEC_ID_H264 CODEC_ID_H264 221 #define AV_CODEC_ID_H263 CODEC_ID_H263 222 #define AV_CODEC_ID_H263P CODEC_ID_H263P 223 #define AV_CODEC_ID_H263I CODEC_ID_H263I 224 #define AV_CODEC_ID_H261 CODEC_ID_H261 225 #define AV_CODEC_ID_MPEG4 CODEC_ID_MPEG4 226 #define AV_CODEC_ID_MSMPEG4V3 CODEC_ID_MSMPEG4V3 227 #define AV_CODEC_ID_MSMPEG4V2 CODEC_ID_MSMPEG4V2 228 #define AV_CODEC_ID_MSMPEG4V1 CODEC_ID_MSMPEG4V1 229 #define AV_CODEC_ID_WMV1 CODEC_ID_WMV1 230 #define AV_CODEC_ID_WMV2 CODEC_ID_WMV2 231 #define AV_CODEC_ID_DVVIDEO CODEC_ID_DVVIDEO 232 #define AV_CODEC_ID_MPEG1VIDEO CODEC_ID_MPEG1VIDEO 233 #define AV_CODEC_ID_MPEG2VIDEO CODEC_ID_MPEG2VIDEO 234 #define AV_CODEC_ID_MJPEG CODEC_ID_MJPEG 235 #define AV_CODEC_ID_LJPEG CODEC_ID_LJPEG 236 #define AV_CODEC_ID_JPEGLS CODEC_ID_JPEGLS 237 #define AV_CODEC_ID_HUFFYUV CODEC_ID_HUFFYUV 238 #define AV_CODEC_ID_FFVHUFF CODEC_ID_FFVHUFF 239 #define AV_CODEC_ID_CYUV CODEC_ID_CYUV 240 #define AV_CODEC_ID_RAWVIDEO CODEC_ID_RAWVIDEO 241 #define AV_CODEC_ID_INDEO2 CODEC_ID_INDEO2 242 #define AV_CODEC_ID_INDEO3 CODEC_ID_INDEO3 243 #define AV_CODEC_ID_INDEO4 CODEC_ID_INDEO4 244 #define AV_CODEC_ID_INDEO5 CODEC_ID_INDEO5 245 #define AV_CODEC_ID_VP3 CODEC_ID_VP3 246 #define AV_CODEC_ID_VP5 CODEC_ID_VP5 247 #define AV_CODEC_ID_VP6 CODEC_ID_VP6 248 #define AV_CODEC_ID_VP6F CODEC_ID_VP6F 249 #define AV_CODEC_ID_VP6A CODEC_ID_VP6A 250 #define AV_CODEC_ID_ASV1 CODEC_ID_ASV1 251 #define AV_CODEC_ID_ASV2 CODEC_ID_ASV2 252 #define AV_CODEC_ID_VCR1 CODEC_ID_VCR1 253 #define AV_CODEC_ID_FFV1 CODEC_ID_FFV1 254 #define AV_CODEC_ID_XAN_WC4 CODEC_ID_XAN_WC4 255 #define AV_CODEC_ID_MIMIC CODEC_ID_MIMIC 256 #define AV_CODEC_ID_MSRLE CODEC_ID_MSRLE 257 #define AV_CODEC_ID_MSVIDEO1 CODEC_ID_MSVIDEO1 258 #define AV_CODEC_ID_CINEPAK CODEC_ID_CINEPAK 259 #define AV_CODEC_ID_TRUEMOTION1 CODEC_ID_TRUEMOTION1 260 #define AV_CODEC_ID_TRUEMOTION2 CODEC_ID_TRUEMOTION2 261 #define AV_CODEC_ID_MSZH CODEC_ID_MSZH 262 #define AV_CODEC_ID_ZLIB CODEC_ID_ZLIB 265 #define AV_CODEC_ID_SNOW CODEC_ID_SNOW 268 #define AV_CODEC_ID_4XM CODEC_ID_4XM 269 #define AV_CODEC_ID_FLV1 CODEC_ID_FLV1 270 #define AV_CODEC_ID_FLASHSV CODEC_ID_FLASHSV 271 #define AV_CODEC_ID_SVQ1 CODEC_ID_SVQ1 272 #define AV_CODEC_ID_TSCC CODEC_ID_TSCC 273 #define AV_CODEC_ID_ULTI CODEC_ID_ULTI 274 #define AV_CODEC_ID_VIXL CODEC_ID_VIXL 275 #define AV_CODEC_ID_QPEG CODEC_ID_QPEG 276 #define AV_CODEC_ID_WMV3 CODEC_ID_WMV3 277 #define AV_CODEC_ID_VC1 CODEC_ID_VC1 278 #define AV_CODEC_ID_LOCO CODEC_ID_LOCO 279 #define AV_CODEC_ID_WNV1 CODEC_ID_WNV1 280 #define AV_CODEC_ID_AASC CODEC_ID_AASC 281 #define AV_CODEC_ID_FRAPS CODEC_ID_FRAPS 282 #define AV_CODEC_ID_THEORA CODEC_ID_THEORA 283 #define AV_CODEC_ID_CSCD CODEC_ID_CSCD 284 #define AV_CODEC_ID_ZMBV CODEC_ID_ZMBV 285 #define AV_CODEC_ID_KMVC CODEC_ID_KMVC 286 #define AV_CODEC_ID_CAVS CODEC_ID_CAVS 287 #define AV_CODEC_ID_JPEG2000 CODEC_ID_JPEG2000 288 #define AV_CODEC_ID_VMNC CODEC_ID_VMNC 289 #define AV_CODEC_ID_TARGA CODEC_ID_TARGA 290 #define AV_CODEC_ID_PNG CODEC_ID_PNG 291 #define AV_CODEC_ID_GIF CODEC_ID_GIF 292 #define AV_CODEC_ID_TIFF CODEC_ID_TIFF 293 #define AV_CODEC_ID_CLJR CODEC_ID_CLJR 294 #define AV_CODEC_ID_DIRAC CODEC_ID_DIRAC 295 #define AV_CODEC_ID_RPZA CODEC_ID_RPZA 296 #define AV_CODEC_ID_SP5X CODEC_ID_SP5X 298 #define AV_CODEC_ID_FLASHSV2 CODEC_ID_FLASHSV2 299 #define AV_CODEC_ID_TEXT CODEC_ID_TEXT 300 #define AV_CODEC_ID_SSA CODEC_ID_SSA 301 #define AV_CODEC_ID_SRT CODEC_ID_SRT 302 #define AV_CODEC_ID_VP8 CODEC_ID_VP8 303 #define AV_CODEC_ID_RV10 CODEC_ID_RV10 304 #define AV_CODEC_ID_RV20 CODEC_ID_RV20 305 #define AV_CODEC_ID_RV30 CODEC_ID_RV30 306 #define AV_CODEC_ID_RV40 CODEC_ID_RV40 307 #define AV_CODEC_ID_MP3 CODEC_ID_MP3 308 #define AV_CODEC_ID_MP2 CODEC_ID_MP2 309 #define AV_CODEC_ID_AAC CODEC_ID_AAC 310 #define AV_CODEC_ID_PCM_BLURAY CODEC_ID_PCM_BLURAY 311 #define AV_CODEC_ID_AC3 CODEC_ID_AC3 312 #define AV_CODEC_ID_VORBIS CODEC_ID_VORBIS 313 #define AV_CODEC_ID_EAC3 CODEC_ID_EAC3 314 #define AV_CODEC_ID_DTS CODEC_ID_DTS 315 #define AV_CODEC_ID_TRUEHD CODEC_ID_TRUEHD 316 #define AV_CODEC_ID_S302M CODEC_ID_S302M 317 #define AV_CODEC_ID_DVB_TELETEXT CODEC_ID_DVB_TELETEXT 318 #define AV_CODEC_ID_DVB_SUBTITLE CODEC_ID_DVB_SUBTITLE 319 #define AV_CODEC_ID_DVD_SUBTITLE CODEC_ID_DVD_SUBTITLE 321 #define AV_CODEC_ID_MOV_TEXT CODEC_ID_MOV_TEXT 322 #define AV_CODEC_ID_MP4ALS CODEC_ID_MP4ALS 323 #define AV_CODEC_ID_QCELP CODEC_ID_QCELP 324 #define AV_CODEC_ID_MPEG4SYSTEMS CODEC_ID_MPEG4SYSTEMS 326 #define AV_CODEC_ID_MPEG2TS CODEC_ID_MPEG2TS 327 #define AV_CODEC_ID_AAC_LATM CODEC_ID_AAC_LATM 328 #define AV_CODEC_ID_HDMV_PGS_SUBTITLE CODEC_ID_HDMV_PGS_SUBTITLE 330 #define AV_CODEC_ID_FLAC CODEC_ID_FLAC 331 #define AV_CODEC_ID_MLP CODEC_ID_MLP 333 #define AV_CODEC_ID_PCM_F32LE CODEC_ID_PCM_F32LE 334 #define AV_CODEC_ID_PCM_F64LE CODEC_ID_PCM_F64LE 336 #define AV_CODEC_ID_PCM_S16BE CODEC_ID_PCM_S16BE 337 #define AV_CODEC_ID_PCM_S24BE CODEC_ID_PCM_S24BE 338 #define AV_CODEC_ID_PCM_S32BE CODEC_ID_PCM_S32BE 340 #define AV_CODEC_ID_PCM_S16LE CODEC_ID_PCM_S16LE 341 #define AV_CODEC_ID_PCM_S24LE CODEC_ID_PCM_S24LE 342 #define AV_CODEC_ID_PCM_S32LE CODEC_ID_PCM_S32LE 344 #define AV_CODEC_ID_PCM_U8 CODEC_ID_PCM_U8 346 #define AV_CODEC_ID_QDM2 CODEC_ID_QDM2 347 #define AV_CODEC_ID_RA_144 CODEC_ID_RA_144 348 #define AV_CODEC_ID_RA_288 CODEC_ID_RA_288 349 #define AV_CODEC_ID_ATRAC3 CODEC_ID_ATRAC3 350 #define AV_CODEC_ID_COOK CODEC_ID_COOK 351 #define AV_CODEC_ID_SIPR CODEC_ID_SIPR 352 #define AV_CODEC_ID_TTA CODEC_ID_TTA 353 #define AV_CODEC_ID_WAVPACK CODEC_ID_WAVPACK 355 #define AV_CODEC_ID_TTF CODEC_ID_TTF 358 #define AV_CODEC_ID_R10K CODEC_ID_R10K 359 #define AV_CODEC_ID_R210 CODEC_ID_R210 360 #define AV_CODEC_ID_V210 CODEC_ID_V210 361 #define AV_CODEC_ID_MJPEGB CODEC_ID_MJPEGB 362 #define AV_CODEC_ID_SVQ3 CODEC_ID_SVQ3 363 #define AV_CODEC_ID_8BPS CODEC_ID_8BPS 364 #define AV_CODEC_ID_SMC CODEC_ID_SMC 365 #define AV_CODEC_ID_QTRLE CODEC_ID_QTRLE 366 #define AV_CODEC_ID_QDRAW CODEC_ID_QDRAW 367 #define AV_CODEC_ID_DNXHD CODEC_ID_DNXHD 368 #define AV_CODEC_ID_SGI CODEC_ID_SGI 369 #define AV_CODEC_ID_DPX CODEC_ID_DPX 370 #define AV_CODEC_ID_PRORES CODEC_ID_PRORES 377 const AVCodecTag codec_bmp_tags[] = {
378 { AV_CODEC_ID_H264, MKTAG(
'H',
'2',
'6',
'4') },
379 { AV_CODEC_ID_H264, MKTAG(
'h',
'2',
'6',
'4') },
380 { AV_CODEC_ID_H264, MKTAG(
'X',
'2',
'6',
'4') },
381 { AV_CODEC_ID_H264, MKTAG(
'x',
'2',
'6',
'4') },
382 { AV_CODEC_ID_H264, MKTAG(
'a',
'v',
'c',
'1') },
383 { AV_CODEC_ID_H264, MKTAG(
'V',
'S',
'S',
'H') },
384 { AV_CODEC_ID_H263, MKTAG(
'H',
'2',
'6',
'3') },
385 { AV_CODEC_ID_H263, MKTAG(
'X',
'2',
'6',
'3') },
386 { AV_CODEC_ID_H263, MKTAG(
'T',
'2',
'6',
'3') },
387 { AV_CODEC_ID_H263, MKTAG(
'L',
'2',
'6',
'3') },
388 { AV_CODEC_ID_H263, MKTAG(
'V',
'X',
'1',
'K') },
389 { AV_CODEC_ID_H263, MKTAG(
'Z',
'y',
'G',
'o') },
390 { AV_CODEC_ID_H263P, MKTAG(
'H',
'2',
'6',
'3') },
391 { AV_CODEC_ID_H263I, MKTAG(
'I',
'2',
'6',
'3') },
392 { AV_CODEC_ID_H261, MKTAG(
'H',
'2',
'6',
'1') },
393 { AV_CODEC_ID_H263P, MKTAG(
'U',
'2',
'6',
'3') },
394 { AV_CODEC_ID_H263P, MKTAG(
'v',
'i',
'v',
'1') },
395 { AV_CODEC_ID_MPEG4, MKTAG(
'F',
'M',
'P',
'4') },
396 { AV_CODEC_ID_MPEG4, MKTAG(
'D',
'I',
'V',
'X') },
397 { AV_CODEC_ID_MPEG4, MKTAG(
'D',
'X',
'5',
'0') },
398 { AV_CODEC_ID_MPEG4, MKTAG(
'X',
'V',
'I',
'D') },
399 { AV_CODEC_ID_MPEG4, MKTAG(
'M',
'P',
'4',
'S') },
400 { AV_CODEC_ID_MPEG4, MKTAG(
'M',
'4',
'S',
'2') },
401 { AV_CODEC_ID_MPEG4, MKTAG(4 , 0 , 0 , 0) },
402 { AV_CODEC_ID_MPEG4, MKTAG(
'D',
'I',
'V',
'1') },
403 { AV_CODEC_ID_MPEG4, MKTAG(
'B',
'L',
'Z',
'0') },
404 { AV_CODEC_ID_MPEG4, MKTAG(
'm',
'p',
'4',
'v') },
405 { AV_CODEC_ID_MPEG4, MKTAG(
'U',
'M',
'P',
'4') },
406 { AV_CODEC_ID_MPEG4, MKTAG(
'W',
'V',
'1',
'F') },
407 { AV_CODEC_ID_MPEG4, MKTAG(
'S',
'E',
'D',
'G') },
408 { AV_CODEC_ID_MPEG4, MKTAG(
'R',
'M',
'P',
'4') },
409 { AV_CODEC_ID_MPEG4, MKTAG(
'3',
'I',
'V',
'2') },
410 { AV_CODEC_ID_MPEG4, MKTAG(
'F',
'F',
'D',
'S') },
411 { AV_CODEC_ID_MPEG4, MKTAG(
'F',
'V',
'F',
'W') },
412 { AV_CODEC_ID_MPEG4, MKTAG(
'D',
'C',
'O',
'D') },
413 { AV_CODEC_ID_MPEG4, MKTAG(
'M',
'V',
'X',
'M') },
414 { AV_CODEC_ID_MPEG4, MKTAG(
'P',
'M',
'4',
'V') },
415 { AV_CODEC_ID_MPEG4, MKTAG(
'S',
'M',
'P',
'4') },
416 { AV_CODEC_ID_MPEG4, MKTAG(
'D',
'X',
'G',
'M') },
417 { AV_CODEC_ID_MPEG4, MKTAG(
'V',
'I',
'D',
'M') },
418 { AV_CODEC_ID_MPEG4, MKTAG(
'M',
'4',
'T',
'3') },
419 { AV_CODEC_ID_MPEG4, MKTAG(
'G',
'E',
'O',
'X') },
420 { AV_CODEC_ID_MPEG4, MKTAG(
'H',
'D',
'X',
'4') },
421 { AV_CODEC_ID_MPEG4, MKTAG(
'D',
'M',
'K',
'2') },
422 { AV_CODEC_ID_MPEG4, MKTAG(
'D',
'I',
'G',
'I') },
423 { AV_CODEC_ID_MPEG4, MKTAG(
'I',
'N',
'M',
'C') },
424 { AV_CODEC_ID_MPEG4, MKTAG(
'E',
'P',
'H',
'V') },
425 { AV_CODEC_ID_MPEG4, MKTAG(
'E',
'M',
'4',
'A') },
426 { AV_CODEC_ID_MPEG4, MKTAG(
'M',
'4',
'C',
'C') },
427 { AV_CODEC_ID_MPEG4, MKTAG(
'S',
'N',
'4',
'0') },
428 { AV_CODEC_ID_MPEG4, MKTAG(
'V',
'S',
'P',
'X') },
429 { AV_CODEC_ID_MPEG4, MKTAG(
'U',
'L',
'D',
'X') },
430 { AV_CODEC_ID_MPEG4, MKTAG(
'G',
'E',
'O',
'V') },
431 { AV_CODEC_ID_MPEG4, MKTAG(
'S',
'I',
'P',
'P') },
432 { AV_CODEC_ID_MSMPEG4V3, MKTAG(
'D',
'I',
'V',
'3') },
433 { AV_CODEC_ID_MSMPEG4V3, MKTAG(
'M',
'P',
'4',
'3') },
434 { AV_CODEC_ID_MSMPEG4V3, MKTAG(
'M',
'P',
'G',
'3') },
435 { AV_CODEC_ID_MSMPEG4V3, MKTAG(
'D',
'I',
'V',
'5') },
436 { AV_CODEC_ID_MSMPEG4V3, MKTAG(
'D',
'I',
'V',
'6') },
437 { AV_CODEC_ID_MSMPEG4V3, MKTAG(
'D',
'I',
'V',
'4') },
438 { AV_CODEC_ID_MSMPEG4V3, MKTAG(
'D',
'V',
'X',
'3') },
439 { AV_CODEC_ID_MSMPEG4V3, MKTAG(
'A',
'P',
'4',
'1') },
440 { AV_CODEC_ID_MSMPEG4V3, MKTAG(
'C',
'O',
'L',
'1') },
441 { AV_CODEC_ID_MSMPEG4V3, MKTAG(
'C',
'O',
'L',
'0') },
442 { AV_CODEC_ID_MSMPEG4V2, MKTAG(
'M',
'P',
'4',
'2') },
443 { AV_CODEC_ID_MSMPEG4V2, MKTAG(
'D',
'I',
'V',
'2') },
444 { AV_CODEC_ID_MSMPEG4V1, MKTAG(
'M',
'P',
'G',
'4') },
445 { AV_CODEC_ID_MSMPEG4V1, MKTAG(
'M',
'P',
'4',
'1') },
446 { AV_CODEC_ID_WMV1, MKTAG(
'W',
'M',
'V',
'1') },
447 { AV_CODEC_ID_WMV2, MKTAG(
'W',
'M',
'V',
'2') },
448 { AV_CODEC_ID_DVVIDEO, MKTAG(
'd',
'v',
's',
'd') },
449 { AV_CODEC_ID_DVVIDEO, MKTAG(
'd',
'v',
'h',
'd') },
450 { AV_CODEC_ID_DVVIDEO, MKTAG(
'd',
'v',
'h',
'1') },
451 { AV_CODEC_ID_DVVIDEO, MKTAG(
'd',
'v',
's',
'l') },
452 { AV_CODEC_ID_DVVIDEO, MKTAG(
'd',
'v',
'2',
'5') },
453 { AV_CODEC_ID_DVVIDEO, MKTAG(
'd',
'v',
'5',
'0') },
454 { AV_CODEC_ID_DVVIDEO, MKTAG(
'c',
'd',
'v',
'c') },
455 { AV_CODEC_ID_DVVIDEO, MKTAG(
'C',
'D',
'V',
'H') },
456 { AV_CODEC_ID_DVVIDEO, MKTAG(
'd',
'v',
'c',
' ') },
457 { AV_CODEC_ID_DVVIDEO, MKTAG(
'd',
'v',
'c',
's') },
458 { AV_CODEC_ID_DVVIDEO, MKTAG(
'd',
'v',
'h',
'1') },
459 { AV_CODEC_ID_MPEG1VIDEO, MKTAG(
'm',
'p',
'g',
'1') },
460 { AV_CODEC_ID_MPEG1VIDEO, MKTAG(
'm',
'p',
'g',
'2') },
461 { AV_CODEC_ID_MPEG2VIDEO, MKTAG(
'm',
'p',
'g',
'2') },
462 { AV_CODEC_ID_MPEG2VIDEO, MKTAG(
'M',
'P',
'E',
'G') },
463 { AV_CODEC_ID_MPEG1VIDEO, MKTAG(
'P',
'I',
'M',
'1') },
464 { AV_CODEC_ID_MPEG2VIDEO, MKTAG(
'P',
'I',
'M',
'2') },
465 { AV_CODEC_ID_MPEG1VIDEO, MKTAG(
'V',
'C',
'R',
'2') },
466 { AV_CODEC_ID_MPEG1VIDEO, MKTAG(1 , 0 , 0 , 16) },
467 { AV_CODEC_ID_MPEG2VIDEO, MKTAG(2 , 0 , 0 , 16) },
468 { AV_CODEC_ID_MPEG4, MKTAG(4 , 0 , 0 , 16) },
469 { AV_CODEC_ID_MPEG2VIDEO, MKTAG(
'D',
'V',
'R',
' ') },
470 { AV_CODEC_ID_MPEG2VIDEO, MKTAG(
'M',
'M',
'E',
'S') },
471 { AV_CODEC_ID_MPEG2VIDEO, MKTAG(
'L',
'M',
'P',
'2') },
472 { AV_CODEC_ID_MPEG2VIDEO, MKTAG(
's',
'l',
'i',
'f') },
473 { AV_CODEC_ID_MPEG2VIDEO, MKTAG(
'E',
'M',
'2',
'V') },
474 { AV_CODEC_ID_MJPEG, MKTAG(
'M',
'J',
'P',
'G') },
475 { AV_CODEC_ID_MJPEG, MKTAG(
'L',
'J',
'P',
'G') },
476 { AV_CODEC_ID_MJPEG, MKTAG(
'd',
'm',
'b',
'1') },
477 { AV_CODEC_ID_MJPEG, MKTAG(
'm',
'j',
'p',
'a') },
478 { AV_CODEC_ID_LJPEG, MKTAG(
'L',
'J',
'P',
'G') },
479 { AV_CODEC_ID_MJPEG, MKTAG(
'J',
'P',
'G',
'L') },
480 { AV_CODEC_ID_JPEGLS, MKTAG(
'M',
'J',
'L',
'S') },
481 { AV_CODEC_ID_MJPEG, MKTAG(
'M',
'J',
'L',
'S') },
482 { AV_CODEC_ID_MJPEG, MKTAG(
'j',
'p',
'e',
'g') },
483 { AV_CODEC_ID_MJPEG, MKTAG(
'I',
'J',
'P',
'G') },
484 { AV_CODEC_ID_MJPEG, MKTAG(
'A',
'V',
'R',
'n') },
485 { AV_CODEC_ID_MJPEG, MKTAG(
'A',
'C',
'D',
'V') },
486 { AV_CODEC_ID_MJPEG, MKTAG(
'Q',
'I',
'V',
'G') },
487 { AV_CODEC_ID_MJPEG, MKTAG(
'S',
'L',
'M',
'J') },
488 { AV_CODEC_ID_MJPEG, MKTAG(
'C',
'J',
'P',
'G') },
489 { AV_CODEC_ID_MJPEG, MKTAG(
'I',
'J',
'L',
'V') },
490 { AV_CODEC_ID_MJPEG, MKTAG(
'M',
'V',
'J',
'P') },
491 { AV_CODEC_ID_MJPEG, MKTAG(
'A',
'V',
'I',
'1') },
492 { AV_CODEC_ID_MJPEG, MKTAG(
'A',
'V',
'I',
'2') },
493 { AV_CODEC_ID_MJPEG, MKTAG(
'M',
'T',
'S',
'J') },
494 { AV_CODEC_ID_MJPEG, MKTAG(
'Z',
'J',
'P',
'G') },
495 { AV_CODEC_ID_HUFFYUV, MKTAG(
'H',
'F',
'Y',
'U') },
496 { AV_CODEC_ID_FFVHUFF, MKTAG(
'F',
'F',
'V',
'H') },
497 { AV_CODEC_ID_CYUV, MKTAG(
'C',
'Y',
'U',
'V') },
498 { AV_CODEC_ID_RAWVIDEO, MKTAG(0 , 0 , 0 , 0) },
499 { AV_CODEC_ID_RAWVIDEO, MKTAG(3 , 0 , 0 , 0) },
500 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'I',
'4',
'2',
'0') },
501 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'Y',
'U',
'Y',
'2') },
502 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'Y',
'4',
'2',
'2') },
503 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'V',
'4',
'2',
'2') },
504 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'Y',
'U',
'N',
'V') },
505 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'U',
'Y',
'N',
'V') },
506 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'U',
'Y',
'N',
'Y') },
507 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'u',
'y',
'v',
'1') },
508 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'2',
'V',
'u',
'1') },
509 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'2',
'v',
'u',
'y') },
510 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'P',
'4',
'2',
'2') },
511 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'Y',
'V',
'1',
'2') },
512 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'U',
'Y',
'V',
'Y') },
513 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'V',
'Y',
'U',
'Y') },
514 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'I',
'Y',
'U',
'V') },
515 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'Y',
'8',
'0',
'0') },
516 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'H',
'D',
'Y',
'C') },
517 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'Y',
'V',
'U',
'9') },
518 { AV_CODEC_ID_RAWVIDEO, MKTAG(
'V',
'D',
'T',
'Z') },
519 { AV_CODEC_ID_INDEO3, MKTAG(
'I',
'V',
'3',
'1') },
520 { AV_CODEC_ID_INDEO3, MKTAG(
'I',
'V',
'3',
'2') },
521 { AV_CODEC_ID_INDEO4, MKTAG(
'I',
'V',
'4',
'1') },
522 { AV_CODEC_ID_INDEO5, MKTAG(
'I',
'V',
'5',
'0') },
523 { AV_CODEC_ID_VP3, MKTAG(
'V',
'P',
'3',
'1') },
524 { AV_CODEC_ID_VP3, MKTAG(
'V',
'P',
'3',
'0') },
525 { AV_CODEC_ID_VP5, MKTAG(
'V',
'P',
'5',
'0') },
526 { AV_CODEC_ID_VP6, MKTAG(
'V',
'P',
'6',
'0') },
527 { AV_CODEC_ID_VP6, MKTAG(
'V',
'P',
'6',
'1') },
528 { AV_CODEC_ID_VP6, MKTAG(
'V',
'P',
'6',
'2') },
529 { AV_CODEC_ID_VP6F, MKTAG(
'V',
'P',
'6',
'F') },
530 { AV_CODEC_ID_VP6F, MKTAG(
'F',
'L',
'V',
'4') },
531 { AV_CODEC_ID_ASV1, MKTAG(
'A',
'S',
'V',
'1') },
532 { AV_CODEC_ID_ASV2, MKTAG(
'A',
'S',
'V',
'2') },
533 { AV_CODEC_ID_VCR1, MKTAG(
'V',
'C',
'R',
'1') },
534 { AV_CODEC_ID_FFV1, MKTAG(
'F',
'F',
'V',
'1') },
535 { AV_CODEC_ID_XAN_WC4, MKTAG(
'X',
'x',
'a',
'n') },
536 { AV_CODEC_ID_MIMIC, MKTAG(
'L',
'M',
'2',
'0') },
537 { AV_CODEC_ID_MSRLE, MKTAG(
'm',
'r',
'l',
'e') },
538 { AV_CODEC_ID_MSRLE, MKTAG(1 , 0 , 0 , 0) },
539 { AV_CODEC_ID_MSRLE, MKTAG(2 , 0 , 0 , 0) },
540 { AV_CODEC_ID_MSVIDEO1, MKTAG(
'M',
'S',
'V',
'C') },
541 { AV_CODEC_ID_MSVIDEO1, MKTAG(
'm',
's',
'v',
'c') },
542 { AV_CODEC_ID_MSVIDEO1, MKTAG(
'C',
'R',
'A',
'M') },
543 { AV_CODEC_ID_MSVIDEO1, MKTAG(
'c',
'r',
'a',
'm') },
544 { AV_CODEC_ID_MSVIDEO1, MKTAG(
'W',
'H',
'A',
'M') },
545 { AV_CODEC_ID_MSVIDEO1, MKTAG(
'w',
'h',
'a',
'm') },
546 { AV_CODEC_ID_CINEPAK, MKTAG(
'c',
'v',
'i',
'd') },
547 { AV_CODEC_ID_TRUEMOTION1, MKTAG(
'D',
'U',
'C',
'K') },
548 { AV_CODEC_ID_TRUEMOTION1, MKTAG(
'P',
'V',
'E',
'Z') },
549 { AV_CODEC_ID_MSZH, MKTAG(
'M',
'S',
'Z',
'H') },
550 { AV_CODEC_ID_ZLIB, MKTAG(
'Z',
'L',
'I',
'B') },
552 { AV_CODEC_ID_SNOW, MKTAG(
'S',
'N',
'O',
'W') },
554 { AV_CODEC_ID_4XM, MKTAG(
'4',
'X',
'M',
'V') },
555 { AV_CODEC_ID_FLV1, MKTAG(
'F',
'L',
'V',
'1') },
556 { AV_CODEC_ID_FLASHSV, MKTAG(
'F',
'S',
'V',
'1') },
557 { AV_CODEC_ID_SVQ1, MKTAG(
's',
'v',
'q',
'1') },
558 { AV_CODEC_ID_TSCC, MKTAG(
't',
's',
'c',
'c') },
559 { AV_CODEC_ID_ULTI, MKTAG(
'U',
'L',
'T',
'I') },
560 { AV_CODEC_ID_VIXL, MKTAG(
'V',
'I',
'X',
'L') },
561 { AV_CODEC_ID_QPEG, MKTAG(
'Q',
'P',
'E',
'G') },
562 { AV_CODEC_ID_QPEG, MKTAG(
'Q',
'1',
'.',
'0') },
563 { AV_CODEC_ID_QPEG, MKTAG(
'Q',
'1',
'.',
'1') },
564 { AV_CODEC_ID_WMV3, MKTAG(
'W',
'M',
'V',
'3') },
565 { AV_CODEC_ID_VC1, MKTAG(
'W',
'V',
'C',
'1') },
566 { AV_CODEC_ID_VC1, MKTAG(
'W',
'M',
'V',
'A') },
567 { AV_CODEC_ID_LOCO, MKTAG(
'L',
'O',
'C',
'O') },
568 { AV_CODEC_ID_WNV1, MKTAG(
'W',
'N',
'V',
'1') },
569 { AV_CODEC_ID_AASC, MKTAG(
'A',
'A',
'S',
'C') },
570 { AV_CODEC_ID_INDEO2, MKTAG(
'R',
'T',
'2',
'1') },
571 { AV_CODEC_ID_FRAPS, MKTAG(
'F',
'P',
'S',
'1') },
572 { AV_CODEC_ID_THEORA, MKTAG(
't',
'h',
'e',
'o') },
573 { AV_CODEC_ID_TRUEMOTION2, MKTAG(
'T',
'M',
'2',
'0') },
574 { AV_CODEC_ID_CSCD, MKTAG(
'C',
'S',
'C',
'D') },
575 { AV_CODEC_ID_ZMBV, MKTAG(
'Z',
'M',
'B',
'V') },
576 { AV_CODEC_ID_KMVC, MKTAG(
'K',
'M',
'V',
'C') },
577 { AV_CODEC_ID_CAVS, MKTAG(
'C',
'A',
'V',
'S') },
578 { AV_CODEC_ID_JPEG2000, MKTAG(
'M',
'J',
'2',
'C') },
579 { AV_CODEC_ID_VMNC, MKTAG(
'V',
'M',
'n',
'c') },
580 { AV_CODEC_ID_TARGA, MKTAG(
't',
'g',
'a',
' ') },
581 { AV_CODEC_ID_PNG, MKTAG(
'M',
'P',
'N',
'G') },
582 { AV_CODEC_ID_PNG, MKTAG(
'P',
'N',
'G',
'1') },
583 { AV_CODEC_ID_CLJR, MKTAG(
'c',
'l',
'j',
'r') },
584 { AV_CODEC_ID_DIRAC, MKTAG(
'd',
'r',
'a',
'c') },
585 { AV_CODEC_ID_RPZA, MKTAG(
'a',
'z',
'p',
'r') },
586 { AV_CODEC_ID_RPZA, MKTAG(
'R',
'P',
'Z',
'A') },
587 { AV_CODEC_ID_RPZA, MKTAG(
'r',
'p',
'z',
'a') },
588 { AV_CODEC_ID_SP5X, MKTAG(
'S',
'P',
'5',
'4') },
589 { AV_CODEC_ID_NONE, 0 }
593 #ifndef __WEED_PALETTES_H__ 597 #ifdef FF_API_PIX_FMT 599 int avi_pix_fmt_to_weed_palette(
enum PixelFormat pix_fmt,
int *clamped) {
612 case PIX_FMT_YUV444P:
614 case PIX_FMT_YUV422P:
616 case PIX_FMT_YUV420P:
618 case PIX_FMT_YUYV422:
620 case PIX_FMT_UYVY422:
622 case PIX_FMT_UYYVYY411:
626 case PIX_FMT_MONOWHITE:
627 case PIX_FMT_MONOBLACK:
629 case PIX_FMT_YUVJ422P:
632 case PIX_FMT_YUVJ444P:
635 case PIX_FMT_YUVJ420P:
645 enum PixelFormat weed_palette_to_avi_pix_fmt(
int pal,
int *clamped) {
648 return PIX_FMT_RGB24;
650 return PIX_FMT_BGR24;
659 return PIX_FMT_YUVJ444P;
660 return PIX_FMT_YUV444P;
663 return PIX_FMT_YUVJ422P;
664 return PIX_FMT_YUV422P;
667 return PIX_FMT_YUVJ420P;
668 return PIX_FMT_YUV420P;
670 return PIX_FMT_YUYV422;
672 return PIX_FMT_UYVY422;
674 return PIX_FMT_UYYVYY411;
677 return PIX_FMT_GRAY8;
679 return PIX_FMT_MONOBLACK;
688 int avi_pix_fmt_to_weed_palette(
enum AVPixelFormat pix_fmt,
int *clamped) {
691 case AV_PIX_FMT_RGB24:
693 case AV_PIX_FMT_BGR24:
695 case AV_PIX_FMT_RGBA:
697 case AV_PIX_FMT_BGRA:
699 case AV_PIX_FMT_ARGB:
701 case AV_PIX_FMT_YUV444P:
703 case AV_PIX_FMT_YUV422P:
705 case AV_PIX_FMT_YUV420P:
707 case AV_PIX_FMT_YUYV422:
709 case AV_PIX_FMT_UYVY422:
711 case AV_PIX_FMT_UYYVYY411:
713 case AV_PIX_FMT_GRAY8:
715 case AV_PIX_FMT_MONOWHITE:
716 case AV_PIX_FMT_MONOBLACK:
718 case AV_PIX_FMT_YUVJ422P:
721 case AV_PIX_FMT_YUVJ444P:
724 case AV_PIX_FMT_YUVJ420P:
734 enum AVPixelFormat weed_palette_to_avi_pix_fmt(
int pal,
int *clamped) {
737 return AV_PIX_FMT_RGB24;
739 return AV_PIX_FMT_BGR24;
741 return AV_PIX_FMT_RGBA;
743 return AV_PIX_FMT_BGRA;
745 return AV_PIX_FMT_ARGB;
748 return AV_PIX_FMT_YUVJ444P;
749 return AV_PIX_FMT_YUV444P;
752 return AV_PIX_FMT_YUVJ422P;
753 return AV_PIX_FMT_YUV422P;
756 return AV_PIX_FMT_YUVJ420P;
757 return AV_PIX_FMT_YUV420P;
759 return AV_PIX_FMT_YUYV422;
761 return AV_PIX_FMT_UYVY422;
763 return AV_PIX_FMT_UYYVYY411;
766 return AV_PIX_FMT_GRAY8;
768 return AV_PIX_FMT_MONOBLACK;
771 return AV_PIX_FMT_NONE;
777 #endif // HAVE_AVUTIL 778 #endif // HAVE_AVCODEC 784 #endif // #ifndef __WEED_COMPAT_H__ #define WEED_PALETTE_YUV420P
Definition: weed-palettes.h:76
#define WEED_PALETTE_YUV888
Definition: weed-palettes.h:90
#define WEED_PALETTE_A8
Definition: weed-palettes.h:96
#define WEED_YUV_SUBSPACE_BT709
Definition: weed-palettes.h:115
#define WEED_PALETTE_YUV411
Definition: weed-palettes.h:88
#define WEED_PALETTE_A1
Definition: weed-palettes.h:95
#define WEED_PALETTE_YUV444P
Definition: weed-palettes.h:81
#define WEED_YUV_CLAMPING_CLAMPED
Definition: weed-palettes.h:109
#define WEED_PALETTE_UYVY
Definition: weed-palettes.h:87
#define WEED_PALETTE_END
Definition: weed-palettes.h:59
#define WEED_PALETTE_YUV422P
Definition: weed-palettes.h:74
#define WEED_PALETTE_BGRA32
Definition: weed-palettes.h:71
#define WEED_PALETTE_RGBA32
Definition: weed-palettes.h:65
#define WEED_YUV_CLAMPING_UNCLAMPED
Definition: weed-palettes.h:110
#define WEED_PALETTE_ARGB32
Definition: weed-palettes.h:67
#define WEED_PALETTE_BGR24
Definition: weed-palettes.h:63
#define WEED_YUV_SAMPLING_DEFAULT
Definition: weed-palettes.h:102
#define WEED_PALETTE_YUYV
Definition: weed-palettes.h:84
#define WEED_PALETTE_YVU420P
Definition: weed-palettes.h:78
#define WEED_PALETTE_YUVA4444P
Definition: weed-palettes.h:82
#define WEED_PALETTE_RGB24
Definition: weed-palettes.h:61
#define WEED_YUV_SUBSPACE_YCBCR
Definition: weed-palettes.h:114