Example #1
0
bool
OTClient::
doOT(ImgBufQueNode const& rQueNode, bool &rIsDetected_OT)
{
    bool ret = true;

    MY_LOGD_IF(ENABLE_LOG_PER_FRAME, "+");

    src_buf = (unsigned char *)rQueNode.getImgBuf()->getVirAddr();
    dst_rgb = (unsigned char *)OTWorkingBuffer;
    int ot_plane = Format::queryPlaneCount(Format::queryImageFormat(rQueNode->getImgFormat().string()));
    mpOTHalObj->halOTBufferCreate(dst_rgb, src_buf, (MUINT8)ot_plane);

    if((OT_StartX < -1000) || (OT_StartX > 1000) || (OT_StartY < -1000) || (OT_StartY > 1000))
    {
        MY_LOGD("Error! Incorrect Initial Coordinate\n");
        return false;
    }

    //®y¼Ð´«ºâ

    mpOTHalObj->halOTDo(dst_rgb,  OT_StartX, OT_StartY);

#if (GET_OT_RESULT)
    if( NULL != mpDetectedObjs )
         numFace = mpOTHalObj->halOTGetResult(mpDetectedObjs);
    MY_LOGD("OT Status: %d\n",numFace );
    if(numFace>0)
        rIsDetected_OT = 1;
   else
        rIsDetected_OT = 0;
#endif

    return ret;
}
/******************************************************************************
*   REPEAT:[ dequeProvider() -> enqueProvider() ]
*   dequeProvider() returns false immediately if empty.
*******************************************************************************/
bool
ImgBufQueue::
enqueProvider(ImgBufQueNode const& rNode)
{
    if  ( ! rNode ) {
        MY_LOGW("buffer is NULL");
        return  false;
    }
    //
    Mutex::Autolock _lock(mDoneImgBufQueMtx);
    //
    MY_LOGV_IF(
        ENABLE_LOG_PER_FRAME, 
        "+ Que.size(%d); (CookieED/CookieDE)=(%p,%p) %s; Buffer[%s@0x%08X@%d@%s@(%d)%dx%d@%d@Timestamp(%lld)]", 
        mDoneImgBufQue.size(), 
        rNode.getCookieED(), rNode.getCookieDE(), ImgBufQueNodeStatus2Name(rNode.getStatus()), 
        rNode->getBufName(), rNode->getVirAddr(), rNode->getBufSize(), rNode->getImgFormat().string(), 
        rNode->getImgWidthStride(), rNode->getImgWidth(), rNode->getImgHeight(), rNode->getBitsPerPixel(), rNode->getTimestamp()
    );
    //
    mDoneImgBufQue.push_back(rNode);
    mDoneImgBufQueCond.broadcast();
    //
    return  true;
}
Example #3
0
inline void
ZsdShot::
mapNodeToImageBuf(ImgBufQueNode & rNode, ImgBufInfo & rBuf)
{
    rBuf.u4ImgWidth = rNode->getImgWidth();
    rBuf.u4ImgHeight = rNode->getImgHeight();
    rBuf.eImgFmt = static_cast<EImageFormat>(android::MtkCamUtils::FmtUtils::queryImageioFormat(rNode->getImgFormat()));
    rBuf.u4Stride[0] = rNode->getImgWidthStride(0);
    rBuf.u4Stride[1] = rNode->getImgWidthStride(1);
    rBuf.u4Stride[2] = rNode->getImgWidthStride(2);
    rBuf.u4BufSize = rNode->getBufSize();
    rBuf.u4BufVA = (MUINT32)rNode->getVirAddr();
    rBuf.u4BufPA = (MUINT32)rNode->getPhyAddr();
    rBuf.i4MemID = rNode->getIonFd();
}
MVOID
MultiShotCc::
mapNodeToImageBuf(ImgBufQueNode & rNode, ImgBufInfo & rImgBuf)
{
    FUNCTION_LOG_START;

    rImgBuf.u4ImgWidth = rNode->getImgWidth();
    rImgBuf.u4ImgHeight = rNode->getImgHeight();
    rImgBuf.eImgFmt = static_cast<EImageFormat>(android::MtkCamUtils::FmtUtils::queryImageioFormat(rNode->getImgFormat()));
    rImgBuf.u4Stride[0] = rNode->getImgWidthStride(0);
    rImgBuf.u4Stride[1] = rNode->getImgWidthStride(1);
    rImgBuf.u4Stride[2] = rNode->getImgWidthStride(2);
    rImgBuf.u4BufSize = rNode->getBufSize();
    rImgBuf.u4BufVA = (MUINT32)rNode->getVirAddr();
    rImgBuf.u4BufPA = (MUINT32)rNode->getPhyAddr();
    rImgBuf.i4MemID = rNode->getIonFd();


    MY_LOGD("[registerImgBufInfo] (width, height, format) = (%d, %d, 0x%x)", rImgBuf.u4ImgWidth, rImgBuf.u4ImgHeight, rImgBuf.eImgFmt);
    MY_LOGD("[registerImgBufInfo] (VA, PA, Size, ID) = (0x%x, 0x%x, %d, %d)", rImgBuf.u4BufVA, rImgBuf.u4BufPA, rImgBuf.u4BufSize, rImgBuf.i4MemID);


    FUNCTION_LOG_END;
}