我的目前大概的chains是 capture dup(4个) merge sclr swms nsf等等 不知这样子可行不
Chris Meng:
你好,
理论上是没有限制的。但为什么你的use case需要先sclr,再swms?swms就是缩放加拼接。NSF是为了做422到420转换么?
xiangyang duan:
回复 Chris Meng:
sclr里面有个 crop 我是先用sclr做完裁剪,在用swms 放大 在拼接的 nsf就是为了422转420
Ternence_Hsu:
回复 xiangyang duan:
不知道你是用的sdk的哪个版本;
在DVRRDK4.0 里面可以支持其他模块的,但是会有警告出现,在avsync里面会检测swms后面会不会是dispaly link
在avsync_m3vpss.c中处理,修改后就可以了,后面可以正常接dispaly以外的其他link的
yueping Tian:
回复 Ternence_Hsu:
能告诉我怎么处理吗, 我也遇到了同样的问题
Ternence_Hsu:
回复 yueping Tian:
你是用的那个版本的开发包;
可以把你错误信息贴出来吗?
yueping Tian:
回复 Ternence_Hsu:
我用的版本是 rdk4.0
错误是:
[m3vpss ] 174343:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1236::errorCondition:((avsync_map_link) [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[51] Will Default to AVSYNC disabled
打印多次后程序就退出了
Ternence_Hsu:
回复 yueping Tian:
下面是diff的log信息,你参考一下;
这里主要是做了一个判断,swms的next link 是不是 display link,修改一下就可以通过了,试一下
yueping Tian:
回复 Ternence_Hsu:
你好, 我修改后,不再提示错误。 但程序也不往下走了,
帮我看下参数设置 有问题没
387 SwMsLink_CreateParams swMsPrm;388 MULTICH_INIT_STRUCT(SwMsLink_CreateParams,swMsPrm);389 swMsPrm.numSwMsInst = 1;390 swMsPrm.swMsInstId[0] = SYSTEM_SW_MS_SC_INST_SC5;391 swMsPrm.inQueParams.prevLinkId = gMultiCh_VcapVencVdisObj.dupId[1];392 swMsPrm.inQueParams.prevLinkQueId = 1;393 swMsPrm.outQueParams.nextLink = gVcapModuleContext.ipcFramesOutVpssToHostId;394 swMsPrm.maxInputQueLen = SYSTEM_SW_MS_DEFAULT_INPUT_QUE_LEN;395 swMsPrm.maxOutRes = VSYS_STD_1080P_60;396 swMsPrm.lineSkipMode = FALSE;397 swMsPrm.enableProcessTieWithDisplay = FALSE;
Ternence_Hsu:
回复 yueping Tian:
你好;
你可以贴出你完整的log信号,和你Usecase的整个chains代码吗?
yueping Tian:
回复 Ternence_Hsu:
cap(1080p) –dup — enc( h264)
| —- sclr (720*576) — dup — enc (h264)
| —- swms — ipcFramesOutVpss — ipcFramesInHost
368 dupPrm1.numOutQue = 2;369 dupPrm1.outQueParams[0].nextLink = gMultiCh_VcapVencVdisObj.mergeId[0];370 371 /*添加swms*/372 IpcFramesOutLinkRTOS_CreateParams ipcFramesOutVpssToHostPrm;373 MULTICH_INIT_STRUCT(IpcFramesOutLinkRTOS_CreateParams ,ipcFramesOutVpssToHostPrm);374 375 UInt32 swMsId = SYSTEM_LINK_ID_SW_MS_MULTI_INST_0;376 dupPrm1.outQueParams[1].nextLink = swMsId;377 378 SwMsLink_CreateParams swMsPrm;379 MULTICH_INIT_STRUCT(SwMsLink_CreateParams,swMsPrm);380 swMsPrm.numSwMsInst = 1;381 swMsPrm.swMsInstId[0] = SYSTEM_SW_MS_SC_INST_SC5;382 swMsPrm.inQueParams.prevLinkId = gMultiCh_VcapVencVdisObj.dupId[1];383 swMsPrm.inQueParams.prevLinkQueId = 1;384 swMsPrm.outQueParams.nextLink = gVcapModuleContext.ipcFramesOutVpssToHostId;385 swMsPrm.maxInputQueLen = SYSTEM_SW_MS_DEFAULT_INPUT_QUE_LEN;386 swMsPrm.maxOutRes = VSYS_STD_576P;387 swMsPrm.initOutRes = VSYS_STD_576P;388 swMsPrm.lineSkipMode = FALSE;389 swMsPrm.enableProcessTieWithDisplay = FALSE;390 391 ipcFramesOutVpssToHostPrm.baseCreateParams.inQueParams.prevLinkId = swMsId;392 ipcFramesOutVpssToHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;393 394 395 /*ipcFrameOut D1->A8*/396 ipcFramesOutVpssToHostPrm.baseCreateParams.noNotifyMode = TRUE;397 ipcFramesOutVpssToHostPrm.baseCreateParams.notifyNextLink = FALSE;398 ipcFramesOutVpssToHostPrm.baseCreateParams.notifyPrevLink = TRUE;399 ipcFramesOutVpssToHostPrm.baseCreateParams.outQueParams[0].nextLink = gVcapModuleContext.ipcFramesInHostId;400
在demo_vcap_file.c 中接收yuv数据
180 status = Vcap_getFullVideoFrames(&bufList,TIMEOUT_NO_WAIT);181 if(status==ERROR_NONE && bufList.numFrames)182 {183 for(frameId=0; frameId<bufList.numFrames; frameId++)184 {185 pbuf = &bufList.frames[frameId];186 frameSize = (pbuf->frameWidth * pbuf->frameHeight) * 3 >> 1 ;187 OSA_printf("[YUV] size = %d, wid=%d, hi=%d, time = %ld \n",188 frameSize, pbuf->frameWidth, pbuf->frameHeight, (long int)pbuf->timeStamp);
没有任何打印
[m3vpss ] 12409: SWMS : ******* Configuring clock 15 secs… [m3vpss ] 12409: SWMS0 : Loading Vertical Co-effs (UPSCALE)x … [m3vpss ] 12409: SWMS0 : Loading Horizontal Co-effs (UPSCALE)x … [m3vpss ] 12409: SWMS : Co-effs Loading … DONE !!! [m3vpss ] [m3vpss ] *** [SWMS0] Mosaic Parameters *** [m3vpss ] [m3vpss ] Output FPS: 0 [m3vpss ] [m3vpss ] Win | Ch | Input | Input | Input | Input | Output | Output | Output | Output | Low Cost | SWMS| [m3vpss ] Num | Num | Start X, Y | Width x Height | Pitch Y / C | Memory Type | Start X, Y | Width x Height | Pitch Y / C | Memory Type | ON / OFF | Inst| [m3vpss ] —————————————————————————————————————————————————– [m3vpss ] [host] IpcFramesInLink_tskMain:Entered [host] 201133: IPC_FRAMES_IN : Create in progress !!! [host] 201133: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_20] … 201139: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_20] … [m3vpss ] SWMS:HEAPID:0 USED:224 [m3vpss ] SWMS:HEAPID:1 USED:43776 [m3vpss ] SWMS:HEAPID:4 USED:50462720 [m3vpss ] 212507: SWMS: Create Done !!!
在之前没有添加swms是是可以输出yuv的