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