主题 : 【成功】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: 80423
精华: 0
发帖: 25
金钱: 125 两
威望: 25 点
贡献值: 0 点
综合积分: 50 分
注册时间: 2012-10-24
最后登录: 2024-01-20
1楼  发表于: 2013-04-12 14:45
试了一下,把一段nv12的视频编码成264只有几K,也没办法在vlc上播放
这段视频用x264工具编码出来是554K,可以用vlc播放的
是不是我哪里操作不对啊?
级别: 新手上路
UID: 80423
精华: 0
发帖: 25
金钱: 125 两
威望: 25 点
贡献值: 0 点
综合积分: 50 分
注册时间: 2012-10-24
最后登录: 2024-01-20
2楼  发表于: 2013-04-12 16:00
找到问题了,和楼主说的一样,确实必须用superboot
不知道是因为superboot做了什么特殊设置,还是我用的u-boot有什么bug