当前位置:  技术问答>linux和unix

s5pv210 mfc子解码

    来源: 互联网  发布时间:2017-05-21

    本文导语:  本帖最后由 lkppostt 于 2013-03-07 15:39:29 编辑 最近在使用TQ210做linux下的MFC硬件解码部分,目前android2.3下使用硬件播放视频是没有问题的,我参照android的处理顺序移植到linux上,卡在SsbSipMfcDecInit初始化上面,总是报 mfc_irq: mfc_...

本帖最后由 lkppostt 于 2013-03-07 15:39:29 编辑
最近在使用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 errorn");
}

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:%dn", iread);
code = SsbSipMfcDecInit(pCTX, H264_DEC, 621);//报错函数

红色部分是报的错,同样的流程android是正常的,不知道是哪部分的问题,望高手指点,谢谢!

|

我猜问题可能在s5p要求nv12的输入格式,你用的可能是yuv/yuy2之类。转换一下试试。

|
你好!

在linux下能用S5VP210的硬件编解码功能吗?用友善开发板android2.3.1带的代码,移值到linux,配linux3.8.0,是否可以?

能详细解答一下移值和使用过程吗?我担心android上带了一些库,我们没办法在linux下用,比如*.so文件,不知道内部的东西。

谢谢。

|
您好,可否提供個 SP5V210 Linux 下使用 Android 庫的編碼 範例呢????

我一直在嘗試壓縮 YUV 的影像流成 H264 可是出來都是花頻,

萬事拜託,
kib0092@gmail.com

|
楼主,我在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)这里就出问题了。
这是什么原因呢?

|
发现一个问题,我必须设置 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

|
要先解析文件格式类型

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,