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:
- Calls IPin::ReceiveConnection on the downstream input pin.
ReceiveConnectionsucceeds, 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.
Some MPEG-2 decoders use this mechanism to switch between MPEG-1 and MPEG-2 output or if the video size changes.