这是一个dmo的例子!接收到的视频帐的图像
HRESULT CFlickerLogo::InternalProcessInput(DWORD dwInputStreamIndex,
IMediaBuffer *pBuffer,
DWORD dwFlags,
REFERENCE_TIME rtTimestamp,
REFERENCE_TIME rtTimelength)
{
if (!mIsInputInited)
{
mIsInputInited = TRUE;
VIDEOINFOHEADER * pvi = (VIDEOINFOHEADER *) InputType(0)->pbFormat;
mImageWidth = pvi->bmiHeader.biWidth;
mImageHeight = pvi->bmiHeader.biHeight;
mImageStride = (pvi->bmiHeader.biWidth * pvi->bmiHeader.biBitCount / 8 + 3) & ~3;
mLogoStride = cLogoWidth * pvi->bmiHeader.biBitCount / 8;
} BYTE * pData;
DWORD dataLength = 0;
HRESULT hr = pBuffer->GetBufferAndLength(&pData, &dataLength);
if (FAILED(hr))
{
return hr;
} // Do water overlay here >>>
pBuffer->AddRef(); // Add a reference count
mInputFrame = pBuffer;
mFrameTime = rtTimestamp; // Save time stamp
mFrameDuration = rtTimelength;
if (cLogoWidth <= mImageWidth && cLogoHeight <= mImageHeight)
{
BYTE * pLine = pData;
BYTE newValue = (mFrameCount++ % 2 == 0) ? 0x1 : 0x1;
for (int i = 0; i < cLogoHeight; i++)
{
if (i % 2 == 0)
{
memset(pLine, newValue, mLogoStride);
}
pLine += mImageStride;
}
} return S_OK;
}我想问的是, 图像保存在pData 中,可否在这个图上直接加文字内容,pData 中是图像的字节流吧?平时我在图像上处理字时,都是用HDC!在这儿用不知到行不行!
我不是很懂这个,请高人指点!
HRESULT CFlickerLogo::InternalProcessInput(DWORD dwInputStreamIndex,
IMediaBuffer *pBuffer,
DWORD dwFlags,
REFERENCE_TIME rtTimestamp,
REFERENCE_TIME rtTimelength)
{
if (!mIsInputInited)
{
mIsInputInited = TRUE;
VIDEOINFOHEADER * pvi = (VIDEOINFOHEADER *) InputType(0)->pbFormat;
mImageWidth = pvi->bmiHeader.biWidth;
mImageHeight = pvi->bmiHeader.biHeight;
mImageStride = (pvi->bmiHeader.biWidth * pvi->bmiHeader.biBitCount / 8 + 3) & ~3;
mLogoStride = cLogoWidth * pvi->bmiHeader.biBitCount / 8;
} BYTE * pData;
DWORD dataLength = 0;
HRESULT hr = pBuffer->GetBufferAndLength(&pData, &dataLength);
if (FAILED(hr))
{
return hr;
} // Do water overlay here >>>
pBuffer->AddRef(); // Add a reference count
mInputFrame = pBuffer;
mFrameTime = rtTimestamp; // Save time stamp
mFrameDuration = rtTimelength;
if (cLogoWidth <= mImageWidth && cLogoHeight <= mImageHeight)
{
BYTE * pLine = pData;
BYTE newValue = (mFrameCount++ % 2 == 0) ? 0x1 : 0x1;
for (int i = 0; i < cLogoHeight; i++)
{
if (i % 2 == 0)
{
memset(pLine, newValue, mLogoStride);
}
pLine += mImageStride;
}
} return S_OK;
}我想问的是, 图像保存在pData 中,可否在这个图上直接加文字内容,pData 中是图像的字节流吧?平时我在图像上处理字时,都是用HDC!在这儿用不知到行不行!
我不是很懂这个,请高人指点!
解决方案 »
- mfc 线程函数问题
- 100分求教,如何在ATL中自定义鼠标
- 一个浏览器问题
- 问了半年了,来者有分,TCP/IP详解(卷二)那本书上代码能在windows下编译吗?用vc6可以不?不行的话怎么办?
- 使用MFC多文档,建立了两个文档模板,其中一个只可以打开一个文档,怎么写呢?
- 有没有用VC++6.0做WINDOWS窗口程序的哦
- 调查一下 VC++还有多大发展空间
- 推荐一下介绍win32 static library的书
- OpenGL绘制的一个图形无法保存在窗口上,看代码
- C++ udp 语音传输 使用 wavein waveout 的断续问题
- 如何修改VC++6.0生成的EXE图标
- 菜鸟问题:如何合并两个字节
楼主你好,
最近在用Media encoder sdk 开发视频采集+上传WMS软件,但有些功能在Encoder sdk中找不到,网上资料也很少,能给我发些你的资料吗?是在很急啊,
谢谢楼主了,