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; }
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; }