FFMpeg分析3:AVFormatContext和AVIContext、FLVContext等XXXContext
2012-06-08 23:32
826 查看
AVFormatContext在FFMpeg里是一个非常重要的的结构,是其它输入、输出相关信息的一个容器,需要注意的是其中两个成员:
struct AVInputFormat *iformat;//数据输入格式
struct AVOutputFormat *oformat;//数据输出格式
这两个成员不能同时赋值,即AVFormatContext不能同时做为输入、输出格式的容器。AVFormatContext和AVIContext、FLVContext等XXXContext之间像前面讲的URLContext和URLProtocol的关系一样,是一种"多态"关系,即AVFormatContext对像记录着运行时大家共有的信息,而各个XXXContext记录自己文件格式的信息,如AVIContext、FLVContext等。AVInputFormat->priv_data_size记录相对应的XXXContext的大小,该值大小在编译时静态确定。AVFormatContext的void
*priv_data记录XXXContext指针。
AVFormatContext对像的初始化主要在AVInputFormat的read_header函数中进行,read_header是个函数指针,指向
具体的文件类型的read_header,如flv_read_header(),avi_read_header()等,AVFormatContext、AVInputFormat和XXXContext组成一起共同完成数据输入模块,可以出来粗鲁的认为,AVFormatContext是一个类容器,AVInputFormat是这个类的操作函数集合,XXXContext代表该类的私有数据对像。AVFormatContext还有个重要的成员 AVStream *streams[MAX_STREAMS];也是在read_header里初始化,这个等会儿再讲。
struct AVInputFormat *iformat;//数据输入格式
struct AVOutputFormat *oformat;//数据输出格式
这两个成员不能同时赋值,即AVFormatContext不能同时做为输入、输出格式的容器。AVFormatContext和AVIContext、FLVContext等XXXContext之间像前面讲的URLContext和URLProtocol的关系一样,是一种"多态"关系,即AVFormatContext对像记录着运行时大家共有的信息,而各个XXXContext记录自己文件格式的信息,如AVIContext、FLVContext等。AVInputFormat->priv_data_size记录相对应的XXXContext的大小,该值大小在编译时静态确定。AVFormatContext的void
*priv_data记录XXXContext指针。
AVFormatContext对像的初始化主要在AVInputFormat的read_header函数中进行,read_header是个函数指针,指向
具体的文件类型的read_header,如flv_read_header(),avi_read_header()等,AVFormatContext、AVInputFormat和XXXContext组成一起共同完成数据输入模块,可以出来粗鲁的认为,AVFormatContext是一个类容器,AVInputFormat是这个类的操作函数集合,XXXContext代表该类的私有数据对像。AVFormatContext还有个重要的成员 AVStream *streams[MAX_STREAMS];也是在read_header里初始化,这个等会儿再讲。
相关文章推荐
- FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)
- FFMPEG结构体分析:AVFormatContext
- FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)
- FFMPEG结构体分析:AVFormatContext
- FFMPEG结构体分析:AVFormatContext
- FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)
- FFMPeg代码分析:AVFormatContext结构体
- FFmpeg(3)-AVFormatContext 结构体内容分析
- ffmpeg源码分析之avformat_alloc_context
- FFMPEG结构体分析:AVFormatContext
- FFMpeg学习笔记 AVFormatContext结构分析
- FFMPEG结构体分析一:AVFormatContext
- FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)
- FFMPEG结构体分析 AVFormatContext
- FFMPEG结构体分析:AVFormatContext
- ffmpeg源码分析--3.avformat_alloc_context与avformat_open_input
- FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)
- FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)
- FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)
- FFMPEG-数据结构解释(AVCodecContext,AVStream,AVFormatContext)