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

📄 avcodec.h

📁 ffmpeg移植到symbian的全部源代码
💻 H
📖 第 1 页 / 共 5 页
字号:
     * has to read frames at native frame rate.     * - encoding: Set by user.     * - decoding: unused     */    int rate_emu;    /**     * If non NULL, 'draw_horiz_band' is called by the libavcodec     * decoder to draw a horizontal band. It improves cache usage. Not     * all codecs can do that. You must check the codec capabilities     * beforehand.     * - encoding: unused     * - decoding: Set by user.     * @param height the height of the slice     * @param y the y position of the slice     * @param type 1->top field, 2->bottom field, 3->frame     * @param offset offset into the AVFrame.data from which the slice should be read     */    void (*draw_horiz_band)(struct AVCodecContext *s,                            const AVFrame *src, int offset[4],                            int y, int type, int height);    /* audio only */    int sample_rate; ///< samples per second    int channels;    ///< number of audio channels    /**     * audio sample format     * - encoding: Set by user.     * - decoding: Set by libavcodec.     */    enum SampleFormat sample_fmt;  ///< sample format, currently unused    /* The following data should not be initialized. */    /**     * Samples per packet, initialized when calling 'init'.     */    int frame_size;    int frame_number;   ///< audio or video frame number    int real_pict_num;  ///< Returns the real picture number of previous encoded frame.    /**     * Number of frames the decoded output will be delayed relative to     * the encoded input.     * - encoding: Set by libavcodec.     * - decoding: unused     */    int delay;    /* - encoding parameters */    float qcompress;  ///< amount of qscale change between easy & hard scenes (0.0-1.0)    float qblur;      ///< amount of qscale smoothing over time (0.0-1.0)    /**     * minimum quantizer     * - encoding: Set by user.     * - decoding: unused     */    int qmin;    /**     * maximum quantizer     * - encoding: Set by user.     * - decoding: unused     */    int qmax;    /**     * maximum quantizer difference between frames     * - encoding: Set by user.     * - decoding: unused     */    int max_qdiff;    /**     * maximum number of B-frames between non-B-frames     * Note: The output will be delayed by max_b_frames+1 relative to the input.     * - encoding: Set by user.     * - decoding: unused     */    int max_b_frames;    /**     * qscale factor between IP and B-frames     * - encoding: Set by user.     * - decoding: unused     */    float b_quant_factor;    /** obsolete FIXME remove */    int rc_strategy;#define FF_RC_STRATEGY_XVID 1    int b_frame_strategy;    /**     * hurry up amount     * - encoding: unused     * - decoding: Set by user. 1-> Skip B-frames, 2-> Skip IDCT/dequant too, 5-> Skip everything except header     * @deprecated Deprecated in favor of skip_idct and skip_frame.     */    int hurry_up;    struct AVCodec *codec;    void *priv_data;#if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)    /* unused, FIXME remove*/    int rtp_mode;#endif    int rtp_payload_size;   /* The size of the RTP payload: the coder will  */                            /* do its best to deliver a chunk with size     */                            /* below rtp_payload_size, the chunk will start */                            /* with a start code on some codecs like H.263. */                            /* This doesn't take account of any particular  */                            /* headers inside the transmitted RTP payload.  */    /* The RTP callback: This function is called    */    /* every time the encoder has a packet to send. */    /* It depends on the encoder if the data starts */    /* with a Start Code (it should). H.263 does.   */    /* mb_nb contains the number of macroblocks     */    /* encoded in the RTP payload.                  */    void (*rtp_callback)(struct AVCodecContext *avctx, void *data, int size, int mb_nb);    /* statistics, used for 2-pass encoding */    int mv_bits;    int header_bits;    int i_tex_bits;    int p_tex_bits;    int i_count;    int p_count;    int skip_count;    int misc_bits;    /**     * number of bits used for the previously encoded frame     * - encoding: Set by libavcodec.     * - decoding: unused     */    int frame_bits;    /**     * Private data of the user, can be used to carry app specific stuff.     * - encoding: Set by user.     * - decoding: Set by user.     */    void *opaque;    char codec_name[32];    enum CodecType codec_type; /* see CODEC_TYPE_xxx */    enum CodecID codec_id; /* see CODEC_ID_xxx */    /**     * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').     * This is used to work around some encoder bugs.     * A demuxer should set this to what is stored in the field used to identify the codec.     * If there are multiple such fields in a container then the demuxer should choose the one     * which maximizes the information about the used codec.     * If the codec tag field in a container is larger then 32 bits then the demuxer should     * remap the longer ID to 32 bits with a table or other structure. Alternatively a new     * extra_codec_tag + size could be added but for this a clear advantage must be demonstrated     * first.     * - encoding: Set by user, if not then the default based on codec_id will be used.     * - decoding: Set by user, will be converted to uppercase by libavcodec during init.     */    unsigned int codec_tag;    /**     * Work around bugs in encoders which sometimes cannot be detected automatically.     * - encoding: Set by user     * - decoding: Set by user     */    int workaround_bugs;#define FF_BUG_AUTODETECT       1  ///< autodetection#define FF_BUG_OLD_MSMPEG4      2#define FF_BUG_XVID_ILACE       4#define FF_BUG_UMP4             8#define FF_BUG_NO_PADDING       16#define FF_BUG_AMV              32#define FF_BUG_AC_VLC           0  ///< Will be removed, libavcodec can now handle these non-compliant files by default.#define FF_BUG_QPEL_CHROMA      64#define FF_BUG_STD_QPEL         128#define FF_BUG_QPEL_CHROMA2     256#define FF_BUG_DIRECT_BLOCKSIZE 512#define FF_BUG_EDGE             1024#define FF_BUG_HPEL_CHROMA      2048#define FF_BUG_DC_CLIP          4096#define FF_BUG_MS               8192 ///< Work around various bugs in Microsoft's broken decoders.//#define FF_BUG_FAKE_SCALABILITY 16 //Autodetection should work 100%.    /**     * luma single coefficient elimination threshold     * - encoding: Set by user.     * - decoding: unused     */    int luma_elim_threshold;    /**     * chroma single coeff elimination threshold     * - encoding: Set by user.     * - decoding: unused     */    int chroma_elim_threshold;    /**     * strictly follow the standard (MPEG4, ...).     * - encoding: Set by user.     * - decoding: unused     */    int strict_std_compliance;#define FF_COMPLIANCE_VERY_STRICT   2 ///< Strictly conform to a older more strict version of the spec or reference software.#define FF_COMPLIANCE_STRICT        1 ///< Strictly conform to all the things in the spec no matter what consequences.#define FF_COMPLIANCE_NORMAL        0#define FF_COMPLIANCE_INOFFICIAL   -1 ///< Allow inofficial extensions.#define FF_COMPLIANCE_EXPERIMENTAL -2 ///< Allow nonstandardized experimental things.    /**     * qscale offset between IP and B-frames     * If > 0 then the last P-frame quantizer will be used (q= lastp_q*factor+offset).     * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).     * - encoding: Set by user.     * - decoding: unused     */    float b_quant_offset;    /**     * Error resilience; higher values will detect more errors but may     * misdetect some more or less valid parts as errors.     * - encoding: unused     * - decoding: Set by user.     */    int error_resilience;#define FF_ER_CAREFUL         1#define FF_ER_COMPLIANT       2#define FF_ER_AGGRESSIVE      3#define FF_ER_VERY_AGGRESSIVE 4    /**     * Called at the beginning of each frame to get a buffer for it.     * If pic.reference is set then the frame will be read later by libavcodec.     * avcodec_align_dimensions() should be used to find the required width and     * height, as they normally need to be rounded up to the next multiple of 16.     * - encoding: unused     * - decoding: Set by libavcodec., user can override.     */    int (*get_buffer)(struct AVCodecContext *c, AVFrame *pic);    /**     * Called to release buffers which were allocated with get_buffer.     * A released buffer can be reused in get_buffer().     * pic.data[*] must be set to NULL.     * - encoding: unused     * - decoding: Set by libavcodec., user can override.     */    void (*release_buffer)(struct AVCodecContext *c, AVFrame *pic);    /**     * If 1 the stream has a 1 frame delay during decoding.     * - encoding: Set by libavcodec.     * - decoding: Set by libavcodec.     */    int has_b_frames;    /**     * number of bytes per packet if constant and known or 0     * Used by some WAV based audio codecs.     */    int block_align;    int parse_only; /* - decoding only: If true, only parsing is done                       (function avcodec_parse_frame()). The frame                       data is returned. Only MPEG codecs support this now. */    /**     * 0-> h263 quant 1-> mpeg quant     * - encoding: Set by user.     * - decoding: unused     */    int mpeg_quant;    /**     * pass1 encoding statistics output buffer     * - encoding: Set by libavcodec.     * - decoding: unused     */    char *stats_out;    /**     * pass2 encoding statistics input buffer     * Concatenated stuff from stats_out of pass1 should be placed here.     * - encoding: Allocated/set/freed by user.     * - decoding: unused     */    char *stats_in;    /**     * ratecontrol qmin qmax limiting method     * 0-> clipping, 1-> use a nice continous function to limit qscale wthin qmin/qmax.     * - encoding: Set by user.     * - decoding: unused     */    float rc_qsquish;    float rc_qmod_amp;    int rc_qmod_freq;    /**     * ratecontrol override, see RcOverride     * - encoding: Allocated/set/freed by user.     * - decoding: unused     */    RcOverride *rc_override;    int rc_override_count;    /**     * rate control equation     * - encoding: Set by user     * - decoding: unused     */    const char *rc_eq;    /**     * maximum bitrate     * - encoding: Set by user.     * - decoding: unused     */    int rc_max_rate;    /**     * minimum bitrate     * - encoding: Set by user.     * - decoding: unused     */    int rc_min_rate;    /**     * decoder bitstream buffer size     * - encoding: Set by user.     * - decoding: unused     */    int rc_buffer_size;    float rc_buffer_aggressivity;    /**     * qscale factor between P and I-frames     * If > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset).     * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).     * - encoding: Set by user.     * - decoding: unused     */    float i_quant_factor;    /**     * qscale offset between P and I-frames     * - encoding: Set by user.     * - decoding: unused     */    float i_quant_offset;    /**     * initial complexity for pass1 ratecontrol     * - encoding: Set by user.     * - decoding: unused     */    float rc_initial_cplx;    /**     * DCT algorithm, see FF_DCT_* below     * - encoding: Set by user.     * - decoding: unused     */    int dct_algo;#define FF_DCT_AUTO    0#define FF_DCT_FASTINT 1#define FF_DCT_INT     2#define FF_DCT_MMX     3#define FF_DCT_MLIB    4#define FF_DCT_ALTIVEC 5#define FF_DCT_FAAN    6    /**     * luminance masking (0-> disabled)     * - encoding: Set by user.     * - decoding: unused     */    float lumi_masking;    /**     * temporary complexity masking (0-> disabled)     * - encoding: Set by user.     * - decoding: unused     */    float temporal_cplx_masking;    /**     * spatial complexity masking (0-> disabled)     * - encoding: Set by user.     * - decoding: unused     */    float spatial_cplx_masking;    /**     * p block masking (0-> disabled)     * - encoding: Set by user.     * - decoding: unused     */    float p_masking;    /**     * darkness masking (0-> disabled)     * - encoding: Set by user.     * - decoding: unused     */    float dark_masking;#if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)    /* for binary compatibility */    int unused;#endif    /**     * IDCT algorithm, see FF_IDCT_* below.     * - encoding: Set by user.     * - decoding: Set by user.     */    int idct_algo;#define FF_IDCT_AUTO          0#define FF_IDCT_INT           1#define FF_IDCT_SIMPLE        2#define FF_IDCT_SIMPLEMMX     3#define FF_IDCT_LIBMPEG2MMX   4#define FF_IDCT_PS2           5#define FF_IDCT_MLIB          6#define FF_IDCT_ARM           7#define FF_IDCT_ALTIVEC       8#define FF_IDCT_SH4           9#define FF_IDCT_SIMPLEARM     10#define FF_IDCT_H264          11#define FF_IDCT_VP3           12#define FF_IDCT_IPP           13#define FF_IDCT_XVIDMMX       14#define FF_IDCT_CAVS          15#define FF_IDCT_SIMPLEARMV5TE 16#define FF_IDCT_SIMPLEARMV6   17#define FF_IDCT_SIMPLEVIS     18#define FF_IDCT_WMV2          19#define FF_IDCT_FAAN          20    /**

⌨️ 快捷键说明

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