用的不是官方的板子,采集芯片是tvp7002, 基于RDK4.0. . 板子自带demo实现两路高清采集。芯片非5158所以采集参数
capturePrm.tilerEnable = FALSE;
capturePrm.numBufsPerCh = 6;
capturePrm.numExtraBufs = 0;
capturePrm.fakeHdMode = FALSE;
capturePrm.enableSdCrop = FALSE;
capturePrm.doCropInCapture = FALSE;
capturePrm.maxBlindAreasPerCh = 4;
capturePrm.isPalMode = Vcap_isPalMode();
for(vipInstId=0; vipInstId<capturePrm.numVipInst; vipInstId++)
{
pCaptureInstPrm = &capturePrm.vipInst[vipInstId];
if(vipInstId == 0)
pCaptureInstPrm->vipInstId = SYSTEM_CAPTURE_INST_VIP0_PORTA;
else
pCaptureInstPrm->vipInstId = SYSTEM_CAPTURE_INST_VIP1_PORTA;
pCaptureInstPrm->videoCaptureMode = SYSTEM_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC;
pCaptureInstPrm->videoIfMode = SYSTEM_CAPT_VIDEO_IF_MODE_16BIT;
pCaptureInstPrm->inScanFormat = SYSTEM_SF_PROGRESSIVE;
pCaptureInstPrm->videoDecoderId = 0;
pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;
pCaptureInstPrm->standard = SYSTEM_STD_1080P_60;
pCaptureInstPrm->numOutput = 1;
pCaptureOutPrm = &pCaptureInstPrm->outParams[0];
pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;
pCaptureOutPrm->scEnable = FALSE;
pCaptureOutPrm->scOutWidth = 0;
pCaptureOutPrm->scOutHeight = 0;
pCaptureOutPrm->outQueId = 0;
}
我用了相同的VipInstId,ideocaptureMode, videoIfMode, InDataformat(out), standard.. 还有一个没有实际意义的VideoDecoderId却采集不到数据
串口终端不停打印 [MCFW] 2312312: CAPTURE: Overflow detected on VIP1, Total Resets =10sec
DEI :loading Down-scaleing co-effs ……………………………..
DEI :co-effs loading dovwn ………………………………..
从VGA口给pc输出的60HZ输入后打印特别快,但demo只有一些编解码帧数信息
实现1HD+4SD , 用的hd_sdi Usecase。 请教是采集参数问题还是驱动不支持。 channel和VIP是怎么对应的, ch0 corres vip0portA ch1 corres Vip0PortB??
Ternence_Hsu:
hi;
你有去判断tvp7002工作是否正常吗?
rdk的代码中tvp7002的驱动默认是没有支持vga的采集的,你需要重新配置寄存器
Ternence_Hsu:
1、usecase 你可以自己重新写的
2、对,ch0 对应 vip0 port A,ch1 对应 vip1 port A
siliang yang:
回复 Ternence_Hsu:
demo中对7002进行初始化(demo实现了两路高清的采集编码显示等),设置采集参数等,看不出任何问题。 usecase通过给VipInst设置参数然后capture_link使用参数创建实例。自带demo根据7002硬件屏蔽了官方参数,抛弃了7002那一套芯片配置自定义几个简单参数,我也基于板子改过的代码使用而不是用官方的,因为有很多GPIO要设置,包括7002驱动。 改动的就是采集参数,采集的标准也和demo相同,但是没成功。 看了capturelink_drv.c也不知道动哪儿。 如果采集能成功那么后续的操作就没啥问题了。。
Ternence_Hsu:
回复 siliang yang:
你那边现在一直是 “CAPTURE: Overflow detected on VIP1, Total Resets”
一直都没有采集出来过一帧数据吗?
siliang yang:
回复 Ternence_Hsu:
自己的Usecase是 demo不是
siliang yang:
回复 Ternence_Hsu:
关于这句打印,正常采集就不会有,但是同样会进入那个captureLink_drvOverflowDetectReset()函数。overFlowStatus.isPoratOverFlowed[vip_port] != true就不会打印。 这个探测VIP的逻辑有点混乱… 正常的数据处理循环中就不会有VIP状态的打印吗
Ternence_Hsu:
回复 siliang yang:
正常处理,是不会有这个打印的
如果demo能正常采集,不会有这个错误提示
怎么不在正常的demo上面再修改呢,你是在正常的基础上修改导致出现现在的问题的吗 ?
siliang yang:
回复 Ternence_Hsu:
正常的两路高清 ,, 我要的1HD+4SD不太一样,用的另一个Usecase
siliang yang:
回复 Ternence_Hsu:
现在自己的板子还没生产出来 。 我想用实现的VIP0处理成高清,剩下的4路标清使用nullSrc或者复制这个高清裁剪后得到。别人能实现的我也希望做出来,如果直接改原来两路那个的话东西太多会有点乱