AVCodecContext 结构体
typedef struct AVCodecContext
{
int bit_rate;
int frame_number;
//扩展数据,如 mov 格式中 audio trak 中 aac 格式中 esds 的附加解码信息。
unsigned char *extradata;
//扩展数据的 size
int extradata_size;
//视频的原始的宽度与高度
int width, height; // 此逻辑段仅针对视频
//视频一帧图像的格式,如 YUV420
enum PixelFormat pix_fmt;
//音频的采样率
int sample_rate;
//音频的声道的数目
int channels;
int bits_per_sample;
int block_align;
// 指向相应的解码器,如:ff_h264_decoder
struct AVCodec *codec;
//指向具体相应的解码器的 context,如 H264Context
void *priv_data;
//公共操作函数
int(*get_buffer)(struct AVCodecContext *c, AVFrame *pic);
void(*release_buffer)(struct AVCodecContext *c, AVFrame *pic);
int(*reget_buffer)(struct AVCodecContext *c, AVFrame *pic);
...
}AVCodecContext;
说明:
AVCodecContext 结构表示程序运行的当前 Codec 使用的上下文,
着重于所有 Codec 共有的属性(并且是在程序运行时才能确定其值)和关联其他结构的字段。
extradata 和 extradata_size 两个字段表述了相应 Codec 使用的私有数据;
codec 字段关联相应的编解码器;
priv_data 字段关联各个具体编解码器独有的属性 context,
和 AVCodec 结构中的 priv_data_size 配对使用。