CTransformInputPin Class

CTransformInputPin class hierarchy

The CTransformInputPin class implements the input pin of a simple transform filter. It is the class assigned to the m_pInput data member of the CTransformFilter class. Typically, you can create objects derived from CTransformFilter without modifying the CTransformInputPin class. That is, you can usually override the member functions in CTransformFilter that are called by member functions of this class. This means that you need not derive your own classes for either of the pin classes.

However, if you want to override this class and have your filter class derived from CTransformFilter, you must override the CTransformFilter::GetPin member function to create pins of your derived class.

Protected Data Members

m_pTransformFilter Pointer to the owning CTransformFilter object.

Member Functions

CTransformInputPin Constructs a CTransformInputPin object.
CurrentMediaType Retrieves the media type currently assigned to the filter.

Overridable Member Functions

BreakConnect Informs the derived class when the connection is broken.
CheckConnect Informs the derived class when the connection process is starting.
CheckMediaType Determines if the pin can use a specified media type.
CheckStreaming Verifies conditions for continuing with a streaming operation.
CompleteConnect Informs the derived class when the connection process has completed.
SetMediaType Informs the derived class when the media type is established for the connection.

Implemented IPin Methods

BeginFlush Informs the pin to begin a flush operation.
EndFlush Informs the pin to end a flush operation and notifies the pin that it can start accepting data again.
EndOfStream Informs the input pin that no additional data is expected until a new run command is issued.
NewSegment Specifies that samples following this call are grouped as a segment with a given start time, stop time, and rate.
QueryId Retrieves an identifier for the pin.

Implemented IMemInputPin Methods

Receive Receives the next block of data from the stream.

CTransformInputPin::BeginFlush

CTransformInputPin Class

Informs the pin to begin a flush operation.

Syntax

HRESULT BeginFlush(void);

Return Value

Returns an HRESULT value.

Remarks

This member function implements the IPin::BeginFlush method and overrides the CBaseInputPin::BeginFlush member function. It checks to see if the pin is connected, and then calls CBaseInputPin::BeginFlush, and finally calls the CTransformFilter::BeginFlush member function.

CTransformInputPin::BreakConnect

CTransformInputPin Class

Informs the derived class when the connection is broken.

Syntax

HRESULT BreakConnect(void);

Return Value

Returns NOERROR in this implementation.

Remarks

This member function overrides the CBasePin::BreakConnect member function and calls the CTransformFilter::BreakConnect member function. Override CTransformFilter::BreakConnect to undo anything carried out in CTransformInputPin::CheckConnect (such as releasing extra interfaces).

CTransformInputPin::CheckConnect

CTransformInputPin Class

Informs the derived class when the connection process is starting.

Syntax

HRESULT CheckConnect(
    IPin *pPin
    );

Parameters

pPin
Pointer to the IPin interface of the connecting pin.

Return Value

Returns NOERROR by default.

Remarks

This member function overrides the CBasePin::CheckConnect member function and calls the CTransformFilter::CheckConnect member function. Override CTransformFilter::CheckConnect to add additional interfaces.

CTransformInputPin::CheckMediaType

CTransformInputPin Class

Determines if the pin can use a specified media type.

Syntax

HRESULT CheckMediaType(
    const CMediaType *mtIn
    );

Parameters

mtIn
Pointer to a media type object.

Return Value

No return value.

Remarks

This member function calls the pure-virtual CTransformFilter::CheckInputType member function, which must be overridden when deriving a class from the CTransformFilter class. The overridden CheckInputType member function is responsible for determining which media types the input pin supports.

CTransformInputPin::CheckStreaming

CTransformInputPin Class

Verifies conditions for continuing with a streaming operation.

Syntax

HRESULT CheckStreaming(void);

Return Value

Returns one of the following HRESULT values, depending on the state.
S_FALSE Currently in flushing state.
S_OK Receive or EndOfStream operations can safely proceed.
VFW_E_NOT_CONNECTED The output pin either does not exist or isn't connected.
VFW_E_RUNTIME_ERROR A run-time error occurred when processing a previous sample.
VFW_E_WRONG_STATE The filter is in the State_Stopped state.

Remarks

This member function overrides the CBaseInputPin::CheckStreaming member function and calls that base class implementation for most of the condition checks. It determines if the pin is connected, if it is in a paused or running state, and if it is not currently flushing data or processing a run-time error.

CTransformInputPin::CompleteConnect

CTransformInputPin Class

Informs the derived class when the connection process has been completed.

Syntax

HRESULT CompleteConnect(
    IPin *pReceivePin
    );

Parameters

pReceivePin
Pointer to the input pin being connected to.

Return Value

Returns an HRESULT value.

Remarks

This member function overrides the CBasePin::CompleteConnect member function. It calls the base class CBasePin::CompleteConnect member function and then calls CTransformFilter::CompleteConnect.

CTransformInputPin::CTransformInputPin

CTransformInputPin Class

Constructs a CTransformInputPin object.

Syntax

CTransformInputPin(
    TCHAR *pObjectName,
    CTransformFilter *pTransformFilter,
    HRESULT *phr,
    LPCWSTR pName
    );

Parameters

pObjectName
Pointer to the name of the CTransformInputPin object.
pTransformFilter
Pointer to the CTransformFilter class.
phr
Pointer to an HRESULT value in which to return resulting information. This should be modified only if a failure occurs. If it is a failure code on input, construction can be terminated, but in any case the destructor will be called by the creator when the HRESULT error is detected.
pName
Pointer to the name of the pin.

Return Value

No return value.

CTransformInputPin::CurrentMediaType

CTransformInputPin Class

Retrieves the media type currently assigned to the filter.

Syntax

CMediaType& CurrentMediaType(void);

Return Value

Returns the value of CBasePin::m_mt.

CTransformInputPin::EndFlush

CTransformInputPin Class

Informs the pin to end a flush operation and notifies the pin that it can start accepting data again.

Syntax

HRESULT EndFlush(void);

Return Value

Returns an HRESULT value.

Remarks

This member function implements the IPin::EndFlush method and overrides the CBaseInputPin::EndFlush member function. It checks to see if the pin is connected, calls the CBaseInputPin::EndFlush member function, and finally calls the CTransformFilter::EndFlush member function.

CTransformInputPin::EndOfStream

CTransformInputPin Class

Informs the input pin that no additional data is expected until a new run command is issued.

Syntax

HRESULT EndOfStream(void);

Return Value

Returns an HRESULT value.

Remarks

This member function implements the IPin::EndOfStream method. It calls CTransformInputPin::CheckStreaming to see that the filter is in a streaming state and then calls the CTransformFilter::EndOfStream member function.

CTransformInputPin::NewSegment

CTransformInputPin Class

Specifies that samples following this call are grouped as a segment with a given start time, stop time, and rate.

Syntax

HRESULT NewSegment(
    REFERENCE_TIME tStart,
    REFERENCE_TIME tStop,
    double dRate
    );

Parameters

tStart
Start time of the segment.
tStop
Stop time of the segment.
dRate
Rate of the segment.

Return Value

Returns an HRESULT value.

Remarks

This member function implements the IPin::NewSegment method and overrides the CBasePin::NewSegment member function. It calls the base class implementation first (CBasePin::NewSegment), and then calls CTransformFilter::NewSegment to pass the notification on to the next filter downstream.

CTransformInputPin::QueryId

CTransformInputPin Class

Retrieves an identifier for the pin.

Syntax

HRESULT QueryId(
    LPWSTR *Id
    );

Parameters

Id
Address of a pointer to the pin identifier.

Return Value

Returns an HRESULT value.

Remarks

This member function implements the IPin::QueryId method and overrides the CBasePin::QueryId member function. It returns the name "In". The caller is responsible for freeing the memory by using the Microsoft® Win32® CoTaskMemFree function.

CTransformInputPin::Receive

CTransformInputPin Class

Receives the next block of data from the stream.

Syntax

HRESULT Receive(
    IMediaSample *pSample
    );

Parameters

pSample
Pointer to a media sample.

Return Value

Returns an HRESULT value.

Remarks

This member function implements the IMemInputPin::Receive method. Add a reference to the block of data if access to it is required after the completion of this method. For instance, some decoder filters for temporal compression data streams require that the previous sample be kept in order to decode the current sample.

This member function calls the CTransformFilter::Receive member function, which does the work of calling the transform function and then passing the sample on.

CTransformInputPin::SetMediaType

CTransformInputPin Class

Informs the derived class when the media type is established for the connection.

Syntax

HRESULT SetMediaType(
    const CMediaType *mt
    );

Parameters

mt
Pointer to an input media type to be used.

Return Value

Returns an HRESULT value.

Remarks

This member function overrides the CBasePin::SetMediaType member function. It calls the base class CBasePin::SetMediaType member function, which returns NOERROR, and then calls CTransformFilter::SetMediaType, which the derived class can override to be informed when the media type is set.


Top of Page Top of Page
© 2000 Microsoft and/or its suppliers. All rights reserved. Terms of Use.