CBaseOutputPin Class
Microsoft DirectShow 9.0 |
CBaseOutputPin Class
The 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.
Call the CBaseOutputPin::GetDeliveryBuffer method to obtain an empty media sample. Call the CBaseOutputPin::Deliver method to deliver samples downstream.
Your derived class must override the pure virtual CBasePin::CheckMediaType method to validate the media type during pin connections.
Requirements
** Header:** Declared in Amfilter.h; include Streams.h.
** Library:** Use Strmbase.lib (retail builds) or Strmbasd.lib (debug builds).
Protected Member Variables | |
m_pAllocator | Pointer to the memory allocator. |
m_pInputPin | Pointer to the input pin connected to this pin. |
Public Methods | |
CBaseOutputPin | Constructor method. |
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 | |
DecideBufferSize | Sets the buffer requirements. |
IPin Methods | |
BeginFlush | Begins a flush operation. |
EndFlush | Ends a flush operation. |
EndOfStream | Notifies the pin that no additional data is expected. |