#582 wrong "output format changes" process

open
nobody
None
5
2009-05-19
2009-05-19
Anonymous
No

As far as I understood this process is described in msdn ( http://msdn.microsoft.com/en-us/library/dd377497\(VS.85).aspx )
Actually msdn says:
--------------------------------
ReceiveConnection

This mechanism enables an output pin to propose a format change to its downstream peer, when the new format requires a larger buffer. The output pin does the following:

1. Calls IPin::ReceiveConnection on the downstream input pin.
2. If ReceiveConnection succeeds, calls IMemInputPin::NotifyAllocator on the input pin.

In addition, the output pin may need to call IMemAllocator::SetProperties and then decommit and recommit the allocator in order to change buffer sizes. Make sure to deliver all pending samples in the old format before changing the buffer size.
--------------------------------

So I think your filter should fix size of MemoryAllocator and set right lSampleSize in MediaSample itself.
As an example, Elecard video decoder implement it.

Why does ffdshow filter expect that downstream filter fix size of MemoryAllocator?
Why do you write comment in file TffDecoder.cpp
// stupid overlay mixer won't let us know the new pitch...
?

For now I have to fix my source code especially for your filter.
and I will add comment
// stupid ffdshow filter did not read http://msdn.microsoft.com/en-us/library/dd377497\(VS.85).aspx

Sincerelly yours.

Discussion