📄 avcodec.h
字号:
* debug * - encoding: Set by user. * - decoding: Set by user. */ int debug;#define FF_DEBUG_PICT_INFO 1#define FF_DEBUG_RC 2#define FF_DEBUG_BITSTREAM 4#define FF_DEBUG_MB_TYPE 8#define FF_DEBUG_QP 16#define FF_DEBUG_MV 32#define FF_DEBUG_DCT_COEFF 0x00000040#define FF_DEBUG_SKIP 0x00000080#define FF_DEBUG_STARTCODE 0x00000100#define FF_DEBUG_PTS 0x00000200#define FF_DEBUG_ER 0x00000400#define FF_DEBUG_MMCO 0x00000800#define FF_DEBUG_BUGS 0x00001000#define FF_DEBUG_VIS_QP 0x00002000#define FF_DEBUG_VIS_MB_TYPE 0x00004000 /** * debug * - encoding: Set by user. * - decoding: Set by user. */ int debug_mv;#define FF_DEBUG_VIS_MV_P_FOR 0x00000001 //visualize forward predicted MVs of P frames#define FF_DEBUG_VIS_MV_B_FOR 0x00000002 //visualize forward predicted MVs of B frames#define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames /** * error * - encoding: Set by libavcodec if flags&CODEC_FLAG_PSNR. * - decoding: unused */ uint64_t error[4]; /** * minimum MB quantizer * - encoding: unused * - decoding: unused */ int mb_qmin; /** * maximum MB quantizer * - encoding: unused * - decoding: unused */ int mb_qmax; /** * motion estimation comparison function * - encoding: Set by user. * - decoding: unused */ int me_cmp; /** * subpixel motion estimation comparison function * - encoding: Set by user. * - decoding: unused */ int me_sub_cmp; /** * macroblock comparison function (not supported yet) * - encoding: Set by user. * - decoding: unused */ int mb_cmp; /** * interlaced DCT comparison function * - encoding: Set by user. * - decoding: unused */ int ildct_cmp;#define FF_CMP_SAD 0#define FF_CMP_SSE 1#define FF_CMP_SATD 2#define FF_CMP_DCT 3#define FF_CMP_PSNR 4#define FF_CMP_BIT 5#define FF_CMP_RD 6#define FF_CMP_ZERO 7#define FF_CMP_VSAD 8#define FF_CMP_VSSE 9#define FF_CMP_NSSE 10#define FF_CMP_W53 11#define FF_CMP_W97 12#define FF_CMP_DCTMAX 13#define FF_CMP_DCT264 14#define FF_CMP_CHROMA 256 /** * ME diamond size & shape * - encoding: Set by user. * - decoding: unused */ int dia_size; /** * amount of previous MV predictors (2a+1 x 2a+1 square) * - encoding: Set by user. * - decoding: unused */ int last_predictor_count; /** * prepass for motion estimation * - encoding: Set by user. * - decoding: unused */ int pre_me; /** * motion estimation prepass comparison function * - encoding: Set by user. * - decoding: unused */ int me_pre_cmp; /** * ME prepass 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, * it is terminated by -1 as 0 is a valid format, the formats are ordered by quality. * The first is always the native one. * @return the chosen format * - encoding: unused * - decoding: Set by user, if not set the native format will be chosen. */ enum PixelFormat (*get_format)(struct AVCodecContext *s, const enum PixelFormat * fmt); /** * DTG active format information (additional aspect ratio * information only used in DVB MPEG-2 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. * Tables have to be stored somewhere. FIXME */ int color_table_id; /** * internal_buffer count * Don't touch, used by libavcodec default_get_buffer(). */ int internal_buffer_count; /** * internal_buffers * Don't touch, used by libavcodec 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 MPEG-1/2/4 qscale. * - encoding: Set by user. * - decoding: unused */ int global_quality;#define FF_CODER_TYPE_VLC 0#define FF_CODER_TYPE_AC 1#define FF_CODER_TYPE_RAW 2#define FF_CODER_TYPE_RLE 3#define FF_CODER_TYPE_DEFLATE 4 /** * 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 libavcodec. */ uint16_t *intra_matrix; /** * custom inter quantization matrix * - encoding: Set by user, can be NULL. * - decoding: Set by libavcodec. */ 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 work around some encoder bugs. * - encoding: unused * - decoding: Set by user, will be converted to uppercase by libavcodec 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. libavcodec won't check it. * libavcodec 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 libavcodec., 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 independent 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 independent 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 libavcodec, user can override. * - decoding: Set by libavcodec, 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 below 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 below 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.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -