Hi,
Sorry to Interrupt You...I have one more query regarding Tiler Module..
I implemented video masking for all my 4 H264 channels, & thats why I had given a system control of video masking to Camera Driver & It was working fine. (Tiler is off from Rules.make file)
But when Tiler is on from Rules.make file, & When I give a system control for enable to video masking to camera driver, streaming has been stopped.
Please solve My Issue..
Pelase review a code of VideoMasking in camera driver..
Int32 CameraLink_drvProcessData(CameraLink_Obj * pObj)
{
.................
for (streamId = 0; streamId < CAMERA_LINK_MAX_OUTPUT_PER_INST; streamId++)
{
/*
* Deque frames for all active handles
*/
FVID2_dequeue(pObj->fvidHandleVipAll,
&frameList, streamId, BIOS_NO_WAIT);
if (frameList.numFrames)
{
for (frameId = 0; frameId < frameList.numFrames; frameId++)
{
pFrame = frameList.frames[frameId];
...................
/* Sentry360 Start */
if( pObj->pmInfo.pmEnable )
{
PM_processFrames( pFrame , &pObj->pmInfo );
}
.........................
Void PM_processFrames( FVID2_Frame * pFrame , PM_infoStruct *pPmInfo )
{
Ptr FrameAddrY,FrameAddrUV;
UInt32 maskAddr,colorId;
Iss_CaptRtParams *pRtParams;
UInt32 pitch,width,height;
UInt32 pmId,startX,startY;
pRtParams = (Iss_CaptRtParams *) pFrame->perFrameCfg;
pitch = pRtParams->captureOutPitch;
FrameAddrY = (Ptr) pFrame->addr[0][0];
FrameAddrUV = (Ptr) pFrame->addr[0][1];
for ( pmId = 0 ; pmId < MAX_PRIVACY_REGION ; pmId++ )
{
if( TRUE == pPmInfo->rectInfo[pmId].enable )
{
if ( pPmInfo->pcolor < PM_COLOR_TYPE_MAX )
colorId = pPmInfo->pcolor;
else
colorId = PM_COLOR_BLACK;
startX = DRAW_floor( ( pPmInfo->rectInfo[pmId].startX * (pRtParams->captureOutWidth) )/1920 , 8);
startY = DRAW_floor( ( pPmInfo->rectInfo[pmId].startY * (pRtParams->captureOutHeight) )/1080 , 2);
maskAddr = (UInt32) FrameAddrY + ( startX + ((startY) * (pitch)));
width = DRAW_align( ((pPmInfo->rectInfo[pmId].width) * (pRtParams->captureOutWidth))/ 1920 , 8);
height = DRAW_align( ((pPmInfo->rectInfo[pmId].height) * (pRtParams->captureOutHeight))/ 1080 , 2);
if( !(width && height) )
{
continue;
}
if ( width > (pRtParams->captureOutWidth) )
{
width = DRAW_align((pRtParams->captureOutWidth), 8);
}
if ( height > (pRtParams->captureOutHeight) )
{
height = DRAW_align((pRtParams->captureOutHeight), 2);
}
/* Y-plan */
DM81XX_EDMA3_memset( DRAW_EDMA_CHID_DRAW,
DRAW_EDMA_QUEUEID_DRAW,
gColorInfo[colorId][0],
maskAddr,
width,
height,
pitch );
maskAddr = (UInt32) FrameAddrUV + ( startX + ((startY/2) * (pitch)));
/* UV-plan */
DM81XX_EDMA3_memset( DRAW_EDMA_CHID_DRAW,
DRAW_EDMA_QUEUEID_DRAW,
gColorInfo[colorId][1],
maskAddr,
width,
height/2,
pitch );
}
}
}
Is there any Issue of EDMA Copy When Tiler is On? Alsoi I Pritnt some messages before EDMA copy, and it prints...but after EDMA .....Camera stop, streaming stop.
Regards,
Sandip Gokani