AVFrame
简介:
AVFrame中存储的是原始数据(例如视频的YUV, RGB, 音频的PCM), 此外还包含了一些相关的信息, 例如: 解码的时候存储了宏块类型表, QP表, 运动矢量等数据. 编码的时候也存储了相关的数据.。
AVFrame 中存储的是经过解码后的原始数据。在解码中,AVFrame 是解码器的输出;在编码中,AVFrame 是编码器的输入。
必须使用av_frame_alloc()分配AVFrame, 这只是分配AVFram本身;且必须使用av_frame_free()释放。
常用参数:
struct AVFrame
{
#define AV_NUM_DATA_POINTERS 8
/*
原始数据(对视频来说是YUB, RGB, 对音频来说是PCM),data是一个指针数组, 数组的每一个元素都是一个指针. 指向视频中图像的某一plane或者音频中某一声道的plane。
对于packed格式, 一个YUV图像的Y, U, V交织存储在一个plane中, 例如: YUVYUVYUV… …, data[0]指向这个plane。
一个双声道的音频帧有左声道L和右声道R, 它们交织存储在一个plane中, 例如: LRLRLR… …