⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ffcodecs.h

📁 mpeg4 video codec mpeg4 video codec
💻 H
字号:
#ifndef _FFCODECS_H_#define _FFCODECS_H_#define FFDSHOW_CODECS \ CODEC_OP(CODEC_ID_UNSUPPORTED    ,-1,"unsupported") \ CODEC_OP(CODEC_ID_NONE           , 0,"none") \ \ CODEC_OP(CODEC_ID_MPEG1VIDEO        , 1,"mpeg1video") \ CODEC_OP(CODEC_ID_MPEG2VIDEO        ,49,"mpeg2video") \ CODEC_OP(CODEC_ID_H263              , 2,"h263") \ CODEC_OP(CODEC_ID_MJPEG             , 8,"mjpeg") \ CODEC_OP(CODEC_ID_MPEG4             ,10,"mpeg4") \ CODEC_OP(CODEC_ID_MSMPEG4V1         ,12,"msmpeg4v1") \ CODEC_OP(CODEC_ID_MSMPEG4V2         ,13,"msmpeg4v2") \ CODEC_OP(CODEC_ID_MSMPEG4V3         ,14,"msmpeg4v3") \ CODEC_OP(CODEC_ID_WMV1              ,15,"wmv1") \ CODEC_OP(CODEC_ID_WMV2              ,16,"wmv2") \ CODEC_OP(CODEC_ID_WMV3              ,84,"wmv3") \ CODEC_OP(CODEC_ID_H263P             ,17,"h263+") \ CODEC_OP(CODEC_ID_HUFFYUV           ,26,"huffyuv") \ CODEC_OP(CODEC_ID_FFVHUFF           ,83,"ffvhuff") \ CODEC_OP(CODEC_ID_FFV1              ,43,"ffv1") \ CODEC_OP(CODEC_ID_VP3               ,48,"vp3") \ CODEC_OP(CODEC_ID_LJPEG             ,40,"ljpeg") \ CODEC_OP(CODEC_ID_JPEGLS            ,98,"") \ CODEC_OP(CODEC_ID_RV10              , 3,"rv10") \ CODEC_OP(CODEC_ID_RV20              ,55,"rv20") \ CODEC_OP(CODEC_ID_MP2               , 4,"") \ CODEC_OP(CODEC_ID_MP3               , 5,"") \ CODEC_OP(CODEC_ID_VORBIS            , 6,"vorbis") \ CODEC_OP(CODEC_ID_AC3               , 7,"") \ CODEC_OP(CODEC_ID_MJPEGB            , 9,"mjpegb") \ CODEC_OP(CODEC_ID_CSCD              ,11,"camstudio") \ CODEC_OP(CODEC_ID_H263I             ,18,"h263i") \ CODEC_OP(CODEC_ID_SVQ1              ,19,"svq1") \ CODEC_OP(CODEC_ID_DVVIDEO           ,20,"dvvideo") \ CODEC_OP(CODEC_ID_DVAUDIO           ,21,"") \ CODEC_OP(CODEC_ID_WMAV1             ,22,"wmav1") \ CODEC_OP(CODEC_ID_WMAV2             ,23,"wmav2") \ CODEC_OP(CODEC_ID_PCM_S16LE         ,27,"") \ CODEC_OP(CODEC_ID_PCM_S16BE         ,28,"") \ CODEC_OP(CODEC_ID_PCM_U16LE         ,29,"") \ CODEC_OP(CODEC_ID_PCM_U16BE         ,30,"") \ CODEC_OP(CODEC_ID_PCM_S8            ,31,"") \ CODEC_OP(CODEC_ID_PCM_U8            ,32,"") \ CODEC_OP(CODEC_ID_PCM_MULAW         ,33,"mulaw") \ CODEC_OP(CODEC_ID_PCM_ALAW          ,34,"alaw") \ CODEC_OP(CODEC_ID_ADPCM_IMA_QT      ,35,"adpcm ima qt") \ CODEC_OP(CODEC_ID_ADPCM_IMA_WAV     ,36,"adpcm ima wav") \ CODEC_OP(CODEC_ID_ADPCM_MS          ,37,"adpcm ms") \ CODEC_OP(CODEC_ID_ADPCM_IMA_DK3     ,68,"adpcm ima dk3") \ CODEC_OP(CODEC_ID_ADPCM_IMA_DK4     ,69,"adpcm ima dk4") \ CODEC_OP(CODEC_ID_ADPCM_IMA_WS      ,70,"adpcm ima ws") \ CODEC_OP(CODEC_ID_ADPCM_IMA_SMJPEG  ,71,"adpcm ima smjpeg") \ CODEC_OP(CODEC_ID_ADPCM_4XM         ,72,"adpcm 4xm") \ CODEC_OP(CODEC_ID_ADPCM_XA          ,73,"adpcm xa") \ CODEC_OP(CODEC_ID_ADPCM_ADX         ,74,"adpcm adx") \ CODEC_OP(CODEC_ID_ADPCM_EA          ,75,"adpcm ea") \ CODEC_OP(CODEC_ID_ADPCM_G726        ,67,"adpcm g726") \ CODEC_OP(CODEC_ID_ADPCM_CT          ,80,"adpcm ct") \ CODEC_OP(CODEC_ID_ADPCM_SWF         ,85,"adpcm swf") \ CODEC_OP(CODEC_ID_ADPCM_YAMAHA      ,89,"adpcm yamaha") \ CODEC_OP(CODEC_ID_H264              ,38,"h264") \ CODEC_OP(CODEC_ID_SVQ3              ,39,"svq3") \ CODEC_OP(CODEC_ID_FLV1              ,41,"flv1") \ CODEC_OP(CODEC_ID_ASV1              ,42,"asv1") \ CODEC_OP(CODEC_ID_ASV2              ,50,"asv2") \ CODEC_OP(CODEC_ID_CYUV              ,44,"cyuv") \ CODEC_OP(CODEC_ID_INDEO3            ,45,"indeo3") \ CODEC_OP(CODEC_ID_MSVIDEO1          ,46,"msvideo1") \ CODEC_OP(CODEC_ID_CINEPAK           ,47,"cinepak") \ CODEC_OP(CODEC_ID_VCR1              ,51,"vcr1") \ CODEC_OP(CODEC_ID_MSRLE             ,52,"msrle") \ CODEC_OP(CODEC_ID_SP5X              ,53,"") \ CODEC_OP(CODEC_ID_THEORA            ,54,"theora") \ CODEC_OP(CODEC_ID_MPEG2TS           ,56,"") \ CODEC_OP(CODEC_ID_MSZH              ,57,"mszh") \ CODEC_OP(CODEC_ID_ZLIB              ,58,"zlib") \ CODEC_OP(CODEC_ID_AMR_NB            ,59,"amr nb") \ CODEC_OP(CODEC_ID_8BPS              ,60,"8bps") \ CODEC_OP(CODEC_ID_COREPNG           ,61,"corepng") \ CODEC_OP(CODEC_ID_H261              ,62,"h261") \ CODEC_OP(CODEC_ID_QTRLE             ,63,"qtrle") \ CODEC_OP(CODEC_ID_RPZA              ,64,"rpza") \ CODEC_OP(CODEC_ID_SMC               ,65,"") \ CODEC_OP(CODEC_ID_TRUEMOTION1       ,66,"truemotion") \ CODEC_OP(CODEC_ID_TRUEMOTION2       ,93,"truemotion2") \ CODEC_OP(CODEC_ID_FLAC              ,76,"flac") \ CODEC_OP(CODEC_ID_TSCC              ,77,"tscc") \ CODEC_OP(CODEC_ID_SNOW              ,78,"snow") \ CODEC_OP(CODEC_ID_GSM_MS            ,79,"gsm ms") \ CODEC_OP(CODEC_ID_PNG               ,81,"png") \ CODEC_OP(CODEC_ID_QPEG              ,82,"qpeg") \ CODEC_OP(CODEC_ID_LOCO              ,86,"loco") \ CODEC_OP(CODEC_ID_WNV1              ,87,"wnv1") \ CODEC_OP(CODEC_ID_TTA               ,88,"tta") \ CODEC_OP(CODEC_ID_DTS               ,90,"") \ CODEC_OP(CODEC_ID_AAC               ,91,"") \ CODEC_OP(CODEC_ID_QDM2              ,94,"qdm2") \ CODEC_OP(CODEC_ID_MP3ADU            ,95,"") \ CODEC_OP(CODEC_ID_MP3ON4            ,96,"") \ CODEC_OP(CODEC_ID_DVD_SUBTITLE      ,92,"") \ CODEC_OP(CODEC_ID_COOK              ,97,"cook") \ CODEC_OP(CODEC_ID_TRUESPEECH        ,99,"truespeech") \ \ CODEC_OP(CODEC_ID_RAW           ,100,"raw") \ CODEC_OP(CODEC_ID_YUY2          ,101,"raw") \ CODEC_OP(CODEC_ID_RGB2          ,102,"raw") \ CODEC_OP(CODEC_ID_RGB3          ,103,"raw") \ CODEC_OP(CODEC_ID_RGB5          ,104,"raw") \ CODEC_OP(CODEC_ID_RGB6          ,105,"raw") \ CODEC_OP(CODEC_ID_BGR2          ,112,"raw") \ CODEC_OP(CODEC_ID_BGR3          ,113,"raw") \ CODEC_OP(CODEC_ID_BGR5          ,114,"raw") \ CODEC_OP(CODEC_ID_BGR6          ,115,"raw") \ CODEC_OP(CODEC_ID_YV12          ,106,"raw") \ CODEC_OP(CODEC_ID_YVYU          ,107,"raw") \ CODEC_OP(CODEC_ID_UYVY          ,108,"raw") \ CODEC_OP(CODEC_ID_VYUY          ,121,"raw") \ CODEC_OP(CODEC_ID_I420          ,109,"raw") \ CODEC_OP(CODEC_ID_CLJR          ,110,"raw") \ CODEC_OP(CODEC_ID_Y800          ,111,"raw") \ CODEC_OP(CODEC_ID_444P          ,122,"raw") \ CODEC_OP(CODEC_ID_422P          ,123,"raw") \ CODEC_OP(CODEC_ID_411P          ,124,"raw") \ CODEC_OP(CODEC_ID_410P          ,125,"raw") \ CODEC_OP(CODEC_ID_NV12          ,116,"raw") \ CODEC_OP(CODEC_ID_NV21          ,117,"raw") \ CODEC_OP(CODEC_ID_PAL1          ,118,"raw") \ CODEC_OP(CODEC_ID_PAL4          ,119,"raw") \ CODEC_OP(CODEC_ID_PAL8          ,120,"raw") \ CODEC_OP(CODEC_ID_LPCM          ,198,"raw") \ CODEC_OP(CODEC_ID_PCM           ,199,"raw") \ \ CODEC_OP(CODEC_ID_XVID4         ,201,"xvid") \ \ CODEC_OP(CODEC_ID_LIBMPEG2      ,300,"libmpeg2") \ \ CODEC_OP(CODEC_ID_THEORA_LIB    ,400,"libtheora") \ \ CODEC_OP(CODEC_ID_MP3LIB        ,500,"mp3lib") \ \ CODEC_OP(CODEC_ID_LIBMAD        ,600,"libmad") \ \ CODEC_OP(CODEC_ID_LIBFAAD       ,700,"faad2") \ \ CODEC_OP(CODEC_ID_WMV9_LIB      ,900,"wmv9codec") \ \ CODEC_OP(CODEC_ID_AVISYNTH      ,1000,"avisynth") \ \ CODEC_OP(CODEC_ID_SKAL          ,1100,"skal's") \ \ CODEC_OP(CODEC_ID_X264          ,1200,"x264") \ CODEC_OP(CODEC_ID_X264_LOSSLESS ,1201,"x264 lossless") \ \ 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")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 <100;}static __inline bool raw_codec(int x)      {return x>= 100 && x <200;}static __inline bool xvid_codec(int x)     {return x>= 200 && x <300;}static __inline bool theora_codec(int x)   {return x==CODEC_ID_THEORA_LIB;}static __inline bool mplayer_codec(int x)  {return x>= 500 && x <600;}static __inline bool wmv9_codec(int x)     {return x>= 900 && x<1000;}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>=1400 && x<1500;}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 thesestatic __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_DVVIDEO || x==CODEC_ID_MPEG1VIDEO || x==CODEC_ID_MPEG2VIDEO || x==CODEC_ID_H263 || x==CODEC_ID_H263P || x==CODEC_ID_FLV1 || x==CODEC_ID_RV10 || x==CODEC_ID_MPEG4 || x==CODEC_ID_MSMPEG4V1 || x==CODEC_ID_MSMPEG4V2 || x==CODEC_ID_MSMPEG4V3 || x==CODEC_ID_WMV1 || x==CODEC_ID_WMV2 || x==CODEC_ID_MJPEG || x264_codec(x);}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 + -