用directshow做手机camera研发时出现的问题.
用directshow做手机camera研发时出现的问题.
HRESULT CamTransform::Transform(IMediaSample *pIn, IMediaSample *pOut)
{
BYTE* pOutBuffer;
BYTE* pInBuffer;
LONG size = 2;
REFERENCE_TIME rtStart, rtStop;
int i;
HRESULT hr;
pIn->GetTime(&rtStart, &rtStop);
size = pIn->GetActualDataLength();
pOut->GetPointer(&pOutBuffer);
pIn->GetPointer(&pInBuffer);
memcpy( pOutBuffer, pInBuffer,m_height*m_width*2 );
if ( m_callback )
m_callback( pInBuffer, m_width,m_height , 16 );
MergeTextAndPolyLine( pOutBuffer, m_width,m_height ); //! temp
pOut->SetActualDataLength( size );
pOut->SetTime(&rtStart, &rtStop);
pOut->SetSyncPoint(TRUE);
return S_OK;
} // Transform
自己写了一个Transform方法,pOutBuffer是正常的图像,为什么显示出来的图像不正常呢?SUBTYPE用了RGB565,是不是该手机不支持RGB565的原因?
HRESULT CamTransform::Transform(IMediaSample *pIn, IMediaSample *pOut)
{
BYTE* pOutBuffer;
BYTE* pInBuffer;
LONG size = 2;
REFERENCE_TIME rtStart, rtStop;
int i;
HRESULT hr;
pIn->GetTime(&rtStart, &rtStop);
size = pIn->GetActualDataLength();
pOut->GetPointer(&pOutBuffer);
pIn->GetPointer(&pInBuffer);
memcpy( pOutBuffer, pInBuffer,m_height*m_width*2 );
if ( m_callback )
m_callback( pInBuffer, m_width,m_height , 16 );
MergeTextAndPolyLine( pOutBuffer, m_width,m_height ); //! temp
pOut->SetActualDataLength( size );
pOut->SetTime(&rtStart, &rtStop);
pOut->SetSyncPoint(TRUE);
return S_OK;
} // Transform
自己写了一个Transform方法,pOutBuffer是正常的图像,为什么显示出来的图像不正常呢?SUBTYPE用了RGB565,是不是该手机不支持RGB565的原因?
...全文
相关推荐
wince6.0 directshow camera
wince6.0 directshow camera
DirectShow获取视频和音频数据
DirectShow获取视频和音频数据,对视频的易歌预览和截图,对音频的预览和保存到文件
使用DirectShow采集并进行H264实时编码
使用DirectShow采集,使用ISampleGrabber抓取图像,并在回调中对得到的每一帧使用X264进行编码,得到的视频文件比没有进行编码处理的视频小很多,希望对大家有用
amcap.rar_DirectShow摄像头_camera file save_directshow amcap_摄像头_获取
使用directshow操作摄像头、获取摄像头图像、保存视频文件
DirectShow虚拟摄像头工程
这是基于DirectShow的虚拟摄像头驱动源代码工程, 此工程采用从零开发,采用非常原始的方法实现COM基础组件和IBaseFilter,IPin等接口功能。 不依赖 DSHOW的SDK库就可以编译运行, 本代码工程使用VS2015编译。 如果你不喜欢,或者不想去了解DirectShow的工作原理, 大可不必理会我这种比较“疯狂”的做法,也不必下载我的这份代码给你平添无谓的烦恼。 source目录是工程目录, bin是已经编译好的dll,可以调用register.bat注册,调用unregister.bat注销. 注册成功后,使用DirectShow框架的程序就可以发现并访问这个虚拟摄像头,比如QQ,amcap等。 本工程详细原理介绍,请看如下链接: https://blog.csdn.net/fanxiushu/article/details/79830750 Fanxiushu 2018


