DirectShow Filter开发
初学DirectShow,写了个TransInPlace Filter,想给每帧数据里添加一个矩形框,Tranform应该怎么写,请各位帮帮忙,谢谢了
- C/C++ code
HRESULT CDrawRectFilter::Transform(IMediaSample *pSample){ long size = pSample->GetActualDataLength(); BYTE *pBuffer = new BYTE[size]; pSample->GetPointer(&pBuffer); //这里对数据改写之后应该怎么操作,怎么往下送Sanple return NO_ERROR;}[解决办法]
pBuffer 指向的就是图像数据了
长度由 pSample->GetSize() 返回
格式可由GetMediaType取得
IMediaSample 就是你要操作的数据,所有要使用的信里面都有了,你只需要改变pBuffer 里的数据,其它SDK 已经处理了
D9SDK 里有这样的示例
DXSDK\Samples\C++\DirectShow\Filters\RGBFilters
[解决办法]
pBuffer 指向的就是图像数据了
长度由 pSample->GetSize() 返回
格式可由GetMediaType取得
IMediaSample 就是你要操作的数据,所有要使用的信里面都有了,你只需要改变pBuffer 里的数据,其它SDK 已经处理了
D9SDK 里有这样的示例
DXSDK\Samples\C++\DirectShow\Filters\RGBFilters
[解决办法]
AlphaRenderer - a rendering filter that will perform an
alpha blend onto a checkerboard background, which is based
on the incoming video alpha. This uses the new media subtype
MEDIASUBTYPE_ARGB32.
[解决办法]