Microsoft DirectX 8.0

IAMTimelineTransable Interface

Adds transitions to an object in Microsoft® DirectShow® Editing Services (DES). This interface is exposed by any object that can have transitions applied to it, including tracks, compositions, and groups. An object that implements this interface can have any number of transitions, but the transitions must not overlap in time.

Note  Audio does not support transitions. Objects within audio groups can expose the IAMTimelineTransable interface, but the application should not add transitions to them.

Requirements

Requires Qedit.h.

Methods in Vtable Order

IUnknown methodsDescription
QueryInterfaceRetrieves pointers to supported interfaces.
AddRefIncrements the reference count.
ReleaseDecrements the reference count.
IAMTimelineTransable MethodDescription
TransAddAdds a transition to the object.
TransGetCountRetrieves the number of transitions on this object.
GetNextTransRetrieves the first transition that appears at the specified time or later.
GetNextTrans2Equivalent to GetNextTrans, but takes REFTIME values.
GetTransAtTimeRetrieves the transition nearest to the specified time, according to the specified boundary conditions.
GetTransAtTime2Equivalent to GetTransAtTime, but takes a REFTIME value.

IAMTimelineTransable::GetNextTrans

IAMTimelineTransable Interface

Retrieves the first transition that appears at the specified time or later.

Syntax

HRESULT GetNextTrans(
    IAMTimelineObj **ppTrans,
    REFERENCE_TIME *pInOut
);

Parameters

ppTrans
[out] Address of a pointer to receive the transition object's IAMTimelineObj interface.
pInOut
Pointer to a variable that specifies the time in 100-nanosecond units. On input, this value specifies the time from which to find the transition. On output, if a transition is retrieved, this value is set to the stop time of the transition.

Return Value

Returns S_OK if the method retrieves a transition, or S_FALSE if it does not find a transition. Otherwise, returns an HRESULT value indicating the cause of the failure.

Remarks

The start time of the transition might be less than the time that you specify in pInOut, if the transition spans the specified time.

If the method returns S_OK, the IAMTimelineObj interface that it returns has an outstanding reference count. Be sure to release the interface when you are finished using it.

IAMTimelineTransable::GetNextTrans2

IAMTimelineTransable Interface

Retrieves the first transition that appears at the specified time or later. This method is equivalent to GetNextTrans, but takes a REFTIME value.

Syntax

HRESULT GetNextTrans2(
    IAMTimelineObj **ppTrans,
    REFTIME *pInOut
);

Parameters

ppTrans
[out] Address of a pointer to receive the transition object's IAMTimelineObj interface.
pInOut
Pointer to a variable that specifies the time in seconds. On input, this value specifies the time from which to find the transition. On output, if a transition is retrieved, this value is set to the stop time of the transition.

Return Value

Returns S_OK if the method retrieves a transition, or S_FALSE if it does not find a transition. Otherwise, returns an HRESULT value indicating the cause of the failure.

IAMTimelineTransable::GetTransAtTime

IAMTimelineTransable Interface

Retrieves the transition nearest to the specified time, according to the specified boundary conditions.

Syntax

HRESULT GetTransAtTime(
    IAMTimelineObj **ppObj, 
    REFERENCE_TIME Time, 
    long SearchDirection
);

Parameters

ppObj
[out] Address of a pointer to receive the transition's IAMTimelineObj interface.
Time
Time from which to begin the search, in 100-nanosecond units.
SearchDirection
Member of the DEXTERF_TRACK_SEARCH_FLAGS enumerated type that specifies the boundary conditions for the search.

Return Value

Returns one of the following HRESULT values:

S_FALSENo transition was found.
S_OKTransition was found.
E_INVALIDARGInvalid argument.
E_POINTERNULL pointer argument.

Remarks

If the method returns S_OK, the IAMTimelineObj interface that it returns has an outstanding reference count. Be sure to release the interface when you are finished using it.

IAMTimelineTransable::GetTransAtTime2

IAMTimelineTransable Interface

Retrieves the transition nearest to the specified time, according to the specified boundary conditions. This method is equivalent to GetTransAtTime, but takes a REFTIME parameter.

Syntax

HRESULT GetTransAtTime2(
    IAMTimelineObj **ppObj, 
    REFTIME Time, 
    long SearchDirection
);

Parameters

ppObj
[out] Address of a pointer to receive the transition's IAMTimelineObj interface.
Time
Time from which to begin the search, in seconds.
SearchDirection
Member of the DEXTERF_TRACK_SEARCH_FLAGS enumerated type that specifies the boundary conditions for the search.

Return Value

Returns one of the following HRESULT values:

S_FALSENo transition was found.
S_OKTransition was found.
E_INVALIDARGInvalid argument.
E_POINTERNULL pointer argument.

IAMTimelineTransable::TransAdd

IAMTimelineTransable Interface

Adds a transition to the object. An object can have multiple transitions, but they must not overlap in time. Transitions must fall within the time boundaries of the object.

Syntax

HRESULT TransAdd(
    IAMTimelineObj *pTrans
);

Parameters

pTrans
Address of the IAMTimelineObj interface of the transition to add.

Return Value

Returns one of the following HRESULT values:

S_OKSuccess.
E_INVALIDARGCannot insert the transition.
E_NOINTERFACEpTrans is not a pointer to a transition.

Remarks

If the transition overlaps an existing transition, the method returns E_INVALIDARG.

IAMTimelineTransable::TransGetCount

IAMTimelineTransable Interface

Retrieves the number of transitions on this object.

Syntax

HRESULT TransGetCount(
    long *pCount
);

Parameters

pCount
Pointer to a variable that receives the number of transitions.

Return Value

Returns S_OK if successful or E_POINTER otherwise.