CBaseOutputPin class is an abstract base class that implements an output pin.
This class derives from CBasePin. It differs from CBasePin in the following respects:
- It connects only to input pins that support the IMemInputPin interface.
- It supports local memory transport through the IMemAllocator interface.
- It rejects end-of-stream, flush, and new-segment notifications. (These should not be sent to an output pin.)
- It provides methods for delivering samples downstream.
When the pin connects, it requests a memory allocator from the input pin. Failing that, it creates a new allocator object. The output pin is responsible for setting the allocator properties. It does this through the pure virtual method CBaseOutputPin::DecideBufferSize. Override this method in your derived class. If the input pin has any buffer requirements, they are passed to the DecideBufferSize method.
Your derived class must override the pure virtual CBasePin::CheckMediaType method to validate the media type during pin connections.
|Protected Member Variables||Description|
|m_pAllocator||Pointer to the memory allocator.|
|m_pInputPin||Pointer to the input pin connected to this pin.|
|CompleteConnect||Completes a connection to an input pin. Virtual.|
|DecideAllocator||Selects a memory allocator. Virtual.|
|GetDeliveryBuffer||Retrieves a media sample that contains an empty buffer. Virtual.|
|Deliver||Delivers a media sample to the connected input pin. Virtual.|
|InitAllocator||Creates a memory allocator. Virtual.|
|CheckConnect||Determines whether a pin connection is suitable.|
|BreakConnect||Releases the pin from a connection.|
|Active||Notifies the pin that the filter is now active.|
|Inactive||Notifies the pin that the filter is no longer active.|
|DeliverEndOfStream||Delivers an end-of-stream notification to the connected input pin.Virtual.|
|DeliverBeginFlush||Requests the connected input pin to begin a flush operation. Virtual.|
|DeliverEndFlush||Requests the connected input pin to end a flush operation. Virtual.|
|DeliverNewSegment||Delivers a new-segment notification to the connected input pin. Virtual.|
|Pure Virtual Methods||Description|
|DecideBufferSize||Sets the buffer requirements.|
|BeginFlush||Begins a flush operation.|
|EndFlush||Ends a flush operation.|
|EndOfStream||Notifies the pin that no additional data is expected.|