📄 ffcodecs.h
字号:
CODEC_OP(CODEC_ID_BGR6 ,309,"raw") \
CODEC_OP(CODEC_ID_YV12 ,310,"raw") \
CODEC_OP(CODEC_ID_YVYU ,311,"raw") \
CODEC_OP(CODEC_ID_UYVY ,312,"raw") \
CODEC_OP(CODEC_ID_VYUY ,313,"raw") \
CODEC_OP(CODEC_ID_I420 ,314,"raw") \
CODEC_OP(CODEC_ID_CLJR ,315,"raw") \
CODEC_OP(CODEC_ID_Y800 ,316,"raw") \
CODEC_OP(CODEC_ID_444P ,317,"raw") \
CODEC_OP(CODEC_ID_422P ,318,"raw") \
CODEC_OP(CODEC_ID_411P ,319,"raw") \
CODEC_OP(CODEC_ID_410P ,320,"raw") \
CODEC_OP(CODEC_ID_NV12 ,321,"raw") \
CODEC_OP(CODEC_ID_NV21 ,322,"raw") \
CODEC_OP(CODEC_ID_PAL1 ,323,"raw") \
CODEC_OP(CODEC_ID_PAL4 ,324,"raw") \
CODEC_OP(CODEC_ID_PAL8 ,325,"raw") \
CODEC_OP(CODEC_ID_LPCM ,398,"raw") \
CODEC_OP(CODEC_ID_PCM ,399,"raw") \
\
CODEC_OP(CODEC_ID_PCM_S32LE ,200,"raw") \
CODEC_OP(CODEC_ID_PCM_S32BE ,201,"raw") \
CODEC_OP(CODEC_ID_PCM_U32LE ,202,"raw") \
CODEC_OP(CODEC_ID_PCM_U32BE ,203,"raw") \
CODEC_OP(CODEC_ID_PCM_S24LE ,204,"raw") \
CODEC_OP(CODEC_ID_PCM_S24BE ,205,"raw") \
CODEC_OP(CODEC_ID_PCM_U24LE ,206,"raw") \
CODEC_OP(CODEC_ID_PCM_U24BE ,207,"raw") \
CODEC_OP(CODEC_ID_PCM_S16LE ,208,"raw") \
CODEC_OP(CODEC_ID_PCM_S16BE ,209,"raw") \
CODEC_OP(CODEC_ID_PCM_S24DAUD ,210,"raw") \
\
CODEC_OP(CODEC_ID_XVID4 ,400,"xvid") \
\
CODEC_OP(CODEC_ID_LIBMPEG2 ,500,"libmpeg2") \
\
CODEC_OP(CODEC_ID_THEORA_LIB ,600,"libtheora") \
\
CODEC_OP(CODEC_ID_MP3LIB ,700,"mp3lib") \
\
CODEC_OP(CODEC_ID_LIBMAD ,800,"libmad") \
\
CODEC_OP(CODEC_ID_LIBFAAD ,900,"faad2") \
\
CODEC_OP(CODEC_ID_WMV9_LIB ,1000,"wmv9codec") \
\
CODEC_OP(CODEC_ID_AVISYNTH ,1100,"avisynth") \
\
CODEC_OP(CODEC_ID_SKAL ,1200,"skal's") \
\
CODEC_OP(CODEC_ID_LIBA52 ,1300,"liba52") \
\
CODEC_OP(CODEC_ID_SPDIF_AC3 ,1400,"s/pdif") \
CODEC_OP(CODEC_ID_SPDIF_DTS ,1401,"s/pdif") \
\
CODEC_OP(CODEC_ID_LIBDTS ,1500,"libdts") \
\
CODEC_OP(CODEC_ID_TREMOR ,1600,"tremor") \
\
CODEC_OP(CODEC_ID_REALAAC ,1700,"realaac") \
\
CODEC_OP(CODEC_ID_AUDX ,1800,"Aud-X") \
\
CODEC_OP(CODEC_ID_X264 ,1900,"x264") \
CODEC_OP(CODEC_ID_X264_LOSSLESS ,1901,"x264 lossless")
enum CodecID
{
#define CODEC_OP(codecEnum,codecId,codecName) codecEnum=codecId,
FFDSHOW_CODECS
#undef CODEC_OP
};
#ifdef __cplusplus
template<> struct isPOD<CodecID> {enum {is=true};};
const FOURCC* getCodecFOURCCs(CodecID codecId);
const char_t* getCodecName(CodecID codecId);
static __inline bool lavc_codec(int x) {return x>0 && x<200;}
static __inline bool raw_codec(int x) {return x>=300 && x<400;}
static __inline bool xvid_codec(int x) {return x==CODEC_ID_XVID4;}
static __inline bool theora_codec(int x) {return x==CODEC_ID_THEORA_LIB;}
static __inline bool mplayer_codec(int x) {return x==CODEC_ID_MP3LIB;}
static __inline bool wmv9_codec(int x) {return x>=1000 && x<1100;}
static __inline bool mpeg12_codec(int x) {return x==CODEC_ID_MPEG1VIDEO || x==CODEC_ID_MPEG2VIDEO || x==CODEC_ID_LIBMPEG2;}
static __inline bool mpeg1_codec(int x) {return x==CODEC_ID_MPEG1VIDEO || x==CODEC_ID_LIBMPEG2;}
static __inline bool mpeg2_codec(int x) {return x==CODEC_ID_MPEG2VIDEO || x==CODEC_ID_LIBMPEG2;}
static __inline bool mpeg4_codec(int x) {return x==CODEC_ID_MPEG4 || xvid_codec(x) || x==CODEC_ID_SKAL;}
static __inline bool spdif_codec(int x) {return x==CODEC_ID_SPDIF_AC3 || x==CODEC_ID_SPDIF_DTS;}
static __inline bool huffyuv_codec(int x) {return x==CODEC_ID_HUFFYUV || x==CODEC_ID_FFVHUFF;}
static __inline bool x264_codec(int x) {return x==CODEC_ID_X264 || x==CODEC_ID_X264_LOSSLESS;}
static __inline bool lossless_codec(int x) {return huffyuv_codec(x) || x==CODEC_ID_LJPEG || x==CODEC_ID_FFV1 || x==CODEC_ID_DVVIDEO || x==CODEC_ID_X264_LOSSLESS;}
//I'm not sure of all these
static __inline bool sup_CBR(int x) {return !lossless_codec(x) && !raw_codec(x);}
static __inline bool sup_VBR_QUAL(int x) {return !lossless_codec(x) && !raw_codec(x) && x!=CODEC_ID_SKAL;}
static __inline bool sup_VBR_QUANT(int x) {return (lavc_codec(x) || xvid_codec(x) || theora_codec(x) || x==CODEC_ID_SKAL || x==CODEC_ID_X264) && !lossless_codec(x) && x!=CODEC_ID_SNOW;}
static __inline bool sup_XVID2PASS(int x) {return sup_VBR_QUANT(x) && x!=CODEC_ID_X264 && x!=CODEC_ID_SNOW;}
static __inline bool sup_LAVC2PASS(int x) {return (lavc_codec(x) && !lossless_codec(x) && x!=CODEC_ID_MJPEG && !raw_codec(x)) || x==CODEC_ID_X264;}
static __inline bool sup_interlace(int x) {return x==CODEC_ID_MPEG4 || x==CODEC_ID_MPEG2VIDEO || xvid_codec(x) || x==CODEC_ID_SKAL;}
static __inline bool sup_gray(int x) {return x!=CODEC_ID_LJPEG && x!=CODEC_ID_FFV1 && x!=CODEC_ID_SNOW && !theora_codec(x) && !wmv9_codec(x) && !raw_codec(x) && x!=CODEC_ID_SKAL && x!=CODEC_ID_DVVIDEO && !x264_codec(x);}
static __inline bool sup_globalheader(int x) {return x==CODEC_ID_MPEG4;}
static __inline bool sup_part(int x) {return x==CODEC_ID_MPEG4;}
static __inline bool sup_packedBitstream(int x) {return xvid_codec(x);}
static __inline bool sup_minKeySet(int x) {return x!=CODEC_ID_MJPEG && x!=CODEC_ID_SNOW && (!lossless_codec(x) || x==CODEC_ID_X264_LOSSLESS) && !wmv9_codec(x) && !raw_codec(x);}
static __inline bool sup_maxKeySet(int x) {return x!=CODEC_ID_MJPEG && (!lossless_codec(x) || x==CODEC_ID_X264_LOSSLESS) && !raw_codec(x);}
static __inline bool sup_bframes(int x) {return x==CODEC_ID_MPEG4 || x==CODEC_ID_MPEG1VIDEO || x==CODEC_ID_MPEG2VIDEO || xvid_codec(x) || x264_codec(x);}
static __inline bool sup_adaptiveBframes(int x) {return lavc_codec(x) || x==CODEC_ID_X264;}
static __inline bool sup_closedGop(int x) {return sup_bframes(x) && !x264_codec(x);}
static __inline bool sup_lavcme(int x) {return lavc_codec(x) && x!=CODEC_ID_MJPEG && !lossless_codec(x);}
static __inline bool sup_quantProps(int x) {return !lossless_codec(x) && !theora_codec(x) && !wmv9_codec(x) && !raw_codec(x) && x!=CODEC_ID_SNOW;}
static __inline bool sup_trellisQuant(int x) {return x==CODEC_ID_MPEG4 || x==CODEC_ID_MPEG1VIDEO || x==CODEC_ID_MPEG2VIDEO || x==CODEC_ID_XVID4 || x==CODEC_ID_H263 || x==CODEC_ID_H263P || x==CODEC_ID_SKAL || x==CODEC_ID_X264;}
static __inline bool sup_masking(int x) {return x==CODEC_ID_MPEG4 || x==CODEC_ID_H263 || x==CODEC_ID_H263P || x==CODEC_ID_MPEG1VIDEO || x==CODEC_ID_MPEG2VIDEO || xvid_codec(x) || x==CODEC_ID_SKAL || x==CODEC_ID_X264;}
static __inline bool sup_lavcOnePass(int x) {return (lavc_codec(x) && !lossless_codec(x)) || x==CODEC_ID_X264;}
static __inline bool sup_perFrameQuant(int x) {return !lossless_codec(x) && !wmv9_codec(x) && !raw_codec(x) && !x264_codec(x) && x!=CODEC_ID_SNOW;}
static __inline bool sup_4mv(int x) {return x==CODEC_ID_MPEG4 || x==CODEC_ID_H263 || x==CODEC_ID_H263P || x==CODEC_ID_SNOW || x==CODEC_ID_SKAL;}
static __inline bool sup_aspect(int x) {return x==CODEC_ID_MPEG4 || x==CODEC_ID_MPEG1VIDEO || x==CODEC_ID_MPEG2VIDEO || x==CODEC_ID_XVID4 || x==CODEC_ID_THEORA_LIB || x264_codec(x);}
static __inline bool sup_PSNR(int x) {return (lavc_codec(x) && !lossless_codec(x)) || xvid_codec(x) || x==CODEC_ID_SKAL || x264_codec(x);}
static __inline bool sup_quantBias(int x) {return lavc_codec(x) && !lossless_codec(x);}
static __inline bool sup_MPEGquant(int x) {return x==CODEC_ID_MPEG4 || x==CODEC_ID_MSMPEG4V3 || x==CODEC_ID_MPEG2VIDEO || xvid_codec(x) || x==CODEC_ID_SKAL;}
static __inline bool sup_lavcQuant(int x) {return lavc_codec(x) && sup_quantProps(x);}
static __inline bool sup_customQuantTables(int x) {return x==CODEC_ID_MPEG4 || xvid_codec(x) || x==CODEC_ID_MPEG1VIDEO || x==CODEC_ID_MPEG2VIDEO || x==CODEC_ID_SKAL || x==CODEC_ID_X264;}
static __inline bool sup_qpel(int x) {return x==CODEC_ID_MPEG4 || x==CODEC_ID_SNOW || xvid_codec(x) || x==CODEC_ID_SKAL;}
static __inline bool sup_gmc(int x) {return xvid_codec(x) || x==CODEC_ID_SKAL;}
static __inline bool sup_me_mv0(int x) {return sup_lavcme(x) && x!=CODEC_ID_SNOW;}
static __inline bool sup_cbp_rd(int x) {return x==CODEC_ID_MPEG4;}
static __inline bool sup_qns(int x) {return lavc_codec(x) && sup_quantProps(x) && x!=CODEC_ID_MSMPEG4V3 && x!=CODEC_ID_MSMPEG4V2 && x!=CODEC_ID_MSMPEG4V1 && x!=CODEC_ID_WMV1 && x!=CODEC_ID_WMV2 && x!=CODEC_ID_MJPEG && x!=CODEC_ID_SNOW;}
static __inline bool sup_threads(int x) {return x==CODEC_ID_MPEG1VIDEO || x==CODEC_ID_MPEG2VIDEO || x==CODEC_ID_MPEG4 || x==CODEC_ID_XVID4 || x264_codec(x);}
static __inline bool sup_threads_dec(int x) {return x==CODEC_ID_MPEG1VIDEO || x==CODEC_ID_MPEG2VIDEO;}
static __inline bool sup_palette(int x) {return x==CODEC_ID_MSVIDEO1 || x==CODEC_ID_8BPS || x==CODEC_ID_QTRLE || x==CODEC_ID_TSCC || x==CODEC_ID_QPEG || x==CODEC_ID_PNG;}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -