主题 : 【成功】tiny210在Linux下的MFC库移植及硬编码测试源码 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 87533
精华: 1
发帖: 41
金钱: 255 两
威望: 51 点
贡献值: 1 点
综合积分: 102 分
注册时间: 2013-02-19
最后登录: 2017-09-13
楼主  发表于: 2013-04-09 08:53

 【成功】tiny210在Linux下的MFC库移植及硬编码测试源码

上周惊奇的发现Tiny210没有在Linux下的MFC库。折腾了好几天,终于把Android下的MFC库移植过来了。
Linux下已经有MFC的驱动了,设备名是/dev/s3c-mfc,可以ls -l /dev/s3c-mfc验证一下
所以移植的基本步骤就很简单了,把Android4源码中 device/friendly-arm/mini210/sec_mm/sec_omx/sec_codecs/video/mfc_c110 整个目录拷贝到linux下。
编码的话只用到3个文件 mfc_interface.h, SsbSipMfcApi.h 和 SsbSipMfcEncAPI.c,解码再多一个SsbSipMfcDecAPI.c
然后SsbSipMfcEncAPI.c中需要把对 utils/Log.h 相关调用(LOGE,LOGV,LOGI等)改掉,因为linux没有这个库。LOGE改成fprintf(stderr,...)就行,LOGV,LOGI可以直接注释掉。或者自己用fprintf定义宏LOGE。
然后就可以调用SsbSipMfc的API了。
注意几点:
1)输入yuv格式必须是nv12,这个和6410是不同的。
2)参数里面FrameRate应该是实际fps的1000倍。比如30fps就应该设FrameRate=30000,这个在s5pv210的datasheet里面有说明。
3)bootloader必须用superboot。我之前为了开发方便一直用u-boot+tftp+nfs,结果总是出错,换成superboot,就没问题了。不知道superboot对mfc做了什么初始化之类的

测试程序和修改的API源码附上供大家参考。
附件: mfc4linux.zip (20 K) 下载次数:898
级别: 新手上路
UID: 28798
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
贡献值: 0 点
综合积分: 22 分
注册时间: 2010-09-17
最后登录: 2015-03-03
1楼  发表于: 2013-04-09 09:24
正准备搞这个,非常有用。谢谢!
级别: 新手上路
UID: 28798
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
贡献值: 0 点
综合积分: 22 分
注册时间: 2010-09-17
最后登录: 2015-03-03
2楼  发表于: 2013-04-09 09:42
楼主,麻烦把视频测试文件一并传上来啊,非常感谢!
级别: 新手上路
UID: 28798
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
贡献值: 0 点
综合积分: 22 分
注册时间: 2010-09-17
最后登录: 2015-03-03
3楼  发表于: 2013-04-22 12:40

 回 5楼(kylezhou) 的帖子

谢谢,LZ够热心。