camera问题
我是用MMOverlay来做UI的
1.在preview状态下,调用ICAMERA_Stop会刷白屏,看底层是MDP刷的,能不能让它不刷?
2.如果必须要刷,我想在ICAMERA_GetFrame后,把frame保存起来,使用代码如下,但是发现个问题是,IBITMAP_BltIn这个函数会直接把frame直接刷到屏上去,这样的加上我本来的显示函数,就有两次刷屏的操作了!!
求高手帮忙!!
/**
pFrame参数是用 ICAMERA_GetFrame得到的.
**/
void AfCamera_CpyCamFrame(QCam *pMe,IBitmap *pFrame)
{
int nErr = SUCCESS;
IBitmap * piSrcBitMap = NULL;
IBitmap *piBitMap = NULL;
AEEBitmapInfo stinfo = {0};
do
{
nErr = IDISPLAY_GetDeviceBitmap(pMe->a.m_pIDisplay,&piSrcBitMap);
MSG_HIGH("Evan: IDISPLAY_GetDeviceBitmap nErr= %d",nErr,0,0);
if(nErr != SUCCESS)
{
break;
}
IBitmap_GetInfo(pFrame,&stinfo,sizeof(AEEBitmapInfo));
nErr = IBITMAP_CreateCompatibleBitmap(piSrcBitMap, &piBitMap, stinfo.cx,stinfo.cy);
MSG_HIGH("Evan: IBITMAP_CreateCompatibleBitmap nErr= %d",nErr,0,0);
if(nErr != SUCCESS)
{
break;
}
nErr = IBITMAP_BltIn(piBitMap,
0,
0,
pMe->m_rcPreView.dx,
pMe->m_rcPreView.dy,
pFrame,
0,
0,
AEE_RO_COPY);
MSG_HIGH("Evan: IBITMAP_BltIn nErr= %d",nErr,0,0);
}while(0);
if(piSrcBitMap != NULL)
{
CAM_RELEASEIF(piSrcBitMap);
}
}