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

📄 avcodec.h

📁 ffmpeg源码分析
💻 H
📖 第 1 页 / 共 5 页
字号:
     *     * - 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;    /**     * constant rate factor - quality-based VBR - values ~correspond to qps     * - encoding: set by user.     * - decoding: unused     */    int crf;    /**     * constant quantization parameter rate control method     * - encoding: set by user.     * - decoding: unused     */    int cqp;    /**     * minimum gop size     * - encoding: set by user.     * - decoding: unused     */    int keyint_min;    /**     * number of reference frames     * - encoding: set by user.     * - decoding: unused     */    int refs;    /**     * chroma qp offset from luma     * - encoding: set by user.     * - decoding: unused     */    int chromaoffset;    /**     * influences how often b-frames are used     * - encoding: set by user.     * - decoding: unused     */    int bframebias;    /**     * trellis RD quantization     * - encoding: set by user.     * - decoding: unused     */    int trellis;    /**     * reduce fluctuations in qp (before curve compression)     * - encoding: set by user.     * - decoding: unused     */    float complexityblur;    /**     * in-loop deblocking filter alphac0 parameter     * alpha is in the range -6...6     * - encoding: set by user.     * - decoding: unused     */    int deblockalpha;    /**     * in-loop deblocking filter beta parameter     * beta is in the range -6...6     * - encoding: set by user.     * - decoding: unused     */    int deblockbeta;    /**     * macroblock subpartition sizes to consider - p8x8, p4x4, b8x8, i8x8, i4x4     * - encoding: set by user.     * - decoding: unused     */    int partitions;#define X264_PART_I4X4 0x001  /* Analyse i4x4 */#define X264_PART_I8X8 0x002  /* Analyse i8x8 (requires 8x8 transform) */#define X264_PART_P8X8 0x010  /* Analyse p16x8, p8x16 and p8x8 */#define X264_PART_P4X4 0x020  /* Analyse p8x4, p4x8, p4x4 */#define X264_PART_B8X8 0x100  /* Analyse b16x8, b8x16 and b8x8 */    /**     * direct mv prediction mode - 0 (none), 1 (spatial), 2 (temporal)     * - encoding: set by user.     * - decoding: unused     */    int directpred;    /**     * audio cutoff bandwidth (0 means "automatic") . Currently used only by FAAC     * - encoding: set by user.     * - decoding: unused     */    int cutoff;    /**     * 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;#if LIBAVCODEC_VERSION_INT < ((50<<16)+(0<<8)+0)    void *dummy; // FIXME remove next time we break binary compatibility#endif    struct AVCodec *next;    void (*flush)(AVCodecContext *);    const AVRational *supported_framerates; ///array of supported framerates, or NULL if any, array is terminated by {0,0}    const enum PixelFormat *pix_fmts;       ///array of supported pixel formats, or NULL if unknown, array is terminanted by -1} 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 */    uint32_t num_rects;    AVSubtitleRect *rects;} AVSubtitle;extern AVCodec ac3_encoder;extern AVCodec mp2_encoder;extern AVCodec mp3lame_encoder;extern AVCodec oggvorbis_encoder;extern AVCodec oggtheora_encoder;extern AVCodec faac_encoder;extern AVCodec xvid_encoder;extern AVCodec mpeg1video_encoder;extern AVCodec mpeg2video_encoder;extern AVCodec h261_encoder;extern AVCodec h263_encoder;extern AVCodec h263p_encoder;extern AVCodec flv_encoder;extern AVCodec rv10_encoder;extern AVCodec rv20_encoder;extern AVCodec dvvideo_encoder;extern AVCodec mjpeg_encoder;extern AVCodec ljpeg_encoder;extern AVCodec jpegls_encoder;extern AVCodec png_encoder;extern AVCodec ppm_encoder;extern AVCodec pgm_encoder;extern AVCodec pgmyuv_encoder;extern AVCodec pbm_encoder;extern AVCodec pam_encoder;extern AVCodec mpeg4_encoder;extern AVCodec msmpeg4v1_encoder;extern AVCodec msmpeg4v2_encoder;extern AVCodec msmpeg4v3_encoder;extern AVCodec wmv1_encoder;extern AVCodec wmv2_encoder;extern AVCodec huffyuv_encoder;extern AVCodec ffvhuff_encoder;extern AVCodec h264_encoder;extern AVCodec asv1_encoder;extern AVCodec asv2_encoder;extern AVCodec vcr1_encoder;extern AVCodec ffv1_encoder;extern AVCodec snow_encoder;extern AVCodec mdec_encoder;extern AVCodec zlib_encoder;extern AVCodec sonic_encoder;extern AVCodec sonic_ls_encoder;extern AVCodec svq1_encoder;extern AVCodec x264_encoder;extern AVCodec h263_decoder;extern AVCodec h261_decoder;extern AVCodec mpeg4_decoder;extern AVCodec msmpeg4v1_decoder;extern AVCodec msmpeg4v2_decoder;extern AVCodec msmpeg4v3_decoder;extern AVCodec wmv1_decoder;extern AVCodec wmv2_decoder;extern AVCodec vc9_decoder;extern AVCodec wmv3_decoder;extern AVCodec mpeg1video_decoder;extern AVCodec mpeg2video_decoder;extern AVCodec mpegvideo_decoder;extern AVCodec mpeg_xvmc_decoder;extern AVCodec h263i_decoder;extern AVCodec flv_decoder;extern AVCodec rv10_decoder;extern AVCodec rv20_decoder;extern AVCodec rv30_decoder;extern AVCodec rv40_decoder;extern AVCodec svq1_decoder;extern AVCodec svq3_decoder;extern AVCodec dvvideo_decoder;extern AVCodec wmav1_decoder;extern AVCodec wmav2_decoder;extern AVCodec mjpeg_decoder;extern AVCodec mjpegb_decoder;extern AVCodec sp5x_decoder;extern AVCodec png_decoder;extern AVCodec mp2_decoder;extern AVCodec mp3_decoder;extern AVCodec mp3adu_decoder;extern AVCodec mp3on4_decoder;extern AVCodec qdm2_decoder;extern AVCodec cook_decoder;extern AVCodec truespeech_decoder;extern AVCodec tta_decoder;extern AVCodec mace3_decoder;extern AVCodec mace6_decoder;extern AVCodec huffyuv_decoder;extern AVCodec ffvhuff_decoder;extern AVCodec oggvorbis_decoder;extern AVCodec oggtheora_decoder;extern AVCodec cyuv_decoder;extern AVCodec h264_decoder;extern AVCodec indeo3_decoder;extern AVCodec vp3_decoder;extern AVCodec theora_decoder;extern AVCodec amr_nb_decoder;extern AVCodec amr_nb_encoder;extern AVCodec amr_wb_encoder;extern AVCodec amr_wb_decoder;extern AVCodec aac_decoder;extern AVCodec mpeg4aac_decoder;extern AVCodec asv1_decoder;extern AVCodec asv2_decoder;extern AVCodec vcr1_decoder;extern AVCodec cljr_decoder;extern AVCodec ffv1_decoder;extern AVCodec snow_decoder;extern AVCodec fourxm_decoder;extern AVCodec mdec_decoder;extern AVCodec roq_decoder;extern AVCodec interplay_video_decoder;extern AVCodec xan_wc3_decoder;extern AVCodec rpza_decoder;extern AVCodec cinepak_decoder;extern AVCodec msrle_decoder;extern AVCodec msvideo1_decoder;extern AVCodec vqa_decoder;extern AVCodec idcin_decoder;extern AVCodec eightbps_decoder;extern AVCodec smc_decoder;extern AVCodec flic_decoder;extern AVCodec vmdvideo_decoder;extern AVCodec vmdaudio_decoder;extern AVCodec truemotion1_decoder;extern AVCodec truemotion2_decoder;extern AVCodec mszh_decoder;extern AVCodec zlib_decoder;extern AVCodec ra_144_decoder;extern AVCodec ra_288_decoder;extern AVCodec roq_dpcm_decoder;extern AVCodec interplay_dpcm_decoder;extern AVCodec xan_dpcm_decoder;extern AVCodec sol_dpcm_decoder;extern AVCodec sonic_decoder;extern AVCodec qtrle_decoder;extern AVCodec flac_decoder;extern AVCodec tscc_decoder;extern AVCodec cscd_decoder;extern AVCodec nuv_decoder;extern AVCodec ulti_decoder;extern AVCodec qdraw_decoder;extern AVCodec xl_decoder;extern AVCodec qpeg_decoder;extern AVCodec shorten_decoder;extern AVCodec loco_decoder;extern AVCodec wnv1_decoder;extern AVCodec aasc_decoder;extern AVCodec alac_decoder;extern AVCodec ws_snd1_decoder;extern AVCodec indeo2_decoder;extern AVCodec vorbis_decoder;extern AVCodec fraps_decoder;extern AVCodec libgsm_encoder;extern AVCodec libgsm_decoder;extern AVCodec bmp_decoder;extern AVCodec mmvideo_decoder;extern AVCodec zmbv_decoder;extern AVCodec avs_decoder;extern AVCodec smacker_decoder;extern AVCodec smackaud_decoder;/* pcm codecs */#define PCM_CODEC(id, name) \extern AVCodec name ## _decoder; \extern AVCodec name ## _encoderPCM_CODEC(CODEC_ID_PCM_S32LE, pcm_s32le);PCM_CODEC(CODEC_ID_PCM_S32BE, pcm_s32be);PCM_CODEC(CODEC_ID_PCM_U32LE, pcm_u32le);PCM_CODEC(CODEC_ID_PCM_U32BE, pcm_u32be);PCM_CODEC(CODEC_ID_PCM_S24LE, pcm_s24le);PCM_CODEC(CODEC_ID_PCM_S24BE, pcm_s24be);PCM_CODEC(CODEC_ID_PCM_U24LE, pcm_u24le);PCM_CODEC(CODEC_ID_PCM_U24BE, pcm_u24be);PCM_CODEC(CODEC_ID_PCM_S24DAUD, pcm_s24daud);PCM_CODEC(CODEC_ID_PCM_S16LE, pcm_s16le);PCM_CODEC(CODEC_ID_PCM_S16BE, pcm_s16be);PCM_CODEC(CODEC_ID_PCM_U16LE, pcm_u16le);PCM_CODEC(CODEC_ID_PCM_U16BE, pcm_u16be);PCM_CODEC(CODEC_ID_PCM_S8, pcm_s8);PCM_CODEC(CODEC_ID_PCM_U8, pcm_u8);PCM_CODEC(CODEC_ID_PCM_ALAW, pcm_alaw);PCM_CODEC(CODEC_ID_PCM_MULAW, pcm_mulaw);/* adpcm codecs */PCM_CODEC(CODEC_ID_ADPCM_IMA_QT, adpcm_ima_qt);PCM_CODEC(CODEC_ID_ADPCM_IMA_WAV, adpcm_ima_wav);PCM_CODEC(CODEC_ID_ADPCM_IMA_DK3, adpcm_ima_dk3);PCM_CODEC(CODEC_ID_ADPCM_IMA_DK4, adpcm_ima_dk4);PCM_CODEC(CODEC_ID_ADPCM_IMA_WS, adpcm_ima_ws);PCM_CODEC(CODEC_ID_ADPCM_SMJPEG, adpcm_ima_smjpeg);PCM_CODEC(CODEC_ID_ADPCM_MS, adpcm_ms);PCM_CODEC(CODEC_ID_ADPCM_4XM, adpcm_4xm);PCM_CODEC(CODEC_ID_ADPCM_XA, adpcm_xa);PCM_CODEC(CODEC_ID_ADPCM_ADX, adpcm_adx);PCM_CODEC(CODEC_ID_ADPCM_EA, adpcm_ea);PCM_CODEC(CODEC_ID_ADPCM_G726, adpcm_g726);PCM_CODEC(CODEC_ID_ADPCM_CT, adpcm_ct);PCM_CODEC(CODEC_ID_ADPCM_SWF, adpcm_swf);PCM_CODEC(CODEC_ID_ADPCM_YAMAHA, adpcm_yamaha);PCM_CODEC(CODEC_ID_ADPCM_SBPRO_4, adpcm_sbpro_4);PCM_CODEC(CODEC_ID_ADPCM_SBPRO_3, adpcm_sbpro_3);PCM_CODEC(CODEC_ID_ADPCM_SBPRO_2, adpcm_sbpro_2);#undef PCM_CODEC/* dummy raw video codec */extern AVCodec rawvideo_encoder;extern AVCodec rawvideo_decoder;/* the following codecs use external GPL libs */extern AVCodec ac3_decoder;extern AVCodec dts_decoder;/* subtitles */extern AVCodec dvdsub_encoder;extern AVCodec dvdsub_decoder;extern AVCodec dvbsub_encoder;extern AVCodec dvbsub_decoder;/* resample.c */struct ReSampleContext;struct AVResampleContext;typedef struct ReSampleContext ReSampleContext;ReSampleContext *audio_resample_init(int output_channels, int input_channels,                                     int output_rate, int input_rate);int audio_resample(ReSampleContext *s, short *output, short *input, int nb_samples);void audio_resample_close(ReSampleContext *s);struct AVResampleContext *av_resample_init(int out_rate, int in_rate, int filter_length, int log2_phase_count, int linear, double cutoff);int av_resample(struct AVResampleContext *c, short *dst, short *src, int *consumed, int src_size, int dst_size, int update_ctx);void av_resample_compensate(struct AVResampleContext *c, int sample_delta, int compensation_distance);void av_resample_close(struct AVResampleContext *c);/* YUV420 format is assumed ! */struct ImgReSampleContext;typedef struct ImgReSampleContext ImgReSampleContext;ImgReSampleContext *img_resample_init(int output_width, int output_height,                                      int input_width, int input_height);ImgReSampleContext *img_resample_full_init(int owidth, int oheight,                                      int iwidth, int iheight,                                      int topBand, int bottomBand,                                      int leftBand, int rightBand,                                      int padtop, int padbottom,                                      int padleft, int padright);void img_resample(ImgReSampleContext *s,                  AVPicture *output, const AVPicture *input);void img_resample_close(ImgReSampleContext *s);/** * Allocate memory for a picture.  Call avpicture_free to free it. * * @param pic

⌨️ 快捷键说明

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