📄 tglobalsettings.cpp.svn-base
字号:
}void TglobalSettingsDecAudio::load(void){ TglobalSettingsDec::load(); if (ac3==IDFF_MOVIE_MPLAYER || ac3==IDFF_MOVIE_LAVC) ac3=IDFF_MOVIE_LIBA52; fixMissing(wma1 ,IDFF_MOVIE_LAVC); fixMissing(wma2 ,IDFF_MOVIE_LAVC); fixMissing(amr ,IDFF_MOVIE_LAVC); fixMissing(ac3 ,IDFF_MOVIE_LIBA52); fixMissing(dts ,IDFF_MOVIE_LIBDTS); fixMissing(mp2 ,IDFF_MOVIE_MPLAYER,IDFF_MOVIE_LIBMAD,IDFF_MOVIE_AUDX); fixMissing(mp3 ,IDFF_MOVIE_MPLAYER,IDFF_MOVIE_LIBMAD,IDFF_MOVIE_AUDX); fixMissing(aac ,IDFF_MOVIE_LIBFAAD,IDFF_MOVIE_REALAAC); fixMissing(avis ,IDFF_MOVIE_AVIS); fixMissing(iadpcm ,IDFF_MOVIE_LAVC); fixMissing(msadpcm ,IDFF_MOVIE_LAVC); fixMissing(otherAdpcm,IDFF_MOVIE_LAVC); fixMissing(law ,IDFF_MOVIE_LAVC); fixMissing(gsm ,IDFF_MOVIE_LAVC); fixMissing(flac ,IDFF_MOVIE_LAVC); fixMissing(tta ,IDFF_MOVIE_LAVC); fixMissing(qdm2 ,IDFF_MOVIE_LAVC); fixMissing(mace ,IDFF_MOVIE_LAVC); fixMissing(truespeech,IDFF_MOVIE_LAVC); fixMissing(vorbis ,IDFF_MOVIE_LAVC,IDFF_MOVIE_TREMOR);}#define FF_WAVE_FORMAT1_CODEC(format,decoder,codec) \ case WAVE_FORMAT_##format: \ codecId=(decoder)?codec:CODEC_ID_NONE; \ break;#define FF_WAVE_FORMAT_CODEC(format,decoder,codecs) \ case WAVE_FORMAT_##format: \ codecId=codecs[decoder]; \ break;#define AUDIO_FOURCCS \ FF_WAVE_FORMAT1_OP(WMA7 ,wma1 & rawmask,CODEC_ID_WMAV1) \ FF_WAVE_FORMAT1_OP(WMA8 ,wma2 & rawmask,CODEC_ID_WMAV2) \ FF_WAVE_FORMAT_OP (MPEGLAYER3,mp3 & rawmask,c_mp123) \ FF_WAVE_FORMAT_OP (MPEG ,mp2 & rawmask,c_mp123) \ FF_WAVE_FORMAT_OP (AC3_W ,ac3 & rawmask,c_ac3) \ FF_WAVE_FORMAT_OP (DTS_W ,dts & rawmask,c_dts) \ FF_WAVE_FORMAT_OP (AAC1 ,aac & rawmask,c_aac) \ FF_WAVE_FORMAT_OP (AAC2 ,aac & rawmask,c_aac) \ FF_WAVE_FORMAT_OP (AAC3 ,aac & rawmask,c_aac) \ FF_WAVE_FORMAT_OP (AAC4 ,aac & rawmask,c_aac) \ FF_WAVE_FORMAT1_OP(AMR ,amr & rawmask,CODEC_ID_AMR_NB) \ FF_WAVE_FORMAT1_OP(SAMR ,amr & rawmask,CODEC_ID_AMR_NB) \ FF_WAVE_FORMAT1_OP(IMA_DK3,iadpcm & rawmask,CODEC_ID_ADPCM_IMA_DK3) \ FF_WAVE_FORMAT1_OP(IMA_WAV,iadpcm & rawmask,CODEC_ID_ADPCM_IMA_WAV) \ FF_WAVE_FORMAT1_OP(IMA_DK4,iadpcm & rawmask,CODEC_ID_ADPCM_IMA_DK4) \ FF_WAVE_FORMAT1_OP(IMA4 ,iadpcm & rawmask,CODEC_ID_ADPCM_IMA_QT) \ FF_WAVE_FORMAT1_OP(ADPCM ,msadpcm& rawmask,CODEC_ID_ADPCM_MS) \ FF_WAVE_FORMAT1_OP(CREATIVE_ADPCM,otherAdpcm& rawmask,CODEC_ID_ADPCM_CT) \ FF_WAVE_FORMAT1_OP(YAMAHA_ADPCM ,otherAdpcm& rawmask,CODEC_ID_ADPCM_YAMAHA) \ FF_WAVE_FORMAT1_OP(G726 ,otherAdpcm& rawmask,CODEC_ID_ADPCM_G726) \ FF_WAVE_FORMAT1_OP(ALAW ,law & rawmask,CODEC_ID_PCM_ALAW) \ FF_WAVE_FORMAT1_OP(MULAW ,law & rawmask,CODEC_ID_PCM_MULAW) \ /*FF_WAVE_FORMAT1_OP(QT_ULAW,law & rawmask,CODEC_ID_PCM_MULAW)*/ \ FF_WAVE_FORMAT1_OP(GSM610 ,gsm & rawmask,CODEC_ID_GSM_MS) \ /*FF_WAVE_FORMAT1_OP(QT_GSM ,gsm & rawmask,CODEC_ID_GSM_MS)*/ \ FF_WAVE_FORMAT1_OP(FLAC ,flac & rawmask,CODEC_ID_FLAC) \ FF_WAVE_FORMAT1_OP(TTA ,tta & rawmask,CODEC_ID_TTA) \ FF_WAVE_FORMAT1_OP(QDM2 ,qdm2 & rawmask,CODEC_ID_QDM2) \ FF_WAVE_FORMAT1_OP(MAC3 ,mace & rawmask,CODEC_ID_MACE3) \ FF_WAVE_FORMAT1_OP(MAC6 ,mace & rawmask,CODEC_ID_MACE6) \ FF_WAVE_FORMAT1_OP(DSPGROUP_TRUESPEECH,truespeech & rawmask,CODEC_ID_TRUESPEECH) \ /*FF_WAVE_FORMAT1_OP(COOK ,1 & rawmask,CODEC_ID_COOK)*/ \ FF_WAVE_FORMAT_OP (VORBIS ,vorbis & rawmask,c_vorbis) \ FF_WAVE_FORMAT_OP (FFVORBIS,vorbis & rawmask,c_vorbis) \ /*FF_WAVE_FORMAT1_OP(VORBIS1 ,vorbis& rawmask,CODEC_ID_TREMOR)*/ \ /*FF_WAVE_FORMAT1_OP(VORBIS2 ,vorbis& rawmask,CODEC_ID_TREMOR)*/ \ /*FF_WAVE_FORMAT1_OP(VORBIS3 ,vorbis& rawmask,CODEC_ID_TREMOR)*/ \ /*FF_WAVE_FORMAT1_OP(VORBIS1P,vorbis& rawmask,CODEC_ID_TREMOR)*/ \ /*FF_WAVE_FORMAT1_OP(VORBIS2P,vorbis& rawmask,CODEC_ID_TREMOR)*/ \ /*FF_WAVE_FORMAT1_OP(VORBIS3P,vorbis& rawmask,CODEC_ID_TREMOR)*/ \ FF_WAVE_FORMAT1_OP(LPCM ,lpcm & rawmask,CODEC_ID_LPCM) \ FF_WAVE_FORMAT1_OP(AVIS ,avis & rawmask,CODEC_ID_AVISYNTH) \ FF_WAVE_FORMAT1_OP(PCM8 ,rawa==IDFF_MOVIE_RAW || rawa==(TsampleFormat::SF_ALLINT<<8) || rawa==(TsampleFormat::SF_PCM8 <<8),CODEC_ID_PCM) \ FF_WAVE_FORMAT1_OP(PCM16 ,rawa==IDFF_MOVIE_RAW || rawa==(TsampleFormat::SF_ALLINT<<8) || rawa==(TsampleFormat::SF_PCM16<<8),CODEC_ID_PCM) \ FF_WAVE_FORMAT1_OP(PCM24 ,rawa==IDFF_MOVIE_RAW || rawa==(TsampleFormat::SF_ALLINT<<8) || rawa==(TsampleFormat::SF_PCM24<<8),CODEC_ID_PCM) \ FF_WAVE_FORMAT1_OP(PCM32 ,rawa==IDFF_MOVIE_RAW || rawa==(TsampleFormat::SF_ALLINT<<8) || rawa==(TsampleFormat::SF_PCM32<<8),CODEC_ID_PCM) \ FF_WAVE_FORMAT1_OP(FLOAT32,rawa==IDFF_MOVIE_RAW || rawa==(TsampleFormat::SF_FLOAT32<<8) || rawa==(TsampleFormat::SF_ALLFLOAT<<8),CODEC_ID_PCM) \ FF_WAVE_FORMAT1_OP(FLOAT64,rawa==IDFF_MOVIE_RAW || rawa==(TsampleFormat::SF_FLOAT64<<8) || rawa==(TsampleFormat::SF_ALLFLOAT<<8),CODEC_ID_PCM)const char_t *TglobalSettingsDecAudio::wave_formats[]={ #undef FF_WAVE_FORMAT_OP #undef FF_WAVE_FORMAT1_OP #define FF_WAVE_FORMAT_OP FF_FOURCC_LIST #define FF_WAVE_FORMAT1_OP FF_FOURCC_LIST AUDIO_FOURCCS NULL}; const char_t** TglobalSettingsDecAudio::getFOURCClist(void) const{ return wave_formats; }const CodecID TglobalSettingsDecAudio::c_mp123[IDFF_MOVIE_MAX+1]={ CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_MP3LIB, CODEC_ID_LIBMAD, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_AUDX };const CodecID TglobalSettingsDecAudio::c_ac3[IDFF_MOVIE_MAX+1]={ CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_LIBA52, CODEC_ID_SPDIF_AC3};const CodecID TglobalSettingsDecAudio::c_dts[IDFF_MOVIE_MAX+1]={ CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_SPDIF_DTS, CODEC_ID_LIBDTS};const CodecID TglobalSettingsDecAudio::c_aac[IDFF_MOVIE_MAX+1]={ CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_LIBFAAD, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_REALAAC};const CodecID TglobalSettingsDecAudio::c_vorbis[IDFF_MOVIE_MAX+1]={ CODEC_ID_NONE, CODEC_ID_VORBIS, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_NONE, CODEC_ID_TREMOR };void TglobalSettingsDecAudio::getCodecsList(Tstrptrs &codecs) const{ std::vector<CodecID> ids; #undef FF_WAVE_FORMAT_OP #undef FF_WAVE_FORMAT1_OP #define FF_WAVE_FORMAT_OP(format,decoder,codecs) for (int j=0;j<=IDFF_MOVIE_MAX;j++) if (codecs[j]!=CODEC_ID_NONE) ids.push_back(codecs[j]); #define FF_WAVE_FORMAT1_OP(format,decoder,codec) ids.push_back(codec); AUDIO_FOURCCS cleanupCodecsList(ids,codecs);}CodecID TglobalSettingsDecAudio::getCodecId(DWORD fourCC,FOURCC*) const{ CodecID codecId=CODEC_ID_NONE; int rawmask=filtermode&IDFF_FILTERMODE_AUDIORAW?0:0xffff; switch(fourCC) { #undef FF_WAVE_FORMAT_OP #undef FF_WAVE_FORMAT1_OP #define FF_WAVE_FORMAT_OP FF_WAVE_FORMAT_CODEC #define FF_WAVE_FORMAT1_OP FF_WAVE_FORMAT1_CODEC AUDIO_FOURCCS default:return CODEC_ID_NONE; } return codecId; }//==================================== TglobalSettingsEnc ====================================TglobalSettingsEnc::TglobalSettingsEnc(const Tconfig *Iconfig,int Imode,TintStrColl *Icoll):TglobalSettingsBase(Iconfig,Imode,FFDSHOWENC,Icoll){ static const TintOptionT<TglobalSettingsEnc> iopts[]= { IDFF_enc_psnr ,&TglobalSettingsEnc::psnr ,0,0,_l(""),0, _l("psnr"),0, IDFF_isDyInterlaced ,&TglobalSettingsEnc::isDyInterlaced ,0,0,_l(""),0, _l("isDyInterlaced"),0, IDFF_dyInterlaced ,&TglobalSettingsEnc::dyInterlaced ,0,4096,_l(""),0, _l("dyInterlaced"),288, 0 }; addOptions(iopts); }int TglobalSettingsEnc::getDefault(int id){ switch (id) { case IDFF_trayIcon:return 0; case IDFF_multipleInstances:return 0; default:return TglobalSettingsBase::getDefault(id); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -