S3C6410 MFC H264 编码

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
自己的MID平台播放视频支持的格式有限,按照应用要求需要扩展更多的格式。6410自己是带MFC(multi formatcodec),支持MPEG4,H263,H264的硬解码。通过ls -l/dev可以得知s3c-mfc的驱动模块已经加载了,在android中操纵MFC的编解码部分是在external/opencore/codecs_v2/video/s3c_mfc目录下,发出IO控制。在SD卡中拷贝了.mp4视频文件,的确可以播放,下面跟踪下MFC的工作流程。

      内核启动初始化:
1)执行s3c_mfc_init(),打印“S3C6400 MFC Driver, (c) 2007 Samsung Electronics”;
2)注册平台设备platform_driver_register(&s3c_mfc_driver);成功的话打印“S3C6400 MFC driver module init OK”

3)模块加载完毕后,就开始进入s3c_mfc_probe();

4)获取MFC时钟、打开MFC时钟,映射寄存器物理地址;

5)获取中断、注册中断;
6)调用MFC_MemorySetup() 设置SFR buffer, Bitprocessor buffe(code,work,para)r, Data buffer(stream,yuv frame);

7)调用MFC_HW_Init(),初始化硬件;

      1,调用MfcReset(),复位MFC IP;

      2,调用MfcFirmwareIntoCodeBuf(),加载MFC模块内部固件;
      3,调用MfcStartBitProcessor(),启动BitProcessor;

      4,调用MfcConfigSFR_BITPROC_BUF(),为BitProcessor的主控制器code,work,para三个控制寄存器配置地址;

      5,调用MfcConfigSFR_CTRL_OPTS(),设置BitProcessor的其它控制寄存器;

8)禁用时钟,把MFC设置成LP_MODE,进入挂起就绪态;

       上层应用程序开始执行调用H.264 decode时:
0)上层调用s3c_mfc_open()打开MFC设备;
1)调用MFCInst_Create()创建MFC实例,可以创建多个实例;
2)返回s3c_mfc_open: mfc open success,open结束。

3)调用s3c_mfc_ioctl,执行IOCTL_MFC_GET_LINE_BUF_ADDR,设置line_buf或者ring_buf;

4)调用s3c_mfc_ioctl,执行IOCTL_MFC_MPEG4_DEC_INIT,解码初始化;获取流文件长度及输出YUV的frame的宽高

5)调用s3c_mfc_ioctl,执行IOCTL_MFC_MPEG4_DEC_EXE,解码;在内存中对in buf的流数据解码,赋给out buf的YUV frame

6)视频播放过程中,s3c_mfc_ioctl反复调用:IOCTL_MFC_GET_FRAM_BUF_ADDR和IOCTL_MFC_MPEG4_DEC_EXE;
7)解码完毕,调用MFCInst_Delete释放实例;

Samsung MFC(Multi Format Codec) Fireware 三星MFC固件,版本从V5-V8支持exynos4412 等高端处理器 立即下载

相关推荐

H264MFC播放器

这段代码花了我很长时间,也参考了不少大神的代码。用live555接收H264数据流,用方法ffmpeg解码,然后在MFC上面显示出来。当然,其中还存在一些Bug,希望大家相互交流一下,给我提一些建议。现在我主要是用live555的服务器或者android手机上运行spydroid来测试,均是可以播放的。

三星6410摄像头测试程序流程分析

 作者:嵌入式领域著名讲师  O(∩_∩)O  牛牛猛  华清远见金牌讲师                                       点击链接加我好友!http://student.csdn.net/invite.php?u=111047&c=758a60d66d3a92d1欢迎大家去我CSDN博客上踩踩我的个人主页 <span sty

niuniumenghua的专栏 2372

h264码流分析器(MFC源码)

仿elecard stream analyzer 写的MFC代码,有很多不足,对了解h264码流有帮助,供大家学习之用

Linux3.X下的Samsung MFC(Multi Format Codec) Firmware

作者:咕唧咕唧liukun321来自:http://blog.csdn.net/liukun321三星系列处理器,从S3c6410开始SOC上就集成了一个MFC(Multi Format Codec)多格式媒体编解码器硬件模块。并且三星的linux BSP开源了对它的驱动。看过MFC驱动的朋友,肯定发现了,在驱动初始化过程中,内核需要加载一个Samsung MFC 固件。没有它MFC是用不了的。下

咕唧咕唧shubo.lk的专栏 6601

S3C6410 MFC decode H.264流程(5)Test_Display_H264()

转自:http://hi.baidu.com/aokikyon/item/3d1deae0aca3b90d8d3ea80c S3C6410 MFC decode H.264流程(5)Test_Display_H264() Test_Display_H264() { // file open in_fd = open(H264_INPUT_FILE, O_RDO

lijiatong1005的专栏 2074

S3C6410 MFC H264 编码流程分析

转自:http://blog.sina.com.cn/s/blog_65f6a0520100rgg7.html 在代码分析开始前需要对一个概念进行解释,就是MFC。 Multi Format Codec的缩写,是ARM微处理器内部一种支持多种硬件编码方式的硬件电路,能够编码/解码MPEG-4/H.263/H.26430fps)等多种格式的多媒体影像。 TOP6410开发板使用的是ARM

leo115的专栏 7063

MFC h264分析源码

MFC h264分析源码 仿elecard stream analyzer 写的MFC代码,对了解h264码流有帮助,供大家学习之用

s3c6410MFC解码实例

对三星提供的实例进行修改,让其代码更加简洁,实现利用MFC将YUV编码H264,和将H264解码成YUV。

MFC+ffmpeg+socket实时解码H.264码流

MFC+ffmpeg+socket实时解码H.264码流,具体的参考博客内容有说明

ffmpeg解码h264视频文件,并且实时显示(mfc

用ffmpeg解码h264视频文件,并且将解码出来的每帧图像用opencv封装进行显示,ffmpeg采用的是最新的3-2版本。另外,程序预留了将每帧图像保存成bmp的接口,注释详细。使用时须配置好ffmpeg和opencv,然后将自己的h264文件名称修改为1.h264 并将其置于当前目录即可运行(可作为2次开发的参考)

上一篇: Qt中一些常用的格式转换
下一篇: ubuntu清理系统垃圾与备份
eten
博客等级 码龄16年 483粉丝 104原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值