很简单的一个功能 改变AVI画面的明暗度
基类选择CTransInPlaceFilter 一切OK!
而基类选择 CTransformFilter 输出的画面不正确.
HRESULT DecideBufferSize(IMemAllocator *pAlloc, ALLOCATOR_PROPERTIES *pProp)
{
AM_MEDIA_TYPE mt;
HRESULT hr = m_pOutput->ConnectionMediaType(&mt);
...
BITMAPINFOHEADER *pbmi = HEADER(mt.pbFormat);
pProp->cbPrefix = 1; //加了这一句 问题解决了 但没明白为什么
pProp->cbBuffer = DIBSIZE(*pbmi) + 1; //再试 发现问题也问题解决了 但也没明白为什么
}
搞不懂呀! 欺负我是新手嘛....
博客讲述改变AVI画面明暗度功能,基类选CTransInPlaceFilter正常,选CTransformFilter输出画面不正确。在DecideBufferSize函数中,添加pProp->cbPrefix = 1和pProp->cbBuffer = DIBSIZE(*pbmi) + 1可解决问题,但作者不明白原理。
6472

被折叠的 条评论
为什么被折叠?



