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

📄 avcodec.h

📁 wince 平台下的h264 压缩代码程序
💻 H
📖 第 1 页 / 共 5 页
字号:
        /**     * strictly follow the std (MPEG4, ...).     * - encoding: set by user     * - decoding: unused     */    int strict_std_compliance;        /**     * 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 missdetect     * some more or less valid parts as errors.     * - encoding: unused     * - decoding: set by user     */    int error_resilience;#define FF_ER_CAREFULL        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 lavc     * width and height should be rounded up to the next multiple of 16     * - encoding: unused     * - decoding: set by lavc, user can override     */    int (*get_buffer)(struct AVCodecContext *c, AVFrame *pic);        /**     * called to release buffers which where 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 lavc, user can override     */    void (*release_buffer)(struct AVCodecContext *c, AVFrame *pic);    /**     * is 1 if the decoded stream contains b frames, 0 otherwise.     * - encoding: unused     * - decoding: set by lavc     */    int has_b_frames;        int block_align; ///< used by some WAV based audio codecs        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 lavc     * - 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     */    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;            /* for binary compatibility */    int unused;        /**     * 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    /**     * slice count.     * - encoding: set by lavc     * - decoding: set by user (or 0)     */    int slice_count;    /**     * slice offsets in the frame in bytes.     * - encoding: set/allocated by lavc     * - 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 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 */#ifdef HAVE_MMX#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 */#endif /* HAVE_MMX */    /**     * bits per sample/pixel from the demuxer (needed for huffyuv).     * - encoding: set by lavc     * - 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 relative prime and smaller then 256 for some video standards     * - encoding: set by user.     * - decoding: set by lavc.     */    AVRational sample_aspect_ratio;    /**     * the picture in the bitstream.     * - encoding: set by lavc     * - decoding: set by lavc     */    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 lavc if flags&CODEC_FLAG_PSNR     * - decoding: unused     */    uint64_t error[4];        /**     * minimum MB quantizer.     * - encoding: set by user.     * - decoding: unused     */    int mb_qmin;    /**     * maximum MB quantizer.     * - encoding: set by user.     * - decoding: unused     */    int mb_qmax;        /**     * motion estimation compare function.     * - encoding: set by user.     * - decoding: unused     */    int me_cmp;    /**     * subpixel motion estimation compare function.     * - encoding: set by user.     * - decoding: unused     */    int me_sub_cmp;    /**     * macroblock compare function (not supported yet).     * - encoding: set by user.     * - decoding: unused     */    int mb_cmp;    /**     * interlaced dct compare 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_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;    /**     * pre pass for motion estimation.     * - encoding: set by user.     * - decoding: unused     */    int pre_me;    /**     * motion estimation pre pass compare function.     * - encoding: set by user.     * - decoding: unused     */    int me_pre_cmp;    /**     * ME pre pass 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.

⌨️ 快捷键说明

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