写一个Transform Filter碰到的问题

很简单的一个功能 改变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;   //再试 发现问题也问题解决了 但也没明白为什么

}

搞不懂呀! 欺负我是新手嘛....

 

你可能感兴趣的:(DirectShow)