📄 tglobalsettings.cpp
字号:
FF_FOURCC1_OP(FFVH,hfyu & rawmask,CODEC_ID_HUFFYUV) \
FF_FOURCC1_OP(CYUV,cyuv & rawmask,CODEC_ID_CYUV) \
FF_FOURCC1_OP(ASV1,asv1 & rawmask,CODEC_ID_ASV1) \
FF_FOURCC1_OP(ASV2,asv1 & rawmask,CODEC_ID_ASV2) \
FF_FOURCC1_OP(VCR1,vcr1 & rawmask,CODEC_ID_VCR1) \
FF_FOURCC_OP (THEO,theo & rawmask,c_theora) \
FF_FOURCC1_OP(SVQ1,svq1 & rawmask,CODEC_ID_SVQ1) \
FF_FOURCC1_OP(SVQ3,svq3 & rawmask,CODEC_ID_SVQ3) \
FF_FOURCC1_OP(RPZA,qtrpza & rawmask,CODEC_ID_RPZA) \
FF_FOURCC1_OP(FFV1,ffv1 & rawmask,CODEC_ID_FFV1) \
FF_FOURCC1_OP(VP31,vp3 & rawmask,CODEC_ID_VP3) \
FF_FOURCC1_OP(RLE8,rle & rawmask,CODEC_ID_MSRLE) \
FF_FOURCC1_OP(MSZH,mszh & rawmask,CODEC_ID_MSZH) \
FF_FOURCC1_OP(ZLIB,zlib & rawmask,CODEC_ID_ZLIB) \
FF_FOURCC1_OP(FLV1,flv1 & rawmask,CODEC_ID_FLV1) \
FF_FOURCC1_OP(PNG1,png1 & rawmask,CODEC_ID_COREPNG) \
FF_FOURCC1_OP(MPNG,png1 & rawmask,CODEC_ID_PNG) \
FF_FOURCC1_OP(AVIS,avis & rawmask,CODEC_ID_AVISYNTH) \
FF_FOURCC1_OP(CRAM,cram & rawmask,CODEC_ID_MSVIDEO1) \
FF_FOURCC1_OP(RT21,rt21 & rawmask,CODEC_ID_INDEO2) \
FF_FOURCC1_OP(IV32,iv32 & rawmask,CODEC_ID_INDEO3) \
FF_FOURCC1_OP(IV31,iv32 & rawmask,CODEC_ID_INDEO3) \
FF_FOURCC1_OP(CVID,cvid & rawmask,CODEC_ID_CINEPAK) \
FF_FOURCC1_OP(RV10,rv10 & rawmask,CODEC_ID_RV10) \
FF_FOURCC1_OP(RV20,rv10 & rawmask,CODEC_ID_RV20) \
FF_FOURCC1_OP(8BPS,_8bps& rawmask,CODEC_ID_8BPS) \
FF_FOURCC1_OP(QRLE,qtrle& rawmask,CODEC_ID_QTRLE) \
FF_FOURCC1_OP(DUCK,duck & rawmask,CODEC_ID_TRUEMOTION1) \
FF_FOURCC1_OP(TM20,duck & rawmask,CODEC_ID_TRUEMOTION2) \
FF_FOURCC1_OP(TSCC,tscc & rawmask,CODEC_ID_TSCC) \
FF_FOURCC1_OP(SNOW,snow & rawmask,CODEC_ID_SNOW) \
FF_FOURCC1_OP(QPEG,qpeg & rawmask,CODEC_ID_QPEG) \
FF_FOURCC1_OP(Q1_0,qpeg & rawmask,CODEC_ID_QPEG) \
FF_FOURCC1_OP(Q1_1,qpeg & rawmask,CODEC_ID_QPEG) \
FF_FOURCC1_OP(H261,h261 & rawmask,CODEC_ID_H261) \
FF_FOURCC1_OP(M261,h261 & rawmask,CODEC_ID_H261) \
FF_FOURCC1_OP(LOCO,loco & rawmask,CODEC_ID_LOCO) \
FF_FOURCC1_OP(WNV1,wnv1 & rawmask,CODEC_ID_WNV1) \
FF_FOURCC1_OP(CSCD,cscd & rawmask,CODEC_ID_CSCD) \
FF_FOURCC1_OP(ZMBV,zmbv & rawmask,CODEC_ID_ZMBV) \
FF_FOURCC1_OP(ULTI,ulti & rawmask,CODEC_ID_ULTI) \
FF_FOURCC1_OP(VIXL,vixl & rawmask,CODEC_ID_VIXL) \
FF_FOURCC1_OP(AASC,aasc & rawmask,CODEC_ID_AASC) \
FF_FOURCC1_OP(FPS1,fps1 & rawmask,CODEC_ID_FRAPS) \
/* uncompressed video */ \
FF_FOURCC1_OP(YUY2,rawv==1 || rawv==2 || rawv==FOURCC_YUY2,CODEC_ID_YUY2) \
FF_FOURCC1_OP(YV12,rawv==1 || rawv==2 || rawv==FOURCC_YV12,CODEC_ID_YV12) \
FF_FOURCC1_OP(YVYU,rawv==1 || rawv==2 || rawv==FOURCC_YVYU,CODEC_ID_YVYU) \
FF_FOURCC1_OP(UYVY,rawv==1 || rawv==2 || rawv==FOURCC_UYVY,CODEC_ID_UYVY) \
FF_FOURCC1_OP(VYUY,rawv==1 || rawv==2 || rawv==FOURCC_VYUY,CODEC_ID_VYUY) \
FF_FOURCC1_OP(I420,rawv==1 || rawv==2 || rawv==FOURCC_I420,CODEC_ID_I420) \
FF_FOURCC1_OP(IYUV,rawv==1 || rawv==2 || rawv==FOURCC_IYUV,CODEC_ID_I420) \
FF_FOURCC1_OP(RGB2,rawv==1 || rawv==3 || rawv==FOURCC_RGB2,CODEC_ID_RGB2) \
FF_FOURCC1_OP(RGB3,rawv==1 || rawv==3 || rawv==FOURCC_RGB3,CODEC_ID_RGB3) \
FF_FOURCC1_OP(RGB5,rawv==1 || rawv==3 || rawv==FOURCC_RGB5,CODEC_ID_RGB5) \
FF_FOURCC1_OP(RGB6,rawv==1 || rawv==3 || rawv==FOURCC_RGB6,CODEC_ID_RGB6) \
FF_FOURCC1_OP(CLJR,rawv==1 || rawv==FOURCC_CLJR,CODEC_ID_CLJR) \
FF_FOURCC1_OP(Y800,rawv==1 || rawv==2 || rawv==FOURCC_Y800,CODEC_ID_Y800) \
FF_FOURCC1_OP(444P,rawv==1 || rawv==2 || rawv==FOURCC_444P,CODEC_ID_444P) \
FF_FOURCC1_OP(YV24,rawv==1 || rawv==2 || rawv==FOURCC_YV24,CODEC_ID_444P) \
FF_FOURCC1_OP(422P,rawv==1 || rawv==2 || rawv==FOURCC_422P,CODEC_ID_422P) \
FF_FOURCC1_OP(YV16,rawv==1 || rawv==2 || rawv==FOURCC_YV16,CODEC_ID_422P) \
FF_FOURCC1_OP(411P,rawv==1 || rawv==2 || rawv==FOURCC_411P,CODEC_ID_411P) \
FF_FOURCC1_OP(Y41B,rawv==1 || rawv==2 || rawv==FOURCC_Y41B,CODEC_ID_411P) \
FF_FOURCC1_OP(410P,rawv==1 || rawv==2 || rawv==FOURCC_410P,CODEC_ID_410P) \
FF_FOURCC1_OP(NV12,rawv==1 || rawv==2 || rawv==FOURCC_NV12,CODEC_ID_NV12) \
FF_FOURCC1_OP(NV21,rawv==1 || rawv==2 || rawv==FOURCC_NV12,CODEC_ID_NV21) \
/*FF_FOURCC1_OP(PAL1,rawv==1 || rawv==4 || rawv==FOURCC_PAL1,CODEC_ID_PAL1)*/ \
/*FF_FOURCC1_OP(PAL4,rawv==1 || rawv==4 || rawv==FOURCC_PAL4,CODEC_ID_PAL4)*/ \
/*FF_FOURCC1_OP(PAL8,rawv==1 || rawv==4 || rawv==FOURCC_PAL8,CODEC_ID_PAL8)*/ \
/* mencoder's raw formats */ \
FF_FOURCC1_OP(RGB24MPLAYER,rawv==1 || rawv==3 || rawv==FOURCC_RGB2,CODEC_ID_BGR2) \
FF_FOURCC1_OP(RGB32MPLAYER,rawv==1 || rawv==3 || rawv==FOURCC_RGB3,CODEC_ID_BGR3) \
FF_FOURCC1_OP(RGB15MPLAYER,rawv==1 || rawv==3 || rawv==FOURCC_RGB5,CODEC_ID_BGR5) \
FF_FOURCC1_OP(RGB16MPLAYER,rawv==1 || rawv==3 || rawv==FOURCC_RGB6,CODEC_ID_BGR6) \
/* exotic */ \
FF_FOURCC_OP (MP4S,mp4v & rawmask,c_mpeg4) \
FF_FOURCC_OP (SEDG,mp4v & rawmask,c_mpeg4) \
FF_FOURCC_OP (M4S2,mp4v & rawmask,c_mpeg4) \
FF_FOURCC_OP (BLZ0,dx50 & rawmask,c_mpeg4) \
FF_FOURCC_OP (DXGM,dx50 & rawmask,c_mpeg4) \
FF_FOURCC_OP (LMP4,mp4v & rawmask,c_mpeg4) \
FF_FOURCC_OP (RMP4,mp4v & rawmask,c_mpeg4) \
FF_FOURCC_OP (DM4V,mp4v & rawmask,c_mpeg4) \
FF_FOURCC_OP (HDX4,mp4v & rawmask,c_mpeg4) \
FF_FOURCC_OP (UMP4,mp4v & rawmask,c_mpeg4) \
FF_FOURCC_OP (NDIG,mp4v & rawmask,c_mpeg4) \
FF_FOURCC_OP (XVIX,xvid & rawmask,c_mpeg4) \
FF_FOURCC_OP (3IV1,mp4v & rawmask,c_mpeg4) \
FF_FOURCC_OP (3IV2,mp4v & rawmask,c_mpeg4) \
FF_FOURCC1_OP(COL1,div3 & rawmask,CODEC_ID_MSMPEG4V3) \
FF_FOURCC1_OP(DIV4,div3 & rawmask,CODEC_ID_MSMPEG4V3) \
FF_FOURCC1_OP(DIV5,div3 & rawmask,CODEC_ID_MSMPEG4V3) \
FF_FOURCC1_OP(DIV6,div3 & rawmask,CODEC_ID_MSMPEG4V3) \
FF_FOURCC1_OP(AP41,div3 & rawmask,CODEC_ID_MSMPEG4V3) \
FF_FOURCC1_OP(MPG3,div3 & rawmask,CODEC_ID_MSMPEG4V3) \
FF_FOURCC1_OP(DIV2,mp42 & rawmask,CODEC_ID_MSMPEG4V2) \
FF_FOURCC1_OP(MPG4,mp41 & rawmask,CODEC_ID_MSMPEG4V1) \
FF_FOURCC1_OP(DIV1,mp41 & rawmask,CODEC_ID_MSMPEG4V1) \
#define FF_FOURCC_LIST(fourCC,decoder,codec) _l(#fourCC),
const char_t* TglobalSettingsDecVideo::fourccs[]=
{
#undef FF_FOURCC_OP
#undef FF_FOURCC1_OP
#define FF_FOURCC_OP FF_FOURCC_LIST
#define FF_FOURCC1_OP FF_FOURCC_LIST
VIDEO_FOURCCS
NULL
};
const char_t** TglobalSettingsDecVideo::getFOURCClist(void) const
{
return fourccs;
}
const CodecID TglobalSettingsDecVideo::c_mpeg4[IDFF_MOVIE_MAX+1]=
{
CODEC_ID_NONE,
CODEC_ID_MPEG4,
CODEC_ID_NONE,
CODEC_ID_NONE,
CODEC_ID_NONE,
CODEC_ID_NONE,
CODEC_ID_NONE,
CODEC_ID_NONE,
CODEC_ID_NONE,
CODEC_ID_XVID4
};
const CodecID TglobalSettingsDecVideo::c_mpeg1[IDFF_MOVIE_MAX+1]=
{
CODEC_ID_NONE,
CODEC_ID_MPEG1VIDEO,
CODEC_ID_NONE,
CODEC_ID_NONE,
CODEC_ID_NONE,
CODEC_ID_LIBMPEG2
};
const CodecID TglobalSettingsDecVideo::c_mpeg2[IDFF_MOVIE_MAX+1]=
{
CODEC_ID_NONE,
CODEC_ID_MPEG2VIDEO,
CODEC_ID_NONE,
CODEC_ID_NONE,
CODEC_ID_NONE,
CODEC_ID_LIBMPEG2
};
const CodecID TglobalSettingsDecVideo::c_theora[IDFF_MOVIE_MAX+1]=
{
CODEC_ID_NONE,
CODEC_ID_THEORA,
CODEC_ID_NONE,
CODEC_ID_THEORA_LIB
};
const CodecID TglobalSettingsDecVideo::c_wvc1[IDFF_MOVIE_MAX+1]=
{
CODEC_ID_NONE,
CODEC_ID_VC1,
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_WMV9_LIB
};
const CodecID TglobalSettingsDecVideo::c_wmv3[IDFF_MOVIE_MAX+1]=
{
CODEC_ID_NONE,
CODEC_ID_WMV3,
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_WMV9_LIB
};
const CodecID TglobalSettingsDecVideo::c_wmv2[IDFF_MOVIE_MAX+1]=
{
CODEC_ID_NONE,
CODEC_ID_WMV2,
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_WMV9_LIB
};
const CodecID TglobalSettingsDecVideo::c_wmv1[IDFF_MOVIE_MAX+1]=
{
CODEC_ID_NONE,
CODEC_ID_WMV1,
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_WMV9_LIB
};
void TglobalSettingsDecVideo::getCodecsList(Tstrptrs &codecs) const
{
std::vector<CodecID> ids;
#undef FF_FOURCC_OP
#undef FF_FOURCC1_OP
#define FF_FOURCC_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_FOURCC1_OP(format,decoder,codec) ids.push_back(codec);
VIDEO_FOURCCS
cleanupCodecsList(ids,codecs);
}
CodecID TglobalSettingsDecVideo::getCodecId(DWORD fourCC,FOURCC *AVIfourCC) const
{
fourCC=FCCupper(fourCC);
CodecID codecId=CODEC_ID_NONE;
int rawmask=filtermode&IDFF_FILTERMODE_VIDEORAW?0:0xffff;
switch(fourCC)
{
#undef FF_FOURCC_OP
#undef FF_FOURCC1_OP
#define FF_FOURCC_OP FF_FOURCC_CODEC
#define FF_FOURCC1_OP FF_FOURCC1_CODEC
VIDEO_FOURCCS
default:return CODEC_ID_NONE;
}
if (codecId && AVIfourCC)
*AVIfourCC=fourCC;
return codecId;
}
//======================== TglobalSettingsDecVideo::TsubtitlesSettings ==========================
TglobalSettingsDecVideo::TsubtitlesSettings::TsubtitlesSettings(TintStrColl *Icoll):Toptions(Icoll)
{
static const TintOptionT<TsubtitlesSettings> iopts[]=
{
IDFF_subTextpin ,&TsubtitlesSettings::textpin ,0,0,_l(""),0,
_l("subTextpin"),0,
IDFF_subTextpinSSA ,&TsubtitlesSettings::textpinSSA ,0,0,_l(""),0,
_l("subTextpinSSA"),0,
IDFF_subWatch ,&TsubtitlesSettings::watch ,0,0,_l(""),1,
_l("subWatch"),0,
IDFF_subSearchHeuristic,&TsubtitlesSettings::searchHeuristic,0,0,_l(""),1,
_l("subSearchHeuristic"),0,
0
};
addOptions(iopts);
static const TstrOption sopts[]=
{
IDFF_subSearchDir,(TstrVal)&TsubtitlesSettings::searchDir,2*MAX_PATH ,_l(""),0,
_l("subSearchDir"),NULL,
IDFF_subSearchExt,(TstrVal)&TsubtitlesSettings::searchExt,2*MAX_PATH ,_l(""),0,
_l("subSearchExt"),_l("utf;idx;sub;srt;smi;rt;txt;ssa;aqt;mpl;usf"),
0
};
addOptions(sopts);
}
void TglobalSettingsDecVideo::TsubtitlesSettings::getDefaultStr(int id,char_t *buf,size_t buflen)
{
if (id==IDFF_subSearchDir)
{
TregOpRegRead tt(HKEY_LOCAL_MACHINE,_l("SOFTWARE\\PRR\\DivXG400"));
tt._REG_OP_S(0,_l("SubPath"),buf,buflen,_l("."));
}
}
//=================================== TglobalSettingsDecAudio ===================================
TglobalSettingsDecAudio::TglobalSettingsDecAudio(const Tconfig *Iconfig,int Imode,TintStrColl *Icoll,const char_t *Ireg_child):TglobalSettingsDec(Iconfig,Imode,Ireg_child,Icoll,&osd),osd(Icoll)
{
static const TintOptionT<TglobalSettingsDecAudio> iopts[]=
{
IDFF_wma7 ,&TglobalSettingsDecAudio::wma1 ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_wma8 ,&TglobalSettingsDecAudio::wma2 ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_mp3 ,&TglobalSettingsDecAudio::mp3 ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_mp2 ,&TglobalSettingsDecAudio::mp2 ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_ac3 ,&TglobalSettingsDecAudio::ac3 ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_dts ,&TglobalSettingsDecAudio::dts ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_aac ,&TglobalSettingsDecAudio::aac ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_amr ,&TglobalSettingsDecAudio::amr ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_iadpcm ,&TglobalSettingsDecAudio::iadpcm ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_msadpcm ,&TglobalSettingsDecAudio::msadpcm ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_otherAdpcm ,&TglobalSettingsDecAudio::otherAdpcm ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_law ,&TglobalSettingsDecAudio::law ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_gsm ,&TglobalSettingsDecAudio::gsm ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_lpcm ,&TglobalSettingsDecAudio::lpcm ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_flac ,&TglobalSettingsDecAudio::flac ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_tta ,&TglobalSettingsDecAudio::tta ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_qdm2 ,&TglobalSettingsDecAudio::qdm2 ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_mace ,&TglobalSettingsDecAudio::mace ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_truespeech ,&TglobalSettingsDecAudio::truespeech ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_vorbis ,&TglobalSettingsDecAudio::vorbis ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_ra ,&TglobalSettingsDecAudio::ra ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_imc ,&TglobalSettingsDecAudio::imc ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_atrac3 ,&TglobalSettingsDecAudio::atrac3 ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_avisA ,&TglobalSettingsDecAudio::avis ,0,IDFF_MOVIE_MAX,_l(""),0,NULL,0,
IDFF_rawa ,&TglobalSettingsDecAudio::rawa ,0,0 ,_l(""),0,NULL,0,
IDFF_showCurrentVolume ,&TglobalSettingsDecAudio::showCurrentVolume ,0,0 ,_l(""),0,
_l("showCurrentVolume"),0,
IDFF_showCurrentFFT ,&TglobalSettingsDecAudio::showCurrentFFT ,0,0 ,_l(""),0,
_l("showCurrentFFT"),0,
IDFF_firIsUserDisplayMaxFreq,&TglobalSettingsDecAudio::firIsUserDisplayMaxFreq,0,0 ,_l(""),0,
_l("firIsUserDisplayMaxFreq"),0,
IDFF_firUserDisplayMaxFreq ,&TglobalSettingsDecAudio::firUserDisplayMaxFreq ,1,192000/2 ,_l(""),0,
_l("firUserDisplayMaxFreq"),48000,
IDFF_isAudioSwitcher ,&TglobalSettingsDecAudio::isAudioSwitcher ,0,0 ,_l(""),0,
_l("isAudioSwitcher"),0,
IDFF_alwaysextensible ,&TglobalSettingsDecAudio::alwaysextensible ,0,0 ,_l(""),0,
_l("alwaysextensible"),1,
IDFF_allowOutStream ,&TglobalSettingsDecAudio::allowOutStream ,0,0 ,_l(""),0,
_l("allowOutStream"),1,
IDFF_ac3drc ,&TglobalSettingsDecAudio::ac3drc ,0,0 ,_l(""),0,
_l("ac3drc"),1,
IDFF_dtsdrc ,&TglobalSettingsDecAudio::dtsdrc ,0,0 ,_l(""),0,
_l("dtsdrc"),1,
IDFF_dtsinwav ,&TglobalSettingsDecAudio::dtsinwav ,0,0 ,_l(""),0,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -