3,203
社区成员




/*
*显示帧
*pImageBuffer 放置帧的缓冲
*nFrameLength 帧的长度
*/
static void DisplayFrame(eMonitor *pMe, byte * pImageBuffer, int nFrameLength)
{
IImage * pIImage;
IMemAStream * pIMemStream;
//建立处理JPEG图片格式的 IImage 接口
if (ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_JPEG, (void **)&pIImage) != SUCCESS)
{
DBGPRINTF("Create IImage fall");
return;
}
//MEMCPY(pBuffer, pData, size);
//建立处理流的 IMenAStream 接口
if (ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_MEMASTREAM, (void **)&pIMemStream) != SUCCESS)
{
DBGPRINTF("Create IStream fall");
return;
}
//格式化数据为存储流
IMEMASTREAM_Set(pIMemStream, pImageBuffer, nFrameLength, 0, FALSE);
//把流设置为图片数据,IIMAGE_SetStream()函数使 IAStream 接口与 IImage 接口对象关联,以使图像数据从文件或套接字流入
IIMAGE_SetStream(pIImage, pIMemStream);
IIMAGE_Notify(m_pImage, Timeout, pMe);
IIMAGE_Draw(pIImage, 0, 0);
IMEMASTREAM_Release(pIMemStream); //release IMemStream
}