s5pv210 mfc子解码

lkppostt 2013-03-07 03:37:15
最近在使用TQ210做linux下的MFC硬件解码部分,目前android2.3下使用硬件播放视频是没有问题的,我参照android的处理顺序移植到linux上,卡在SsbSipMfcDecInit初始化上面,总是报
mfc_irq: mfc_irq() : Interrupt !! : 32,中断错误,以下是我的处理流程:
SSBSIP_MFC_DEC_OUTBUF_STATUS status;
SSBSIP_MFC_DEC_OUTPUT_INFO outputInfo;
int bufWidth = 0;
int bufHeight = 0;
SSBSIP_MFC_ERROR_CODE code;
void *pCTX = NULL;
//pCTX->codec_type = H264_DEC;
SSBIP_MFC_BUFFER_TYPE buf_type = CACHE;
pCTX = SsbSipMfcDecOpen();

void *virStrmBuf;
void *phyStrmBuf;
virStrmBuf = SsbSipMfcDecGetInBuf(pCTX, &phyStrmBuf, DEFAULT_MFC_INPUT_BUFFER_SIZE);
if (virStrmBuf == NULL)
{
printf("SsbSipMfcDecGetInBuf error\n");
}

code = SsbSipMfcDecSetInBuf(pCTX, phyStrmBuf, virStrmBuf,DEFAULT_MFC_INPUT_BUFFER_SIZE);

/* Set the number of extra buffer to prevent tearing */
int configValue = 5;
SsbSipMfcDecSetConfig(pCTX, MFC_DEC_SETCONF_EXTRA_BUFFER_NUM, &configValue);

/* Set mpeg4 deblocking filter enable */
// configValue = 1;
// SsbSipMfcDecSetConfig(pCTX, MFC_DEC_SETCONF_POST_ENABLE, &configValue);

FILE *fp = fopen("/girl.mp4", "rb");

bool bFirstFrame = true;
if (fp)
{
if (bFirstFrame)
{
configValue = 8; // the number that you want to delay
SsbSipMfcDecSetConfig(pCTX, MFC_DEC_SETCONF_DISPLAY_DELAY,
&configValue);
}

int iread = fread(virStrmBuf, 1, 2000, fp);
printf("iread:%d\n", iread);
code = SsbSipMfcDecInit(pCTX, H264_DEC, 621);//报错函数

红色部分是报的错,同样的流程android是正常的,不知道是哪部分的问题,望高手指点,谢谢!
...全文
1128 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
放牛娃不吃草 2014-06-27
  • 打赏
  • 举报
回复
关注中,公司目前也做个硬解
xieweihua2012 2013-12-25
  • 打赏
  • 举报
回复
我在4412上 运行MFC,可是解码出来的图像 播放时全部是绿色 这是什么问题啊
collected 2013-09-28
  • 打赏
  • 举报
回复
请问楼主,我MFC译码已经在Linxu下实现了,想请教一下如何在Android中使用MFC设备?刚开始接触Android,流程很模糊~~多谢。
lkppostt 2013-07-03
  • 打赏
  • 举报
回复
提供一个wince下使用MFC的源码,linux的是完全一样的。 linux的牵涉到公司保密的问题,暂不能提供源码,提供一个可调用的库和调用的实例,包括录像和播放,请大家见谅。 wince链接:http://download.csdn.net/detail/lkppostt/5690539 linux链接:http://download.csdn.net/detail/lkppostt/5690577
CarpeDiem523 2013-06-28
  • 打赏
  • 举报
回复
要先解析文件格式类型
kylenix 2013-04-06
  • 打赏
  • 举报
回复
发现一个问题,我必须设置 EnableFRMRateControl=1,否则就出现MfcEncInit的错误。 但是现在编出来的h264文件无法播放,mplayer/ffmpeg都报错 no frame! [h264 @ 0x102047c00] non-existing PPS referenced [h264 @ 0x102047c00] non-existing PPS 0 referenced [h264 @ 0x102047c00] decode_slice_header error
kylenix 2013-04-05
  • 打赏
  • 举报
回复
楼主,我在SsbSipMfcEncInit() 就出错了: [ 123.170457] mfc_wait_for_done: Decode Error Returned Disp Error Status(0), Dec Error Status(62) [ 123.170541] mfc_encode_header: MFCINST_ERR_ENC_SEQ_HEADER_FAIL ....Intr Code (32) SsbSipMfcEncInit: IOCTL_MFC_ENC_INIT (-3002) failed 显然在ioctl(fd, IOCTL_MFC_ENC_INIT, arg)这里就出问题了。 这是什么原因呢?
kylenix 2013-04-04
  • 打赏
  • 举报
回复
引用 4 楼 kib0092 的回复:
您好,可否提供個 SP5V210 Linux 下使用 Android 庫的編碼 範例呢???? 我一直在嘗試壓縮 YUV 的影像流成 H264 可是出來都是花頻, 萬事拜託, kib0092@gmail.com
我猜问题可能在s5p要求nv12的输入格式,你用的可能是yuv/yuy2之类。转换一下试试。
lkppostt 2013-04-04
  • 打赏
  • 举报
回复
是的,编绎的时候要求nv12的格式,yadr和caddr直接赋值就可以了
kib0092 2013-03-28
  • 打赏
  • 举报
回复
您好,可否提供個 SP5V210 Linux 下使用 Android 庫的編碼 範例呢???? 我一直在嘗試壓縮 YUV 的影像流成 H264 可是出來都是花頻, 萬事拜託, kib0092@gmail.com
lkppostt 2013-03-27
  • 打赏
  • 举报
回复
可以的,TQ210上已经测试通过,你参考下android的处理流程
shelleyd03 2013-03-19
  • 打赏
  • 举报
回复
你好! 在linux下能用S5VP210的硬件编解码功能吗?用友善开发板android2.3.1带的代码,移值到linux,配linux3.8.0,是否可以? 能详细解答一下移值和使用过程吗?我担心android上带了一些库,我们没办法在linux下用,比如*.so文件,不知道内部的东西。 谢谢。
lkppostt 2013-03-18
  • 打赏
  • 举报
回复
搞定了,是我把视频文件搞错了,mfc只是针对视频的解码,没有音频的.

1,324

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧