码迷,mamicode.com
首页 > 其他好文 > 详细

工作小结(三)

时间:2016-12-12 23:41:51      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:步骤   格式化   pen   tco   解码   set   h265   开始   分辨率   

了解整个编解码过程,编写demo将本地yuv视频通过编解码流程之后显示。

这是一个过渡任务,最开始是为了理清整个编解码过程,以及每个过程的重要函数。接着用来验证任务二(编解码类框架)的代码以及H265模块是否有问题。最后又结合任务二一起完成任务四的第一部分(为码流对比工具添加H265模块)。

整个编解码的过程如下:

首先是数据采集,在这个步骤中主要设置参数以及设置回调函数write_video_frame(参数包括设备参数,视频源分辨率。回调函数的作用是对采集到的数据进行处理)。接着就是设置编解码算法的必要参数。参数设置好之后开始采集数据start()。参数正确即触发回调函数。

 由于任务二的整合编解码框架,这里编解码就很好初始化了

string config_text = make_XXX_video_config_json_text(codec_config);//将编解码配置参数格式化为字符串
m_video_encoder = video_encode_type::create(codec_id);//根据codec_id创建编码指针
m_video_encoder->setup_config(config_text);//设置参数
m_video_encoder->install_encode_hook(boost::bind(&CTestCodeDlg::decode_video_frame, this, _1, _2, _3));//编码完一帧马上解码
m_video_encoder->open();//打开编码器
m_video_decoder = video_decode_type::create(codec_id);//根据codec_id创建解码指针
m_video_decoder->setup_config(config_text);//设置参数
m_video_decoder->open();//打开解码器

write_video_frame->handle_video_frame->encode->decode->display.

1.这里其实是write_video_frame绑定handle_video_frame操作,handle_video_frame绑定encode操作。因为可能是多线程编解码。所以write和handle相当于两个队列操作。一个读队列,一个写队列。

2.这里有两次格式转换:

第一次编码之前 把任意格式转换成YUV420P 用来编码

第二次解码之后,显示之前。解码之后还是YUV420P格式,转换成RGB格式来显示

工作小结(三)

标签:步骤   格式化   pen   tco   解码   set   h265   开始   分辨率   

原文地址:http://www.cnblogs.com/ljj-yuanfang/p/6145091.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!