主要涉及到三个文件:(我的开发包是合众达提供的DVRRDK_02.00.00.23)
1、在multich_vdec_vdis.c文件里有一个开关量enableVideoFrameExport控制
IpcFramesOutLinkHLOS、IpcFramesInLinkRTOS、MergeLink这三个link是否打开,
我将这个量设为TRUE;
2、在demo_vdec_vdis.c文件里也有一个开关量VDEC_VDIS_ENABLE_IPCFRAMESOUT控制
是否运行VdecVdis_ipcFramesCreate()与VdecVdis_ipcFramesStart()这两个函数,
我也将这个量设为TRUE
3、在demo_vdec_vdis_frames_send.c文件里有上面两个函数的实现方法,VdecVdis_ipcFramesCreate()先创建一个线程并等待数据的到来,
当数据到来之后,循环执行四个函数实现bufList的赋值、读取、清空。VdecVdis_ipcFramesStart()为bufList先分配内存空间,然后
读取一帧YUV图像到bufList,最后发送信号量激活VdecVdis_ipcFramesCreate()函数。
通过上面的配置,运行没有报错但结果却没有改变,仍然只显示解码的视频,YUV图像并没有显示出来。
————————————————————————分割线——————————————————————————————
我想可能是解码的一些link干扰了结果,于是删除了multich_vdec_vdis.c里面的解码一些links,对应着也修改了demo_vdec_vdis.c里的一些代码,
但运行的时候会出错,如下
[m3vpss ] 12894: Assertion @ Line: 2475 in links_m3vpss/swMs/swMsLink_drv.c: status == FVID2_SOK : failed !!!
并且抓取显示bufList.numFrames时它的值一直为0
请教大神,这里面哪里出现了错误,怎么才能让YUV图像显示出来呢?
ps:附件有log信息和源代码