视频解码
视频解码,读取数据包(packet),生成数据帧(frame),放入数据帧队列,用来输出音频和视频
解码流程
stream_component_open:
- 分配解码器上下文
avcodec_alloc_context3 - 将码流中的解码信息拷贝到上下文
avcodec_parameters_to_context - 查找解码器
avcodec_find_decoder - 关联上下文和解码器
avcodec_open2 - 音频解码:设置参数(采样率,声道数,布局通道等),获取steam索引和指针,初始化解码类Decoder,启动解码线程
- 视频解码:音频解码线程:获取steam索引和指针,初始化解码类Decoder, 启动解码线程
- 关闭上下文
int FFPlayer::stream_component_open(int stre
本文详细介绍了视频解码流程,包括解码器上下文的分配,数据包到帧的转换,以及解码线程的设计。在视频解码线程中,循环读取解码帧并将其插入数据帧队列。音频解码线程同样进行了类似的处理。数据帧队列用于缓存解码后的数据,包含时间戳、持续时间和帧尺寸等信息。
订阅专栏 解锁全文
591

被折叠的 条评论
为什么被折叠?



