📄 avcodec.h
字号:
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
/**
* 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,*intra_matrix_luma,*intra_matrix_chroma;
/**
* custom inter quantization matrix
* - encoding: Set by user, can be NULL.
* - decoding: Set by libavcodec.
*/
uint16_t *inter_matrix,*inter_matrix_luma,*inter_matrix_chroma;
/**
* 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;
/* FOXFIX: Now removed from lavc */
/**
* minimum and maxminum quantizer for I frames. If 0, derived from qmin, i_quant_factor, i_quant_offset
* - encoding: set by user.
* - decoding: unused
*/
int qmin_i,qmax_i;
/* FOXFIX: Now removed from lavc */
/**
* minimum and maximum quantizer for B frames. If 0, derived from qmin, b_quant_factor, b_quant_offset
* - encoding: set by user.
* - decoding: unused
*/
int qmin_b,qmax_b;
/**
* 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.
* - encoding: unused
* - decoding: Set by user.
*/
int skip_bottom;
/**
* profile
* - encoding: Set by user.
* - decoding: Set by libavcodec.
*/
int profile;
#define FF_PROFILE_UNKNOWN -99
/* FOXFIX: Now removed from lavc */
int xvid_build;
/* lavc specific stuff, used to workaround bugs in libavcodec */
int lavc_build;
/* divx specific, used to workaround (many) bugs in divx5 */
int divx_version;
int divx_build;
int ac3mode,ac3lfe;
int ac3channels[6];
int nal_length_size;
int h264_deblocking_filter,h264_slice_alpha_c0_offset,h264_slice_beta_offset;
int vorbis_header_size[3];
int64_t granulepos;
int64_t *parserRtStart;
void (*handle_user_data)(struct AVCodecContext *c,const uint8_t *buf,int buf_size);
/* End FOXFIX */
/**
* level
* - encoding: Set by user.
* - decoding: Set by libavcodec.
*/
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;
/**
* Bitstream 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -