📄 avcodec.h
字号:
int dia_size; /** * amount of previous MV predictors (2a+1 x 2a+1 square). * - encoding: set by user. * - decoding: unused */ int last_predictor_count; /** * pre pass for motion estimation. * - encoding: set by user. * - decoding: unused */ int pre_me; /** * motion estimation pre pass compare function. * - encoding: set by user. * - decoding: unused */ int me_pre_cmp; /** * ME pre pass diamond size & shape. * - encoding: set by user. * - decoding: unused */ int pre_dia_size; /** * subpel ME quality. * - encoding: set by user. * - decoding: unused */ int me_subpel_quality; /** * callback to negotiate the pixelFormat. * @param fmt is the list of formats which are supported by the codec, * its terminated by -1 as 0 is a valid format, the formats are ordered by quality * the first is allways the native one * @return the choosen format * - encoding: unused * - decoding: set by user, if not set then the native format will always be choosen */ enum PixelFormat (*get_format)(struct AVCodecContext *s, const enum PixelFormat * fmt); /** * DTG active format information (additionnal aspect ratio * information only used in DVB MPEG2 transport streams). 0 if * not set. * * - encoding: unused. * - decoding: set by decoder */ int dtg_active_format;#define FF_DTG_AFD_SAME 8#define FF_DTG_AFD_4_3 9#define FF_DTG_AFD_16_9 10#define FF_DTG_AFD_14_9 11#define FF_DTG_AFD_4_3_SP_14_9 13#define FF_DTG_AFD_16_9_SP_14_9 14#define FF_DTG_AFD_SP_4_3 15 /** * Maximum motion estimation search range in subpel units. * if 0 then no limit * * - encoding: set by user. * - decoding: unused. */ int me_range; /** * intra quantizer bias. * - encoding: set by user. * - decoding: unused */ int intra_quant_bias;#define FF_DEFAULT_QUANT_BIAS 999999 /** * inter quantizer bias. * - encoding: set by user. * - decoding: unused */ int inter_quant_bias; /** * color table ID. * - encoding: unused. * - decoding: which clrtable should be used for 8bit RGB images * table have to be stored somewhere FIXME */ int color_table_id; /** * internal_buffer count. * Don't touch, used by lavc default_get_buffer() */ int internal_buffer_count; /** * internal_buffers. * Don't touch, used by lavc default_get_buffer() */ void *internal_buffer;#define FF_LAMBDA_SHIFT 7#define FF_LAMBDA_SCALE (1<<FF_LAMBDA_SHIFT)#define FF_QP2LAMBDA 118 ///< factor to convert from H.263 QP to lambda#define FF_LAMBDA_MAX (256*128-1)#define FF_QUALITY_SCALE FF_LAMBDA_SCALE //FIXME maybe remove /** * global quality for codecs which cannot change it per frame. * this should be proportional to MPEG1/2/4 qscale. * - encoding: set by user. * - decoding: unused */ int global_quality;#define FF_CODER_TYPE_VLC 0#define FF_CODER_TYPE_AC 1 /** * coder type * - encoding: set by user. * - decoding: unused */ int coder_type; /** * context model * - encoding: set by user. * - decoding: unused */ int context_model;#if 0 /** * * - encoding: unused * - decoding: set by user. */ uint8_t * (*realloc)(struct AVCodecContext *s, uint8_t *buf, int buf_size);#endif /** * slice flags * - encoding: unused * - decoding: set by user. */ int slice_flags;#define SLICE_FLAG_CODED_ORDER 0x0001 ///< draw_horiz_band() is called in coded order instead of display#define SLICE_FLAG_ALLOW_FIELD 0x0002 ///< allow draw_horiz_band() with field slices (MPEG2 field pics)#define SLICE_FLAG_ALLOW_PLANE 0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1) /** * XVideo Motion Acceleration * - encoding: forbidden * - decoding: set by decoder */ int xvmc_acceleration; /** * macroblock decision mode * - encoding: set by user. * - decoding: unused */ int mb_decision;#define FF_MB_DECISION_SIMPLE 0 ///< uses mb_cmp#define FF_MB_DECISION_BITS 1 ///< chooses the one which needs the fewest bits#define FF_MB_DECISION_RD 2 ///< rate distoration /** * custom intra quantization matrix * - encoding: set by user, can be NULL * - decoding: set by lavc */ uint16_t *intra_matrix; /** * custom inter quantization matrix * - encoding: set by user, can be NULL * - decoding: set by lavc */ uint16_t *inter_matrix; /** * fourcc from the AVI stream header (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A'). * this is used to workaround some encoder bugs * - encoding: unused * - decoding: set by user, will be converted to upper case by lavc during init */ unsigned int stream_codec_tag; /** * scene change detection threshold. * 0 is default, larger means fewer detected scene changes * - encoding: set by user. * - decoding: unused */ int scenechange_threshold; /** * minimum lagrange multipler * - encoding: set by user. * - decoding: unused */ int lmin; /** * maximum lagrange multipler * - encoding: set by user. * - decoding: unused */ int lmax; /** * Palette control structure * - encoding: ??? (no palette-enabled encoder yet) * - decoding: set by user. */ struct AVPaletteControl *palctrl; /** * noise reduction strength * - encoding: set by user. * - decoding: unused */ int noise_reduction; /** * called at the beginning of a frame to get cr buffer for it. * buffer type (size, hints) must be the same. lavc won't check it. * lavc will pass previous buffer in pic, function should return * same buffer or new buffer with old frame "painted" into it. * if pic.data[0] == NULL must behave like get_buffer(). * - encoding: unused * - decoding: set by lavc, user can override */ int (*reget_buffer)(struct AVCodecContext *c, AVFrame *pic); /** * number of bits which should be loaded into the rc buffer before decoding starts * - encoding: set by user. * - decoding: unused */ int rc_initial_buffer_occupancy; /** * * - encoding: set by user. * - decoding: unused */ int inter_threshold; /** * CODEC_FLAG2_*. * - encoding: set by user. * - decoding: set by user. */ int flags2; /** * simulates errors in the bitstream to test error concealment. * - encoding: set by user. * - decoding: unused. */ int error_rate; /** * MP3 antialias algorithm, see FF_AA_* below. * - encoding: unused * - decoding: set by user */ int antialias_algo;#define FF_AA_AUTO 0#define FF_AA_FASTINT 1 //not implemented yet#define FF_AA_INT 2#define FF_AA_FLOAT 3 /** * Quantizer noise shaping. * - encoding: set by user * - decoding: unused */ int quantizer_noise_shaping; /** * Thread count. * is used to decide how many independant tasks should be passed to execute() * - encoding: set by user * - decoding: set by user */ int thread_count; /** * the codec may call this to execute several independant things. it will return only after * finishing all tasks, the user may replace this with some multithreaded implementation, the * default implementation will execute the parts serially * @param count the number of things to execute * - encoding: set by lavc, user can override * - decoding: set by lavc, user can override */ int (*execute)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg), void **arg2, int *ret, int count); /** * Thread opaque. * can be used by execute() to store some per AVCodecContext stuff. * - encoding: set by execute() * - decoding: set by execute() */ void *thread_opaque; /** * Motion estimation threshold. under which no motion estimation is * performed, but instead the user specified motion vectors are used * * - encoding: set by user * - decoding: unused */ int me_threshold; /** * Macroblock threshold. under which the user specified macroblock types will be used * - encoding: set by user * - decoding: unused */ int mb_threshold; /** * precision of the intra dc coefficient - 8. * - encoding: set by user * - decoding: unused */ int intra_dc_precision; /** * noise vs. sse weight for the nsse comparsion function. * - encoding: set by user * - decoding: unused */ int nsse_weight; /** * number of macroblock rows at the top which are skipped. * - encoding: unused * - decoding: set by user */ int skip_top; /** * number of macroblock rows at the bottom which are skipped. * - encoding: unused * - decoding: set by user */ int skip_bottom; /** * profile * - encoding: set by user * - decoding: set by lavc */ int profile;#define FF_PROFILE_UNKNOWN -99 /** * level * - encoding: set by user * - decoding: set by lavc */ int level;#define FF_LEVEL_UNKNOWN -99 /** * low resolution decoding. 1-> 1/2 size, 2->1/4 size * - encoding: unused * - decoding: set by user */ int lowres; /** * bitsream width / height. may be different from width/height if lowres * or other things are used * - encoding: unused * - decoding: set by user before init if known, codec should override / dynamically change if needed */ int coded_width, coded_height; /** * frame skip threshold * - encoding: set by user * - decoding: unused */ int frame_skip_threshold; /** * frame skip factor * - encoding: set by user * - decoding: unused */ int frame_skip_factor; /** * frame skip exponent * - encoding: set by user * - decoding: unused */ int frame_skip_exp; /** * frame skip comparission function * - encoding: set by user. * - decoding: unused */ int frame_skip_cmp; /** * border processing masking. raises the quantizer for mbs on the borders * of the picture. * - encoding: set by user * - decoding: unused */ float border_masking; /** * minimum MB lagrange multipler. * - encoding: set by user. * - decoding: unused */ int mb_lmin; /** * maximum MB lagrange multipler. * - encoding: set by user. * - decoding: unused */ int mb_lmax; /** * * - encoding: set by user. * - decoding: unused */ int me_penalty_compensation; /** * * - encoding: unused * - decoding: set by user. */ enum AVDiscard skip_loop_filter; /** * * - encoding: unused * - decoding: set by user. */ enum AVDiscard skip_idct; /**
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -