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

📄 ccodecs.cpp

📁 从FFMPEG转换而来的H264解码程序,VC下编译..
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    cfgSet(IDFF_lvCodecsSelected,lvGetSelItem(IDC_LV_INCODECS));
    break;
   case WM_COMMAND:
    switch (LOWORD(wParam))
     {
      case IDC_CBX_INCODECS:
       if (HIWORD(wParam)==CBN_SELCHANGE && IsWindowVisible(hcbx))
        {
         int ii=lvGetSelItem(IDC_LV_INCODECS);
         int idff=formats[ii].idff;
         cfgSet(idff,(int)cbxGetCurItemData(IDC_CBX_INCODECS));
         options2dlg(ii);
         return TRUE;
        }
       break;
      case IDC_CHB_CODEC_OPT1:
      case IDC_CHB_CODEC_OPT2:
       dlg2options(LOWORD(wParam));
       return TRUE;
     }
    break;
   case WM_NOTIFY:
    {
     NMHDR *nmhdr=LPNMHDR(lParam);
     if (nmhdr->hwndFrom==hlv && nmhdr->idFrom==IDC_LV_INCODECS)
      switch (nmhdr->code)
       {
        case LVN_GETDISPINFO:
         {
          NMLVDISPINFO *nmdi=(NMLVDISPINFO*)lParam;
          int i=nmdi->item.iItem;
          if (i==-1) break;
          if (nmdi->item.mask&LVIF_TEXT)
           switch (nmdi->item.iSubItem)
            {
             case 0:
              strcpy(nmdi->item.pszText,formats[i].descr);
              break;
             case 1:
              strcpy(nmdi->item.pszText,_(IDC_LV_INCODECS,formats[i].getDecoderName(cfgGet(formats[i].idff))));
              break;
             case 2:
              strcpy(nmdi->item.pszText,_(IDC_LV_INCODECS,formats[i].hint));
              break;
            }
          return TRUE;
         }
        case LVN_GETINFOTIP:
         {
          NMLVGETINFOTIP *nmit=(NMLVGETINFOTIP*)lParam;
          if (nmit->iItem!=-1 && nmit->iSubItem==0)
           strncpy(nmit->pszText,formats[nmit->iItem].hint,nmit->cchTextMax);
          return TRUE;
         }
        case LVN_ITEMCHANGED:
         {
          NMLISTVIEW *nmlv=LPNMLISTVIEW(lParam);
          if (nmlv->iItem!=curitem)
           {
            curitem=-1;
            show(false,IDC_CBX_INCODECS);
            options2dlg(nmlv->iItem);
           }
          return TRUE;
         }
        case NM_CLICK:
         {
          NMITEMACTIVATE *nmia=LPNMITEMACTIVATE(lParam);
          if (nmia->iItem!=-1 && nmia->iSubItem==1)
           beginCodecChange(nmia->iItem);
          else
           show(false,IDC_CBX_INCODECS);
          return TRUE;
         }
       }
     break;
    }
  }
 return TconfPageBase::msgProc(uMsg,wParam,lParam);
}
Twidget* TcodecsPage::createDlgItem(int id,HWND h)
{
 if (id==IDC_LV_INCODECS)
  return new TwidgetCodecsLv(h,this);
 else if (id==IDC_CBX_INCODECS)
  return new TwidgetCodecsCbx(h,this);
 else
  return TconfPageBase::createDlgItem(id,h);
}

void TcodecsPage::translate(void)
{
 TconfPageBase::translate();
 ListView_SetColumnText(hlv,0,_(IDC_LV_INCODECS,_l("Format")));
 ListView_SetColumnText(hlv,1,_(IDC_LV_INCODECS,_l("Decoder")));
 ListView_SetColumnText(hlv,2,_(IDC_LV_INCODECS,thirdCol));
 options2dlg(lvGetSelItem(IDC_LV_INCODECS));
}

//================================= TcodecsPageVideo ===================================
TcodecsPageVideo::TcodecsPageVideo(TffdshowPageDec *Iparent):TcodecsPage(Iparent)
{
// helpURL="in_out.html";
}
void TcodecsPageVideo::init(void)
{
 initLV(_l("Supported FOURCCs/remarks"));
}
void TcodecsPageVideo::fillCodecs(void)
{
 if ((filterMode&IDFF_FILTERMODE_VIDEORAW)==0)
  {
   static const Tformat::Toption options_h264[]={{IDFF_MOVIE_LAVC,_l("skip deblocking when safe"),IDFF_fastH264,1},{IDFF_MOVIE_LAVC,_l("skip deblocking always"),IDFF_fastH264,2},{0,NULL,0,0}};
   formats.push_back(Tformat(_l("H.264/AVC")     ,IDFF_h264,IDFF_MOVIE_LAVC,_l("H264, X264, VSSH (incomplete), DAVC, PAVC, AVC1"),options_h264));
   static const int movies_mpeg4[]={IDFF_MOVIE_LAVC,IDFF_MOVIE_XVID4,0};
   formats.push_back(Tformat(_l("Xvid")          ,IDFF_xvid,movies_mpeg4,_l("XVID, XVIX")));
   formats.push_back(Tformat(_l("DivX 4/5/6")    ,IDFF_dx50,movies_mpeg4,_l("DIVX, DX50, BLZ0, DXGM")));
   formats.push_back(Tformat(_l("Other MPEG4")   ,IDFF_mp4v,movies_mpeg4,_l("MP4V, 3IVX, 3IV1, 3IV2, MP4S, M4S2, RMP4, DM4V, WV1F, FMP4, HDX4, SMP4, LMP4, NDIG, SEDG")));
   formats.push_back(Tformat(_l("DivX 3")        ,IDFF_div3,IDFF_MOVIE_LAVC,_l("DIV3, DIV4, DIV5, DIV6, AP41, COL1, DVX3, MPG3")));
   formats.push_back(Tformat(_l("FVFW,FFDS")     ,IDFF_fvfw,movies_mpeg4,_l("ffdshow and ffvfw internal FOURCCs")));
   formats.push_back(Tformat(_l("MP43")          ,IDFF_mp43,IDFF_MOVIE_LAVC,_l("MP43")));
   formats.push_back(Tformat(_l("MP42")          ,IDFF_mp42,IDFF_MOVIE_LAVC,_l("MP42, DIV2")));
   formats.push_back(Tformat(_l("MP41")          ,IDFF_mp41,IDFF_MOVIE_LAVC,_l("MP41, MPG4, DIV1")));
   formats.push_back(Tformat(_l("H.263 (+)")     ,IDFF_h263,IDFF_MOVIE_LAVC,_l("H263, L263, M263, U263, X263, S263 (in 3gp files)")));
   formats.push_back(Tformat(_l("FLV1")          ,IDFF_flv1,IDFF_MOVIE_LAVC,_l("Flash Video (FLV1)")));
   static const int movies_theora[]={IDFF_MOVIE_LAVC,IDFF_MOVIE_THEO,0};
   static const Tformat::Toption options_theora[]={{IDFF_MOVIE_THEO,_l("Internal postprocessing"),IDFF_libtheoraPostproc,1},{0,NULL,0}};
   formats.push_back(Tformat(_l("Theora")        ,IDFF_theo,movies_theora,_l("Theora Video (THEO)"),options_theora));
   formats.push_back(Tformat(_l("VP3")           ,IDFF_vp3 ,IDFF_MOVIE_LAVC,_l("VP3 Video (VP31)")));
   formats.push_back(Tformat(_l("VP5")           ,IDFF_vp5 ,IDFF_MOVIE_LAVC,_l("VP5 Video (VP50)")));
   formats.push_back(Tformat(_l("VP6")           ,IDFF_vp6 ,IDFF_MOVIE_LAVC,_l("VP6 Video (VP60, VP61, VP62)")));
   formats.push_back(Tformat(_l("VP6F")          ,IDFF_vp6f,IDFF_MOVIE_LAVC,_l("VP6F Video (VP6F, FLV4)")));
   static const int movies_mpeg12[]={IDFF_MOVIE_LAVC,IDFF_MOVIE_LIBMPEG2,0};
   static const Tformat::Toption options_mpeg12[]={{IDFF_MOVIE_LAVC,_l("use speedup tricks"),IDFF_fastMpeg2,1},{0,NULL,0}};
   if ((filterMode&IDFF_FILTERMODE_VFW)==0)
    {
     formats.push_back(Tformat(_l("MPEG1")       ,IDFF_mpg1,movies_mpeg12,_l("MPEG1 codec"),options_mpeg12,LAVC_UNSTABLE));
     static const Tformat::Toption options_mpeg2[]={{IDFF_MOVIE_LAVC,_l("use speedup tricks"),IDFF_fastMpeg2,1},{0,_l("DVD decoding (not working yet)"),IDFF_supDVDdec,1},{0,NULL,0}};
     formats.push_back(Tformat(_l("MPEG2")       ,IDFF_mpg2,movies_mpeg12,_l("MPEG2 codec"),options_mpeg2,LAVC_UNSTABLE));
    }
   formats.push_back(Tformat(_l("MPEG in AVI")   ,IDFF_mpegAVI,movies_mpeg12,_l("MPEG, MPG1, MPG2, 1001, 1002"),options_mpeg12));
   formats.push_back(Tformat(_l("Other MPEG2")   ,IDFF_em2v,movies_mpeg12,_l("EM2V, MMES"),options_mpeg12));
   static const int movies_wmv1[]={IDFF_MOVIE_LAVC,IDFF_MOVIE_WMV9,0};
   formats.push_back(Tformat(_l("WMV1/7")        ,IDFF_wmv1,movies_wmv1,_l("Windows Media Video 7 (WMV1)"),NULL,LAVC_UNSTABLE));
   static const int movies_wmv2[]={IDFF_MOVIE_LAVC,IDFF_MOVIE_WMV9,0};
   formats.push_back(Tformat(_l("WMV2/8")        ,IDFF_wmv2,movies_wmv2,_l("Windows Media Video 8 (WMV2)"),NULL,LAVC_UNSTABLE));
   static const int movies_wmv3[]={IDFF_MOVIE_LAVC,IDFF_MOVIE_WMV9,0};
   formats.push_back(Tformat(_l("WMV3/9")        ,IDFF_wmv3,movies_wmv3,_l("Windows Media Video 9 Simple & Main Profiles (WMV3)"),NULL,LAVC_UNSTABLE));
   static const int movies_wvc1[]={IDFF_MOVIE_LAVC,IDFF_MOVIE_WMV9,0};
   formats.push_back(Tformat(_l("WVC1")          ,IDFF_wvc1,movies_wvc1,_l("Windows Media Video 9 Advanced Profile (WVC1)"),NULL,LAVC_UNSTABLE));
   formats.push_back(Tformat(_l("WMVP")          ,IDFF_wvp2,IDFF_MOVIE_WMV9,_l("Windows Media Video 9 Image (WMVP, WVP2)")));
   formats.push_back(Tformat(_l("MSS1/2")        ,IDFF_mss2,IDFF_MOVIE_WMV9,_l("Windows Screen Codecs (MSS1, MSS2)")));
   formats.push_back(Tformat(_l("H.261")         ,IDFF_h261,IDFF_MOVIE_LAVC,_l("H261, M261")));
   formats.push_back(Tformat(_l("Huffyuv")       ,IDFF_hfyu,IDFF_MOVIE_LAVC,_l("Huffyuv codec for libavcodec (HFYU, FFVH)")));
   formats.push_back(Tformat(_l("MJPEG")         ,IDFF_mjpg,IDFF_MOVIE_LAVC,_l("MJPG, LJPG (lossless)")));
   formats.push_back(Tformat(_l("Other MJPEG")   ,IDFF_avrn,IDFF_MOVIE_LAVC,_l("AVRN, MJPA")));
   formats.push_back(Tformat(_l("SVQ1")          ,IDFF_svq1,IDFF_MOVIE_LAVC,_l("Sorenson Video (SVQ1)")));
   formats.push_back(Tformat(_l("SVQ3")          ,IDFF_svq3,IDFF_MOVIE_LAVC,_l("Sorenson Video (SVQ3)")));
   formats.push_back(Tformat(_l("8BPS")          ,IDFF_8bps,IDFF_MOVIE_LAVC,_l("Quicktime Planar RGB Video (8BPS)")));
   formats.push_back(Tformat(_l("QTRLE")         ,IDFF_qtrle,IDFF_MOVIE_LAVC,_l("Quicktime Animation Video (QTRLE)")));
   formats.push_back(Tformat(_l("QRPZA")         ,IDFF_qtrpza,IDFF_MOVIE_LAVC,_l("Quicktime Video Video (QRPZA)")));
   formats.push_back(Tformat(_l("FFV1")          ,IDFF_ffv1,IDFF_MOVIE_LAVC,_l("FFV1 codec for libavcodec (FFV1)")));
   formats.push_back(Tformat(_l("DV")            ,IDFF_dvsd,IDFF_MOVIE_LAVC,_l("dvsd, DVSD, dv25, DV25, dv50, DV50")));
   formats.push_back(Tformat(_l("Other DV")      ,IDFF_cdvc,IDFF_MOVIE_LAVC,_l("CDVC, CDV5, DVIS, PDVC")));
   formats.push_back(Tformat(_l("CamStudio")     ,IDFF_cscd,IDFF_MOVIE_LAVC,_l("CamStudio Video (CSCD)")));
   formats.push_back(Tformat(_l("CorePNG")       ,IDFF_png1,IDFF_MOVIE_LAVC,_l("CorePNG (PNG1, MPNG)")));
   formats.push_back(Tformat(_l("LOCO")          ,IDFF_loco,IDFF_MOVIE_LAVC,_l("LOCO Video (LOCO)")));
   formats.push_back(Tformat(_l("MSZH")          ,IDFF_mszh,IDFF_MOVIE_LAVC,_l("LCL LossLess Codec Library (MSZH)")));
   formats.push_back(Tformat(_l("Techsmith")     ,IDFF_tscc,IDFF_MOVIE_LAVC,_l("TechSmith Camtasia (TSCC)")));
   formats.push_back(Tformat(_l("ZLIB")          ,IDFF_zlib,IDFF_MOVIE_LAVC,_l("ZLIB LossLess Codec Library (ZLIB)")));
   formats.push_back(Tformat(_l("ZMBV")          ,IDFF_zmbv,IDFF_MOVIE_LAVC,_l("Zip Motion Blocks Video (ZMBV)")));
   formats.push_back(Tformat(_l("Autodesc RLE")  ,IDFF_aasc,IDFF_MOVIE_LAVC,_l("Autodesc RLE (AASC)")));
   formats.push_back(Tformat(_l("ASV1/2")        ,IDFF_asv1,IDFF_MOVIE_LAVC,_l("ASUS V1/V2 (ASV1, ASV2)")));
   formats.push_back(Tformat(_l("ATI VCR1")      ,IDFF_vcr1,IDFF_MOVIE_LAVC,_l("ATI (VCR1)")));
   formats.push_back(Tformat(_l("Cinepak")       ,IDFF_cvid,IDFF_MOVIE_LAVC,_l("Cinepak (CVID)")));
   formats.push_back(Tformat(_l("Chinese AVS")   ,IDFF_cavs,IDFF_MOVIE_LAVC,_l("Chinese AVS video (AVS1-P2, JiZhun profile)")));
   formats.push_back(Tformat(_l("Creative YUV")  ,IDFF_cyuv,IDFF_MOVIE_LAVC,_l("Creative YUV Video (CYUV)")));
   formats.push_back(Tformat(_l("Indeo 2")       ,IDFF_rt21,IDFF_MOVIE_LAVC,_l("Intel Indeo 2 (RT21)")));
   formats.push_back(Tformat(_l("Indeo 3")       ,IDFF_iv32,IDFF_MOVIE_LAVC,_l("Intel Indeo 3 (IV31, IV32)")));
   formats.push_back(Tformat(_l("Fraps")         ,IDFF_fps1,IDFF_MOVIE_LAVC,_l("Fraps v0, v1, v2 & v4 (FPS1)")));
   formats.push_back(Tformat(_l("Miro VideoXL")  ,IDFF_vixl,IDFF_MOVIE_LAVC,_l("Miro VideoXL (VIXL)")));
   formats.push_back(Tformat(_l("MS Video 1")    ,IDFF_cram,IDFF_MOVIE_LAVC,_l("MS Video-1 (CRAM)")));
   formats.push_back(Tformat(_l("MS RLE")        ,IDFF_rle ,IDFF_MOVIE_LAVC,_l("MS RLE Video (MRLE)")));
   formats.push_back(Tformat(_l("Q-Team QPEG")   ,IDFF_qpeg,IDFF_MOVIE_LAVC,_l("Q-Team (QPEG, Q1.0, Q1.1)")));
   formats.push_back(Tformat(_l("Real Video")    ,IDFF_rv10,IDFF_MOVIE_LAVC,_l("Real Video (RV10, RV20, incomplete)")));
   formats.push_back(Tformat(_l("Truemotion 1,2"),IDFF_duck,IDFF_MOVIE_LAVC,_l("Doesn't support 24-bit compression.")));
   formats.push_back(Tformat(_l("Ultimotion")    ,IDFF_ulti,IDFF_MOVIE_LAVC,_l("IBM Ultimotion Video (ULTI)")));
   formats.push_back(Tformat(_l("Winnov V1")     ,IDFF_wnv1,IDFF_MOVIE_LAVC,_l("Winnov WNV1 Video (WNV1)")));
   formats.push_back(Tformat(_l("Snow")          ,IDFF_snow,IDFF_MOVIE_LAVC,_l("experimental")));
   formats.push_back(Tformat(_l("AviSynth")      ,IDFF_avisV,IDFF_MOVIE_AVIS,_l("AVIS (AviSynth AVI files)")));
   for (Tformats::iterator f=formats.begin();f!=formats.end();f++)
    {
     f->decoderCheck(config);
     f->decoders.insert(f->decoders.begin(),Tformat::Tdecoder::init(_l("disabled"),0));
    }
  }
 Tformat raw(_l("Raw video"),IDFF_rawv);
 static const TcspFcc rawincsps[]=
  {
   {_l("disabled"),0},
   {_l("all supported")   ,FOURCC_MASK_ALL},
   {_l("all YUV")         ,FOURCC_MASK_YUV},
   {_l("all RGB")         ,FOURCC_MASK_RGB},
   {_l("8-bit palletized"),FOURCC_MASK_PAL},
   NULL,0
  };
 for (int i=0;rawincsps[i].name;i++)
  raw.decoders.push_back(Tformat::Tdecoder::init(rawincsps[i].name,rawincsps[i].fcc));
 for (int i=0;cspFccs[i].name;i++)
  raw.decoders.push_back(Tformat::Tdecoder::init(cspFccs[i].name,cspFccs[i].fcc));
 formats.push_back(raw);
}

//================================= TcodecsPageAudio ===================================
TcodecsPageAudio::TcodecsPageAudio(TffdshowPageDec *Iparent):TcodecsPage(Iparent)
{
}
void TcodecsPageAudio::init(void)
{
 initLV();
}
void TcodecsPageAudio::fillCodecs(void)
{
 if ((filterMode&IDFF_FILTERMODE_AUDIORAW)==0)
  {
   static const int movie_mp23[]={IDFF_MOVIE_MPLAYER,IDFF_MOVIE_LIBMAD,IDFF_MOVIE_AUDX,0};
   formats.push_back(Tformat(_l("MP3")         ,IDFF_mp3        ,movie_mp23,_l("MPEG-1 Audio Layer 3")));
   formats.push_back(Tformat(_l("MP1,MP2")     ,IDFF_mp2        ,movie_mp23,_l("MPEG-1 Audio Layer 1,2")));
   static const int movie_ac3[]={IDFF_MOVIE_LIBA52,IDFF_MOVIE_SPDIF,0};
   static const Tformat::Toption options_ac3[]={{IDFF_MOVIE_LIBA52,_l("Dynamic range compression"),IDFF_ac3drc,1},{0,_l("Use SPDIF when AC3 output set"),IDFF_ac3SPDIF,1},{NULL,0}};
   formats.push_back(Tformat(_l("AC3")         ,IDFF_ac3        ,movie_ac3,_l("ATSC A-52 stream decoder"),options_ac3));
   static const int movie_dts[]={IDFF_MOVIE_LIBDTS,IDFF_MOVIE_SPDIF,0};
   static const Tformat::Toption options_dts[]={{IDFF_MOVIE_LIBDTS,_l("Dynamic range compression"),IDFF_dtsdrc,1},{0,_l("Check for DTS in WAV"),IDFF_dtsinwav,1},{NULL,0}};
   formats.push_back(Tformat(_l("DTS")         ,IDFF_dts        ,movie_dts,_l("DTS Coherent Acoustics stream decoder"),options_dts));
   static const int movie_aac[]={IDFF_MOVIE_LIBFAAD,IDFF_MOVIE_REALAAC,0};
   formats.push_back(Tformat(_l("AAC")         ,IDFF_aac        ,movie_aac,_l("Advanced Audio Coding (AAC)")));
   static const int movie_vorbis[]={IDFF_MOVIE_LAVC,IDFF_MOVIE_TREMOR,0};
   static const Tformat::Toption options_vorbis[]={{0,_l("VorbisGain"),IDFF_vorbisgain,1},{0,NULL,0}};
   formats.push_back(Tformat(_l("Vorbis")      ,IDFF_vorbis     ,movie_vorbis,_l("High accuracy mode is enabled for tremor."),options_vorbis));
   formats.push_back(Tformat(_l("AMR")         ,IDFF_amr        ,IDFF_MOVIE_LAVC,_l("Adaptive Multi-Rate in 3gp files (AMR)")));
   Tformat lpcm(_l("LPCM"),IDFF_lpcm,_l("Linear Pulse Code Modulation"));
   lpcm.decoders.push_back(Tformat::Tdecoder::init(_l("enabled"),IDFF_MOVIE_RAW));
   formats.push_back(lpcm);
   formats.push_back(Tformat(_l("WMA 7")       ,IDFF_wma7       ,IDFF_MOVIE_LAVC,_l("Windows Media Audio compatible decoder"),NULL));
   formats.push_back(Tformat(_l("WMA 8/9")     ,IDFF_wma8       ,IDFF_MOVIE_LAVC,_l("not WMA9 pro, voice or lossless"),NULL));
   formats.push_back(Tformat(_l("MS ADPCM")    ,IDFF_msadpcm    ,IDFF_MOVIE_LAVC,_l("MS Adaptive DPCM")));
   formats.push_back(Tformat(_l("IMA ADPCM")   ,IDFF_iadpcm     ,IDFF_MOVIE_LAVC,_l("IMA Adaptive DPCM")));
   formats.push_back(Tformat(_l("Other ADPCM") ,IDFF_otherAdpcm ,IDFF_MOVIE_LAVC,_l("Creative, Yamaha, G726")));
   formats.push_back(Tformat(_l("Mulaw/Alaw")  ,IDFF_law        ,IDFF_MOVIE_LAVC,_l("Mu-law & A-law")));
   formats.push_back(Tformat(_l("MS GSM")      ,IDFF_gsm        ,IDFF_MOVIE_LAVC,_l("MS GSM Audio")));
   formats.push_back(Tformat(_l("FLAC")        ,IDFF_flac       ,IDFF_MOVIE_LAVC,_l("FLAC (Free Lossless Audio Codec);To play .flac files you also need a source filter.")));
   formats.push_back(Tformat(_l("True Audio")  ,IDFF_tta        ,IDFF_MOVIE_LAVC,_l("TTA (Lossless Audio Codec);To play .tta files you also need a source filter.")));
   formats.push_back(Tformat(_l("TrueSpeech")  ,IDFF_truespeech ,IDFF_MOVIE_LAVC,_l("DSP Group TrueSpeech compatible decoder")));
   formats.push_back(Tformat(_l("QDM2")        ,IDFF_qdm2       ,IDFF_MOVIE_LAVC,_l("QDM2 compatible decoder (incomplete)")));
   formats.push_back(Tformat(_l("MACE3,MACE6") ,IDFF_mace       ,IDFF_MOVIE_LAVC,_l("Macintosh Audio Compression/Expansion")));
   formats.push_back(Tformat(_l("Real Audio")  ,IDFF_ra         ,IDFF_MOVIE_LAVC,_l("Real Audio 1.0 (14.4K) & RealAudio 2.0 (28.8K)")));
   formats.push_back(Tformat(_l("IMC")         ,IDFF_imc        ,IDFF_MOVIE_LAVC,_l("IMC compatible decoder")));
   formats.push_back(Tformat(_l("ATRAC3")      ,IDFF_atrac3     ,IDFF_MOVIE_LAVC,_l("ATRAC3 compatible decoder")));
   formats.push_back(Tformat(_l("AVIS")        ,IDFF_avisA      ,IDFF_MOVIE_AVIS,_l("AVIS (AviSynth AVI files)")));
  }
 //Tformat::Tdecoder movie_raw[]={{"any",IDFF_MOVIE_RAW},{NULL,0)};
 for (Tformats::iterator f=formats.begin();f!=formats.end();f++)
  {
   f->decoderCheck(config);
   f->decoders.insert(f->decoders.begin(),Tformat::Tdecoder::init(_l("disabled"),0));
  }
 static const Tformat::Tdecoder movie_raw[]=
  {
   {_l("disabled"),0},
   {_l("all supported") ,IDFF_MOVIE_RAW},
   {_l("all integer")   ,(TsampleFormat::SF_ALLINT|TsampleFormat::SF_PCM8)<<8},
   {_l("all float")     ,TsampleFormat::SF_ALLFLOAT<<8},
   {_l("8-bit integer") ,TsampleFormat::SF_PCM8   <<8},
   {_l("16-bit integer"),TsampleFormat::SF_PCM16  <<8},
   {_l("24-bit integer"),TsampleFormat::SF_PCM24  <<8},
   {_l("32-bit integer"),TsampleFormat::SF_PCM32  <<8},
   {_l("32-bit float")  ,TsampleFormat::SF_FLOAT32<<8},
   {_l("64-bit float")  ,TsampleFormat::SF_FLOAT64<<8},
   {NULL,0}
  };
 formats.push_back(Tformat(_l("Uncompressed"),IDFF_rawa,movie_raw,_l("raw,twos,sowt,fl32,fl64,in24,in32")));
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -