📄 avcodec.h
字号:
* slice count * - encoding: Set by libavcodec. * - decoding: Set by user (or 0). */ int slice_count; /** * slice offsets in the frame in bytes * - encoding: Set/allocated by libavcodec. * - decoding: Set/allocated by user (or NULL). */ int *slice_offset; /** * error concealment flags * - encoding: unused * - decoding: Set by user. */ int error_concealment;#define FF_EC_GUESS_MVS 1#define FF_EC_DEBLOCK 2 /** * dsp_mask could be add used to disable unwanted CPU features * CPU features (i.e. MMX, SSE. ...) * * With the FORCE flag you may instead enable given CPU features. * (Dangerous: Usable in case of misdetection, improper usage however will * result into program crash.) */ unsigned dsp_mask;#define FF_MM_FORCE 0x80000000 /* Force usage of selected flags (OR) */ /* lower 16 bits - CPU features */#define FF_MM_MMX 0x0001 ///< standard MMX#define FF_MM_3DNOW 0x0004 ///< AMD 3DNOW#define FF_MM_MMXEXT 0x0002 ///< SSE integer functions or AMD MMX ext#define FF_MM_SSE 0x0008 ///< SSE functions#define FF_MM_SSE2 0x0010 ///< PIV SSE2 functions#define FF_MM_3DNOWEXT 0x0020 ///< AMD 3DNowExt#define FF_MM_SSE3 0x0040 ///< Prescott SSE3 functions#define FF_MM_SSSE3 0x0080 ///< Conroe SSSE3 functions#define FF_MM_IWMMXT 0x0100 ///< XScale IWMMXT /** * bits per sample/pixel from the demuxer (needed for huffyuv). * - encoding: Set by libavcodec. * - decoding: Set by user. */ int bits_per_sample; /** * prediction method (needed for huffyuv) * - encoding: Set by user. * - decoding: unused */ int prediction_method;#define FF_PRED_LEFT 0#define FF_PRED_PLANE 1#define FF_PRED_MEDIAN 2 /** * sample aspect ratio (0 if unknown) * Numerator and denominator must be relatively prime and smaller than 256 for some video standards. * - encoding: Set by user. * - decoding: Set by libavcodec. */ AVRational sample_aspect_ratio; /** * the picture in the bitstream * - encoding: Set by libavcodec. * - decoding: Set by libavcodec. */ AVFrame *coded_frame; /** * 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 distortion /** * 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -