📄 tcodecsettings.cpp.svn-base
字号:
IDFF_enc_alt_curve_use_auto ,&TcoSettings::alt_curve_use_auto ,0,0,_l(""),1, _l("alt_curve_use_auto"),1, IDFF_enc_alt_curve_auto_str ,&TcoSettings::alt_curve_auto_str ,0,100,_l(""),1, _l("alt_curve_auto_str"),30, IDFF_enc_alt_curve_min_rel_qual ,&TcoSettings::alt_curve_min_rel_qual ,0,100,_l(""),1, _l("alt_curve_min_rel_qual"),50, IDFF_enc_alt_curve_use_auto_bonus_bias ,&TcoSettings::alt_curve_use_auto_bonus_bias ,0,0,_l(""),1, _l("alt_curve_use_auto_bonus_bias"),1, IDFF_enc_alt_curve_bonus_bias ,&TcoSettings::alt_curve_bonus_bias ,0,5000,_l(""),1, _l("alt_curve_bonus_bias"),50, IDFF_enc_xvid_lum_masking ,&TcoSettings::xvid_lum_masking ,0,0,_l(""),1, _l("xvid_lum_masking"),0, IDFF_enc_xvid_chromaopt ,&TcoSettings::xvid_chromaopt ,0,0,_l(""),1, _l("xvid_chromaopt"),0, IDFF_enc_isElimLum ,&TcoSettings::isElimLum ,0,0,_l(""),1, _l("isElimLum"),0, IDFF_enc_elimLumThres ,&TcoSettings::elimLumThres ,-1000,1000,_l(""),1, _l("elimLumThres"),-4, IDFF_enc_isElimChrom ,&TcoSettings::isElimChrom ,0,0,_l(""),1, _l("isElimChrom"),0, IDFF_enc_elimChromThres ,&TcoSettings::elimChromThres ,-1000,1000,_l(""),1, _l("elimChromThres"),7, IDFF_enc_is_lavc_nr ,&TcoSettings::is_lavc_nr ,0,0,_l(""),1, _l("is_lavc_nr"),0, IDFF_enc_lavc_nr ,&TcoSettings::lavc_nr ,0,10000,_l(""),1, _l("lavc_nr"),100, IDFF_enc_is_ff_lumi_masking ,&TcoSettings::is_ff_lumi_masking ,0,0,_l(""),1, _l("is_ff_lumi_masking"),0, IDFF_enc_ff_lumi_masking1000 ,&TcoSettings::ff_lumi_masking1000 ,0,1000,_l(""),1, _l("ff_lumi_masking1000"),70, IDFF_enc_is_ff_temporal_cplx_masking ,&TcoSettings::is_ff_temporal_cplx_masking ,0,0,_l(""),1, _l("is_ff_temporal_cplx_masking"),0, IDFF_enc_ff_temporal_cplx_masking1000,&TcoSettings::ff_temporal_cplx_masking1000,0,1000,_l(""),1, _l("ff_temporal_cplx_masking1000"),0, IDFF_enc_is_ff_spatial_cplx_masking ,&TcoSettings::is_ff_spatial_cplx_masking ,0,0,_l(""),1, _l("is_ff_spatial_cplx_masking"),0, IDFF_enc_ff_spatial_cplx_masking1000 ,&TcoSettings::ff_spatial_cplx_masking1000 ,0,1000,_l(""),1, _l("ff_spatial_cplx_masking1000"),0, IDFF_enc_is_ff_p_masking ,&TcoSettings::is_ff_p_masking ,0,0,_l(""),1, _l("is_ff_p_masking"),0, IDFF_enc_ff_p_masking1000 ,&TcoSettings::ff_p_masking1000 ,0,1000,_l(""),1, _l("ff_p_masking1000"),0, IDFF_enc_is_ff_dark_masking ,&TcoSettings::is_ff_dark_masking ,0,0,_l(""),1, _l("is_ff_dark_masking"),0, IDFF_enc_ff_dark_masking1000 ,&TcoSettings::ff_dark_masking1000 ,0,1000,_l(""),1, _l("ff_dark_masking1000"),100, IDFF_enc_is_ff_border_masking ,&TcoSettings::is_ff_border_masking ,0,0,_l(""),1, _l("is_ff_border_masking"),0, IDFF_enc_ff_border_masking1000 ,&TcoSettings::ff_border_masking1000 ,0,1000,_l(""),1, _l("ff_border_masking1000"),0, IDFF_enc_ff_naq ,&TcoSettings::ff_naq ,0,0,_l(""),1, _l("ff_naq"),1, IDFF_enc_isSkalMasking ,&TcoSettings::isSkalMasking ,0,0,_l(""),1, _l("isSkalMasking"),0, IDFF_enc_skalMaskingAmp ,&TcoSettings::skalMaskingAmp ,0,4000,_l(""),1, _l("skalMaskingAmp"),800, IDFF_enc_theo_hq ,&TcoSettings::theo_hq ,0,0,_l(""),1, _l("theo_hq"),0, IDFF_enc_theo_sharpness ,&TcoSettings::theo_sharpness ,0,2,_l(""),1, _l("theo_sharpness"),1, IDFF_enc_theo_noisesensitivity,&TcoSettings::theo_noisesensitivity,0,6,_l(""),1, _l("theo_noisesensitivity"),1, IDFF_enc_raw_fourcc,(TintVal)&TcoSettings::raw_fourcc,0,0,_l(""),1, _l("raw_fourcc"),FOURCC_RGB2, IDFF_enc_x264_max_ref_frames ,&TcoSettings::x264_max_ref_frames , 1, 16,_l(""),1, _l("x264_max_ref_frames"),1, IDFF_enc_x264_cabac ,&TcoSettings::x264_cabac , 0, 0,_l(""),1, _l("x264_cabac"),1, IDFF_enc_x264_me_inter ,&TcoSettings::x264_me_inter , 1, 1,_l(""),1, _l("x264_me_inter2"),X264_ANALYSE_I4x4|X264_ANALYSE_I8x8|X264_ANALYSE_PSUB16x16|X264_ANALYSE_BSUB16x16, IDFF_enc_x264_me_intra ,&TcoSettings::x264_me_intra , 1, 1,_l(""),1, _l("x264_me_intra2"),X264_ANALYSE_I4x4|X264_ANALYSE_I8x8, IDFF_enc_x264_me_subpelrefine ,&TcoSettings::x264_me_subpelrefine , 1, 6,_l(""),1, _l("x264_me_subpelrefine"),5, IDFF_enc_x264_mv_range ,&TcoSettings::x264_mv_range , 1,1024,_l(""),1, _l("x264_mv_range"),512, IDFF_enc_x264_me_method ,&TcoSettings::x264_me_method , 0, 3,_l(""),1, _l("x264_me_method"),X264_ME_HEX, IDFF_enc_x264_me_range ,&TcoSettings::x264_me_range , 4,1024,_l(""),1, _l("x264_me_range"),16, IDFF_enc_x264_i_direct_mv_pred ,&TcoSettings::x264_i_direct_mv_pred , 0, 3,_l(""),1, _l("x264_i_direct_mv_pred"),X264_DIRECT_PRED_SPATIAL, IDFF_enc_x264_i_deblocking_filter_alphac0,&TcoSettings::x264_i_deblocking_filter_alphac0,-6, 6,_l(""),1, _l("x264_i_deblocking_filter_alphac0"),0, IDFF_enc_x264_i_deblocking_filter_beta ,&TcoSettings::x264_i_deblocking_filter_beta ,-6, 6,_l(""),1, _l("x264_i_deblocking_filter_beta"),0, IDFF_enc_x264_b_bframe_pyramid ,&TcoSettings::x264_b_bframe_pyramid , 0, 0,_l(""),1, _l("x264_b_bframe_pyramid"),0, IDFF_enc_x264_b_aud ,&TcoSettings::x264_b_aud , 0, 0,_l(""),1, _l("x264_b_aud"),0, IDFF_enc_x264_mixed_ref ,&TcoSettings::x264_mixed_ref , 0, 0,_l(""),1, _l("x264_mixed_ref"),0, IDFF_enc_x264_b_dct_decimate ,&TcoSettings::x264_b_dct_decimate , 0, 0,_l(""),1, _l("x264_b_dct_decimate"),1, IDFF_enc_x264_is_aq ,&TcoSettings::x264_is_aq , 0, 0,_l(""),1, _l("x264_is_aq"),0, IDFF_enc_x264_aq_strength100 ,&TcoSettings::x264_aq_strength100 , 1, 100,_l(""),1, _l("x264_aq_strength100"),30, IDFF_enc_x264_f_aq_sensitivity ,&TcoSettings::x264_f_aq_sensitivity , 1, 30,_l(""),1, _l("x264_f_aq_sensitivity"),15, 0, }; addOptions(iopts); static const TstrOption sopts[]= { IDFF_enc_ff1_stats_flnm,(TstrVal)&TcoSettings::ff1_stats_flnm,MAX_PATH,_l(""),1, _l("ff1_stats_flnm"),_l("\\video.ffstats"), IDFF_enc_storeExtFlnm ,(TstrVal)&TcoSettings::storeExtFlnm ,MAX_PATH,_l(""),1, _l("storeExtFlnm"),_l(""), IDFF_enc_stats1flnm,(TstrVal)&TcoSettings::stats1flnm,MAX_PATH,_l(""),1, _l("stats1flnm"),_l("\\video.stats"), IDFF_enc_stats2flnm,(TstrVal)&TcoSettings::stats2flnm,MAX_PATH,_l(""),1, _l("stats2flnm"),_l("\\videogk.stats"), 0 }; addOptions(sopts); setOnChange(IDFF_enc_forceIncsp,this,&TcoSettings::onIncspChange); setOnChange(IDFF_enc_incsp,this,&TcoSettings::onIncspChange); static const TcreateParamList1 listAspectMode(aspectModes);setParamList(IDFF_enc_aspectMode,&listAspectMode); static const TcreateParamList1 listHuffYUVcaps(huffYUVcsps);setParamList(IDFF_enc_huffyuv_csp,&listHuffYUVcaps); static const TcreateParamList1 listHuffYUVpreds(huffYUVpreds);setParamList(IDFF_enc_huffyuv_pred,&listHuffYUVpreds); static const TcreateParamList1 listFFV1coders(ffv1coders);setParamList(IDFF_enc_ffv1_coder,&listFFV1coders); static const TcreateParamList2<TcspFcc> listFFV1csp(ffv1csps,&TcspFcc::name);setParamList(IDFF_enc_ffv1_csp,&listFFV1csp); static const TcreateParamList1 listMuxer(Tmuxer::muxers);setParamList(IDFF_enc_muxer,&listMuxer); static const TcreateParamList1 listX264meMethod(x264_me_methods);setParamList(IDFF_enc_x264_me_method,&listX264meMethod);}void TcoSettings::saveReg(void){ TregOpRegWrite t(HKEY_CURRENT_USER,FFDSHOW_REG_PARENT _l("\\") FFDSHOWENC); reg_op(t);}void TcoSettings::loadReg(void){ TregOpRegRead t(HKEY_CURRENT_USER,FFDSHOW_REG_PARENT _l("\\") FFDSHOWENC); reg_op(t); fillIncsps();}int TcoSettings::isInCredits(int frame) const{ if (isCreditsStart && frame>=creditsStartBegin && frame<=creditsStartEnd) return CREDITS_POS::START; else if (isCreditsEnd && frame>=creditsEndBegin && frame<=creditsEndEnd) return CREDITS_POS::END; else return CREDITS_POS::NONE;}int TcoSettings::getQuantType(int quant) const{ switch (quant_type) { case QUANT::MOD: return quant<4?QUANT::MPEG:QUANT::H263; case QUANT::MOD_NEW: return quant<4?QUANT::H263:QUANT::MPEG; default: return quant_type; }}const DVprofile* TcoSettings::getDVprofile(unsigned int dx,unsigned int dy,PixelFormat lavc_pix_fmt) const{ if (dv_profile==DV_PROFILE_AUTO) { AVCodecContext avctx; avctx.width=dx; avctx.height=dy; avctx.pix_fmt=lavc_pix_fmt; return dv_codec_profile(&avctx); } else { const DVprofile *profile=dv_profiles+dv_profile; return (profile->width==(int)dx && profile->height==(int)dy && profile->pix_fmt==lavc_pix_fmt)?profile:NULL; } }std::vector<const DVprofile*> TcoSettings::getDVprofile(unsigned int dx,unsigned int dy) const{ std::vector<const DVprofile*> profiles; if (dv_profile==DV_PROFILE_AUTO) { for (int i=0; i<countof(dv_profiles);i++) if ((int)dx==dv_profiles[i].width && (int)dy==dv_profiles[i].height) profiles.push_back(dv_profiles+i); } else { const DVprofile *profile=dv_profiles+dv_profile; if (profile->width==(int)dx && profile->height==(int)dy) profiles.push_back(profile); } return profiles;}void TcoSettings::onIncspChange(int,int){ fillIncsps();}void TcoSettings::fillIncsps(void){ incsps.clear(); if (forceIncsp) if (incspFourcc<10) { for (int i=0;i<FF_CSPS_NUM;i++) if (csp_inFOURCCmask(1<<i,incspFourcc)) incsps.push_back(cspInfos+i); } else incsps.push_back(csp_getInfoFcc(incspFourcc));}Rational TcoSettings::sar(unsigned int dx,unsigned int dy) const{ switch (aspectMode) { case ASPECT_SAR: return Rational(sarX1000,sarY1000); default: case ASPECT_DAR: { Trect r(0,0,dx,dy); r.setDar(Rational(darX1000,darY1000)); return r.sar; } }}Rational TcoSettings::dar(unsigned int dx,unsigned int dy) const{ switch (aspectMode) { case ASPECT_SAR: return Trect(0,0,dx,dy,sarX1000,sarY1000).dar(); default: case ASPECT_DAR: return Rational(darX1000,darY1000); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -