⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 avcodec.h

📁 mpeg4 video codec mpeg4 video codec
💻 H
📖 第 1 页 / 共 5 页
字号:
     */    int context_model;        /**     * 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,*intra_matrix_luma,*intra_matrix_chroma;    /**     * custom inter quantization matrix     * - encoding: set by user, can be NULL     * - decoding: set by lavc     */    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 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 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;    /**     * 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. 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    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);    /**     * 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;    /**     *      * - encoding: unused     * - decoding: set by user.     */    enum AVDiscard skip_frame;    /**     *     * - encoding: set by user.     * - decoding: unused     */    int bidir_refine;    /**     *     * - encoding: set by user.     * - decoding: unused     */    int brd_scale;    /**     * multiplied by qscale for each frame and added to scene_change_score     * - encoding: set by user.     * - decoding: unused     */    int scenechange_factor;} AVCodecContext;/** * AVCodec. */typedef struct AVCodec {    const char *name;    enum CodecType type;    enum CodecID id;    int priv_data_size;    int (*init)(AVCodecContext *);    int (*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data);    int (*close)(AVCodecContext *);    int (*decode)(AVCodecContext *, void *outdata, int *outdata_size,                   uint8_t *buf, int buf_size);    int capabilities;    struct AVCodec *next;    void (*flush)(AVCodecContext *);} AVCodec;/**  * four components are given, that's all. * the last component is alpha */typedef struct AVPicture {    uint8_t *data[4];    int linesize[4];       ///< number of bytes per line} AVPicture;/** * AVPaletteControl * This structure defines a method for communicating palette changes * between and demuxer and a decoder. */#define AVPALETTE_SIZE 1024#define AVPALETTE_COUNT 256typedef struct AVPaletteControl {    /* demuxer sets this to 1 to indicate the palette has changed;     * decoder resets to 0 */    int palette_changed;    /* 4-byte ARGB palette entries, stored in native byte order; note that     * the individual palette components should be on a 8-bit scale; if     * the palette data comes from a IBM VGA native format, the component     * data is probably 6 bits in size and needs to be scaled */    unsigned int palette[AVPALETTE_COUNT];} AVPaletteControl;typedef struct AVSubtitleRect {    uint16_t x;    uint16_t y;    uint16_t w;    uint16_t h;    uint16_t nb_colors;    int linesize;    uint32_t *rgba_palette;    uint8_t *bitmap;} AVSubtitleRect;typedef struct AVSubtitle {    uint16_t format; /* 0 = graphics */    uint32_t start_display_time; /* relative to packet pts, in ms */    uint32_t end_display_time; /* relative to packet pts, in ms */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -