/*! ************************************************************************ * \file params.h * * \brief * Input parameters related definitions * * \author * ************************************************************************ */ #ifndef _PARAMS_H_ #define _PARAMS_H_ #include "defines.h" #include "types.h" #include "vui_params.h" #include "frame.h" #include "io_video.h" //! all input parameters struct inp_par_enc { int ProfileIDC; //!< value of syntax element profile_idc int LevelIDC; //!< value of syntax element level_idc int IntraProfile; //!< Enable Intra profiles int no_frames; //!< number of frames to be encoded int qp[NUM_SLICE_TYPES]; //!< QP values for all slice types int qp2frame; //!< frame in display order from which to apply the Change QP offsets int qp2off[NUM_SLICE_TYPES]; //!< Change QP offset values for all slice types int qpsp; //!< QPSP quantization value int frame_skip; //!< number of frames to skip in input sequence (e.g 2 takes frame 0,3,6,9...) int jumpd; /*!< number of frames to skip in input sequence including intermediate pictures (e.g 2 takes frame 0,3,6,9...) */ int DisableSubpelME[2]; //!< Disable sub-pixel motion estimation int search_range[2]; /*!< search range - integer pel search and 16x16 blocks. The search window is generally around the predicted vector. Max vector is 2xmcrange. */ int num_ref_frames; //!< number of reference frames to be used int P_List0_refs[2]; //!< number of reference picture in list 0 in P pictures int B_List0_refs[2]; //!< number of reference picture in list 0 in B pictures int B_List1_refs[2]; //!< number of reference picture in list 1 in B pictures int num_ref_frames_org; int P_List0_refs_org[2]; //!< number of reference picture in list 0 in P pictures int B_List0_refs_org[2]; //!< number of reference picture in list 0 in B pictures int B_List1_refs_org[2]; //!< number of reference picture in list 1 in B pictures int Log2MaxFNumMinus4; //!< value of syntax element log2_max_frame_num int Log2MaxPOCLsbMinus4; //!< value of syntax element log2_max_pic_order_cnt_lsb_minus4 // Input/output sequence format related variables FrameFormat source; //!< source related information FrameFormat output; //!< output related information int is_interleaved; int src_resize; //!< Control if input sequence will be resized (currently only cropping is supported) int src_BitDepthRescale; //!< Control if input sequence bitdepth should be adjusted int yuv_format; //!< YUV format (0=4:0:0, 1=4:2:0, 2=4:2:2, 3=4:4:4) int intra_upd; /*!< For error robustness. 0: no special action. 1: One GOB/frame is intra coded as regular 'update'. 2: One GOB every 2 frames is intra coded etc. In connection with this intra update, restrictions is put on motion vectors to prevent errors to propagate from the past */ int slice_mode; //!< Indicate what algorithm to use for setting slices int slice_argument; //!< Argument to the specified slice algorithm int UseConstrainedIntraPred; //!< 0: Inter MB pixels are allowed for intra prediction 1: Not allowed int SetFirstAsLongTerm; //!< Support for temporal considerations for CB plus encoding int infile_header; //!< If input file has a header set this to the length of the header int MultiSourceData; VideoDataFile input_file2; //!< Input video file2 VideoDataFile input_file3; //!< Input video file3 int num_of_views; //!< number of views to encode (1=1view, 2=2views) #if (MVC_EXTENSION_ENABLE) char View1ConfigName[FILE_NAME_SIZE]; //!