3.2 视频编码程序
视频编码部分直接采用S3C6410的MFC视频编解码模块进行视频的编码。由于采用硬件编码,编码效率非常高。同时在程序的设计方面,不用涉及具体的硬件细节,只需要通过S3C6410提供的驱动模块进行。编码部分的流程图如图4所示。
下面列出视频编码部分的关键代码。
hOpen=open(MFC_DEV_NAME,O_RDWR | O_NDELAY);
上一行代码打开MFC设备。由预定义的宏MFC_DEV_NAME指定MFC设备文件路径。
模块的初始化部分需要指定编码帧的长宽,编码帧的速率等参数。初始化的这些信息并没有直接应用于设备,而是存储于一个编码参数的结构体类型参数pCTX中,然后用下面的代码进行参数设置,也即将参数应用于实际的设备。
ioctl(pCTX->hOpen,cmd_init,&mfc_args);
编码部分用下一行代码实现。
ioetl(pCTX->hOpen,cmd_exe,&mfc_args);
在编码完成后,可以通过函数获取编码后视频帧的内存地址。函数原型为:
void*SsbSipMPEG4EncodeGetOutBuf(vold*openHandle,long*size)。
最后关闭设备文件。
close(pCTX->hOpen);
同样,对于一些流程控制部分的代码,限于篇幅,没有进行详细的描述。
关于我们 | 广告服务 | 会员服务 | 媒体报道 | 营销方案 | 成功案例 | 招聘服务 | 加入我们 | 网站地图 | 在线帮助 | 联系我们 |
京ICP证080169号京ICP备09003304号-2京公网安备11010502034458号电子公告服务专项备案
网络文化经营许可证 [2019] 5229-579号广播电视节目制作经营许可证 (京) 字第13229号出版物经营许可证新出发京批字第直200384号人力资源服务许可证1101052014340号
Copyright © 2022 Bjx.com.cn All Rights Reserved. 北京火山动力网络技术有限公司 版权所有