📄 tcodecsettings.h.svn-base
字号:
#ifndef _TCODECSETTINGS_H_#define _TCODECSETTINGS_H_#include "ffcodecs.h"#include "ffImgfmt.h"#include "rational.h"#include "Toptions.h"#pragma warning(push)#pragma warning(disable:4201)struct DVprofile;struct TcoSettings :public Toptions{private: void onIncspChange(int,int);public: TcoSettings(TintStrColl *Icoll=NULL); TintStrColl *options; void saveReg(void),loadReg(void); int numthreads; int mode; int bitrate1000; int desiredSize; int codecId; FOURCC fourcc; int globalHeader; int part; int interlacing,interlacing_tff; int dropFrames; int forceIncsp,incspFourcc;TcspInfos incsps;void fillIncsps(void); int isProc; int flip; int storeAVI; int storeExt; char_t storeExtFlnm[MAX_PATH]; int muxer; int isFPSoverride;int fpsOverrideNum,fpsOverrideDen; int aspectMode; enum { ASPECT_SAR=0, ASPECT_DAR=1 }; static const char_t *aspectModes[]; int sarX1000,sarY1000,darX1000,darY1000; Rational sar(unsigned int dx,unsigned int dy) const,dar(unsigned int dx,unsigned int dy) const; int q_i_min,q_i_max,q_p_min,q_p_max,q_b_min,q_b_max,q_mb_min,q_mb_max; bool isQuantControlActive(void) const { return mode!=ENC_MODE::VBR_QUANT && mode!=ENC_MODE::PASS2_1; } int i_quant_factor,i_quant_offset; int quant,qual; int trellisquant; int qns; int max_key_interval,min_key_interval; int keySceneChange; int isIntraQuantBias,intraQuantBias; int isInterQuantBias,interQuantBias; int dct_algo; int mpeg2_dc_prec; int H263Pflags; int me_hq; int me_4mv,me_qpel,me_gmc,me_mv0,me_cbp_rd; int me_subq; int me_cmp,me_cmp_chroma; int me_subcmp,me_subcmp_chroma; int mb_cmp,mb_cmp_chroma; int dia_size; int me_last_predictor_count; int me_prepass; int me_precmp,me_precmp_chroma; int dia_size_pre; int me_nsse_weight; int me_iterative; int skalSearchMetric; int quant_type; int getQuantType(int quant) const; //0 - H.263, 1 - MPEG, 4 - custom (MPEG) int32_t qmatrix_intra_custom0,qmatrix_intra_custom4,qmatrix_intra_custom8,qmatrix_intra_custom12,qmatrix_intra_custom16,qmatrix_intra_custom20,qmatrix_intra_custom24,qmatrix_intra_custom28,qmatrix_intra_custom32,qmatrix_intra_custom36,qmatrix_intra_custom40,qmatrix_intra_custom44,qmatrix_intra_custom48,qmatrix_intra_custom52,qmatrix_intra_custom56,qmatrix_intra_custom60; int32_t qmatrix_inter_custom0,qmatrix_inter_custom4,qmatrix_inter_custom8,qmatrix_inter_custom12,qmatrix_inter_custom16,qmatrix_inter_custom20,qmatrix_inter_custom24,qmatrix_inter_custom28,qmatrix_inter_custom32,qmatrix_inter_custom36,qmatrix_inter_custom40,qmatrix_inter_custom44,qmatrix_inter_custom48,qmatrix_inter_custom52,qmatrix_inter_custom56,qmatrix_inter_custom60; int32_t qmatrix_intra4x4Y_custom0,qmatrix_intra4x4Y_custom4,qmatrix_intra4x4Y_custom8,qmatrix_intra4x4Y_custom12; int32_t qmatrix_inter4x4Y_custom0,qmatrix_inter4x4Y_custom4,qmatrix_inter4x4Y_custom8,qmatrix_inter4x4Y_custom12; int32_t qmatrix_intra4x4C_custom0,qmatrix_intra4x4C_custom4,qmatrix_intra4x4C_custom8,qmatrix_intra4x4C_custom12; int32_t qmatrix_inter4x4C_custom0,qmatrix_inter4x4C_custom4,qmatrix_inter4x4C_custom8,qmatrix_inter4x4C_custom12; static std::pair<int,int> getMinMaxQuant(int codecId) { switch (codecId) { case CODEC_ID_X264:return std::make_pair(1,51); default:return std::make_pair(1,31); } } std::pair<int,int> getMinMaxQuant(void) const { return getMinMaxQuant(codecId); } static const int minQuant=1,maxQuant=51; //global int limitq(int q) const { return limit(q,getMinMaxQuant().first,getMinMaxQuant().second); } //one pass with libavcodec int ff1_vratetol; int ff1_vqcomp; int ff1_vqblur1,ff1_vqblur2; int ff1_vqdiff; int ff1_rc_squish,ff1_rc_max_rate1000,ff1_rc_min_rate1000,ff1_rc_buffer_size; int svcd_scan_offset; int ff1_stats_mode; char_t ff1_stats_flnm[MAX_PATH]; int isCreditsStart,isCreditsEnd; int creditsStartBegin,creditsStartEnd,creditsEndBegin,creditsEndEnd; int credits_mode; int credits_percent,credits_quant_i,credits_quant_p; int credits_size_start,credits_size_end; int isInCredits(int frame) const; char_t stats1flnm[MAX_PATH],stats2flnm[MAX_PATH]; int xvid2pass_use_write; int keyframe_boost; int kftreshold,kfreduction; int curve_compression_high; int curve_compression_low; int use_alt_curve; int alt_curve_use_auto; int alt_curve_auto_str; int alt_curve_use_auto_bonus_bias; int alt_curve_bonus_bias; int alt_curve_type; int alt_curve_high_dist; int alt_curve_low_dist; int alt_curve_min_rel_qual; int twopass_max_bitrate; int twopass_max_overflow_improvement; int twopass_max_overflow_degradation; int bitrate_payback_delay; int bitrate_payback_method; int isBframes; int max_b_frames,b_dynamic,b_refine; int b_quant_factor; //*100 int b_quant_offset; //*100 int packedBitstream,dx50bvop; int isElimLum,elimLumThres; int isElimChrom,elimChromThres; int is_lavc_nr,lavc_nr; int ff_lumi_masking1000,is_ff_lumi_masking; int ff_temporal_cplx_masking1000,is_ff_temporal_cplx_masking; int ff_spatial_cplx_masking1000,is_ff_spatial_cplx_masking; int ff_p_masking1000,is_ff_p_masking; int ff_dark_masking1000,is_ff_dark_masking; int ff_border_masking1000,is_ff_border_masking; int ff_naq; bool isLAVCadaptiveQuant(void) const { return lavc_codec(codecId) && sup_masking(codecId) && (is_ff_lumi_masking || is_ff_temporal_cplx_masking || is_ff_spatial_cplx_masking || is_ff_p_masking || is_ff_dark_masking); } int xvid_lum_masking; int xvid_chromaopt; int isSkalMasking,skalMaskingAmp; int xvid_motion_search; int is_xvid_me_custom,xvid_me_custom; int xvid_me_inter4v; int xvid_vhq; int xvid_vhq_modedecisionbits,is_xvid_vhq_custom,xvid_vhq_custom; int xvid_rc_reaction_delay_factor; int xvid_rc_averaging_period; int xvid_rc_buffer; int huffyuv_csp; int huffyuv_pred; int huffyuv_ctx; static const char_t *huffYUVcsps[],*huffYUVpreds[]; int ljpeg_csp; int ffv1_coder; int ffv1_context; int ffv1_csp; static const TcspFcc ffv1csps[]; static const char_t *ffv1coders[]; int dv_profile; std::vector<const DVprofile*> getDVprofile(unsigned int dx,unsigned int dy) const; const DVprofile* getDVprofile(unsigned int dx,unsigned int dy,PixelFormat lavc_pix_fmt) const; int wmv9_kfsecs; int wmv9_ivtc,wmv9_deint; int wmv9_cplx; int wmv9_crisp; int wmv9_aviout; int theo_hq,theo_sharpness,theo_noisesensitivity; int x264_max_ref_frames; int x264_cabac; int x264_me_inter,x264_me_intra; int x264_me_subpelrefine; int x264_me_method,x264_me_range; static const char_t *x264_me_methods[]; int x264_mv_range; int x264_i_direct_mv_pred; int x264_i_deblocking_filter_alphac0,x264_i_deblocking_filter_beta; int x264_b_bframe_pyramid; int x264_b_aud; int x264_mixed_ref; int x264_is_aq,x264_aq_strength100,x264_f_aq_sensitivity; int x264_b_dct_decimate; FOURCC raw_fourcc; int gray,graycredits;};#pragma warning(pop)#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -