FFmpeg完美入门【9】-FFmpeg架构之其他重要数据结构的初始化
2012-09-09 18:41
381 查看
http://it6655.com/2012/09/ffmpeg-9-html
1 ***Stream
***Stream结构保存与数据流相关的编解码器,数据段等信息。比较重要的有如下二个成员:
***CodecContext *codec; /**< codec context */
void *priv_data;
其中codec指针保存的就是上节所述的encoder或decoder结构。priv_data指针保存的是和具体编解码流相关的数据,如下代码所示,在ASF的解码过程中,priv_data保存的就是ASFStream结构的数据。
***Stream *st; ASFStream *asf_st;
…
…
st->priv_data = asf_st;
2 ***InputStream/ ***OutputStream
根据输入和输出流的不同,前述的***Stream结构都是封装在***InputStream和***OutputStream结构中,在av_encode( )函数中使用。***InputStream中还保存的有与时间有关的信息。***OutputStream中还保存有与音视频同步等相关的信息。
3 ***Packet
***Packet结构定义如下,其是用于保存读取的packet数据。
在av_encode()函数中,调用***InputFormat的 (*read_packet)(struct ***FormatContext *, ***Packet *pkt)接口,读取输入文件的一帧数据保存在当前输入***FormatContext的***Packet成员中。
1 ***Stream
***Stream结构保存与数据流相关的编解码器,数据段等信息。比较重要的有如下二个成员:
***CodecContext *codec; /**< codec context */
void *priv_data;
其中codec指针保存的就是上节所述的encoder或decoder结构。priv_data指针保存的是和具体编解码流相关的数据,如下代码所示,在ASF的解码过程中,priv_data保存的就是ASFStream结构的数据。
***Stream *st; ASFStream *asf_st;
…
…
st->priv_data = asf_st;
2 ***InputStream/ ***OutputStream
根据输入和输出流的不同,前述的***Stream结构都是封装在***InputStream和***OutputStream结构中,在av_encode( )函数中使用。***InputStream中还保存的有与时间有关的信息。***OutputStream中还保存有与音视频同步等相关的信息。
3 ***Packet
***Packet结构定义如下,其是用于保存读取的packet数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 | typedef struct ***Packet { int64_t pts; ///< presentation time stamp in time_base units int64_t dts; ///< decompression time stamp in time_base units uint8_t *data; int size; int stream_index; int flags; int duration; ///< presentation duration in time_base units void (*destruct)(struct ***Packet *); void *priv; int64_t pos; ///< byte position in stream, -1 if unknown } ***Packet; |
在av_encode()函数中,调用***InputFormat的 (*read_packet)(struct ***FormatContext *, ***Packet *pkt)接口,读取输入文件的一帧数据保存在当前输入***FormatContext的***Packet成员中。
相关文章推荐
- FFmpeg架构之其他重要数据结构的初始化
- FFmpeg完美入门【5】-FFmpeg架构之文件结构
- FFmpeg完美入门【6】-FFmpeg架构之I\O模块分析
- FFmpeg完美入门【7】-FFmpeg架构之Demuxer和muxer模块分析
- FFmpeg完美入门【6】-FFmpeg架构之I\O模块分析
- FFmpeg完美入门【5】-FFmpeg架构之文件结构
- FFmpeg完美入门【7】-FFmpeg架构之Demuxer和muxer模块分析
- FFmpeg完美入门【8】-FFmpeg架构之Decoder/Encoder模块
- Android Browser学习二 BrowserActivity 的初始化 --其他重要模块
- FFmpeg完美入门【4】-FFmpeg应用实例
- FFmpeg完美入门【1】-FFmpeg介绍及安装
- FFmpeg完美入门【2】-FFmpeg参数说明
- 零基础学习视频解码之FFMpeg中比较重要的函数以及数据结构
- opencv学习(七)Mat函数(数据储存结构 /多种初始化创建方式/ 输出矩阵内容),,其他数据结构存放形式
- udhcp源码剖析(五)——DHCP客户端重要的数据结构和初始化配置
- FFmpeg中的重要数据结构
- FFmpeg完美入门【4】-FFmpeg应用实例
- FFMpeg 中比较重要的函数以及数据结构
- Android Browser学习二 BrowserActivity 的初始化 --其他重要模块