The IAMExtTransport interface provides methods that control specific behaviors of an external VCR. These methods generally set and get the transport properties, which relate to how the VCR and the computer exchange data. Because this interface controls specific behaviors of transport, it must be implemented in combination with the IAMExtDevice interface, which controls an external device's general behaviors. If you want to control an external device other than a VCR, you have two options. Either use the methods you need and return E_NOTIMPL for the rest, or design a new interface and aggregate it with IAMExtDevice.
This interface also provides methods that enable developers to define edit events that assist in the content authoring process. Edit events are made up of individual edit properties that are grouped together into edit property sets. These edit property sets can define an actual recording sequence on the transport or a simple positional command. They can, for example, specify certain modes of editing, record the inpoints and outpoints of a recording sequence, or memorize positions called bookmarks. The SetEditPropertySet method creates or registers a group of edit properties, called an edit property set, while the SetEditProperty enables the application to define parameters and values of individual edit properties. Because these are relatively sophisticated situations, their implementation is left to the advanced developer.
For a description of a sample filter which controls a VCR through Microsoft® DirectShow®, see Vcrctrl Sample (VCR Control Filter).
Implement this interface if you want to build a filter or application that controls an external device, such as a VCR. Because this interface controls specific information about a device, you should implement it with the IAMExtDevice interface.
An application can directly instantiate and control external device control filters, such as those for VCRs, but it is strongly recommended that you always instantiate them within the context of a filter graph, even if they are the only filter within the graph.
Implementations can vary depending on the type of external device being controlled. With certain devices, methods can return E_NOTIMPL if they are not applicable.
Use this interface if you want a filter to control video and audio tape machines that are external to the computer. Typical uses for this interface include the applications that implement "batch capture" and "print to tape" of audio and video.
Applications should use the filter graph to enumerate the filters and then get the IAMExtTransport interface directly from the appropriate filter.
To control an external VCR, certain hardware requirements are recommended. VCRs with an RS-422 serial interface require a special serial port card or an external RS-232-to-RS-422 adapter. In addition, for best performance, your computer should have a serial port card built with a 16,550 high-performance UART to sustain higher baud rates, such as 38.4 baud.
Methods in Vtable Order
IUnknown methods Description QueryInterface Retrieves pointers to supported interfaces. AddRef Increments the reference count. Release Decrements the reference count. IAMExtTransport methods Description GetCapability Retrieves the general capabilities of an external transport. put_MediaState Sets the current state of the media. get_MediaState Retrieves the current state of the media. put_LocalControl Sets the state of the external device to local or remote control. get_LocalControl Retrieves the state of the external device. GetStatus Determines the status of the external transport. GetTransportBasicParameters Retrieves the external transport's basic parameter settings. SetTransportBasicParameters Sets the external transport's basic parameters. GetTransportVideoParameters Retrieves the external transport's video parameter settings. SetTransportVideoParameters Sets the video parameters for the external transport. GetTransportAudioParameters Retrieves the external transport's audio parameter settings. SetTransportAudioParameters Sets audio parameter setting for the external transport. put_Mode Sets the movement of the transport to a new mode (play, stop, record, edit, and so on). get_Mode Retrieves the mode of the transport (play, stop, record, edit, and so on). put_Rate Sets the playback rate for variable-speed external devices. get_Rate Retrieves the playback rate set in put_Rate for variable speed external devices. GetChase Retrieves the status of chase mode. SetChase Enables or disables chase mode. GetBump Retrieves status of bump mode. SetBump Temporarily changes the speed of playback for synchronization of multiple external devices. get_AntiClogControl Determines if the anti-headclog control is enabled or disabled. put_AntiClogControl Enables or disables the transport's anti-headclog control. GetEditPropertySet Retrieves the current state of an edit property set. SetEditPropertySet Registers an edit property set that describes a group of edit properties. GetEditProperty Retrieves individual parameters and values associated with a particular edit property set. SetEditProperty Defines individual parameters and values associated with a particular edit property set. get_EditStart Determines if the external transport's edit control is active. put_EditStart Activates edit control on a capable transport.
Determines if the anti-headclog control is enabled or disabled.
Syntax
HRESULT get_AntiClogControl( long *pEnabled );
Parameters
- pEnabled
- [out] Pointer to a value indicating whether anti-headclog is enabled. OATRUE indicates anti-headclog is enabled; OAFALSE indicates disabled.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
See Also
Retrieves the status of bump mode.
Syntax
HRESULT GetBump( long *pSpeed, long *pDuration );
Parameters
- pSpeed
- [out] Pointer to the temporary speed (a multiple of normal speed).
- pDuration
- [out] Pointer to the duration of a bump in current time format.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
This method returns the temporary speed and remaining duration for an active "bump".
For supported time formats, see "IAMExtTransport Basic Parms" in DXMedia\Include\Edevdefs.h.
See Also
Retrieves the general capabilities of an external transport.
Syntax
HRESULT GetCapability( long Capability, long *pValue, double *pdblValue );
Parameters
- Capability
- [in] Capability to query for. Specify one of the following:
ED_TRANSCAP_CAN_BUMP_PLAY Checks whether transport can vary speed for synchronizing. ED_TRANSCAP_CAN_DELAY_AUDIO_IN Checks whether transport does delayed-in audio edits. ED_TRANSCAP_CAN_DELAY_AUDIO_OUT Checks whether transport does delayed-out audio edits. ED_TRANSCAP_CAN_DELAY_VIDEO_IN Checks whether transport does delayed-in video edits. ED_TRANSCAP_CAN_DELAY_VIDEO_OUT Checks whether transport does delayed-out video edits. ED_TRANSCAP_CAN_EJECT Checks whether transport can eject its media. ED_TRANSCAP_CAN_PLAY_BACKWARDS Checks whether transport can play media in reverse (negative rate). ED_TRANSCAP_CAN_SET_EE Checks whether transport can show its input on its output. ED_TRANSCAP_CAN_SET_PB Checks whether transport can show media playback on its output. ED_TRANSCAP_FWD_VARIABLE_MAX Maximum forward speed (multiple of play speed) in pdblValue. ED_TRANSCAP_FWD_VARIABLE_MIN Minimum forward speed (multiple of play speed) in pdblValue. ED_TRANSCAP_REV_VARIABLE_MAX Maximum reverse speed (multiple of play speed) in pdblValue. ED_TRANSCAP_REV_VARIABLE_MIN Minimum reverse speed (multiple of play speed) in pdblValue. ED_TRANSCAP_FWD_SHUTTLE_MAX Maximum forward Shuttle mode speed (multiple of play speed) in pdblValue. ED_TRANSCAP_LTC_TRACK Track number of linear timecode (LTC) in pValue. ED_TRANSCAP_NUM_AUDIO_TRACKS Number of audio tracks in pValue. ED_TRANSCAP_FWD_SHUTTLE_MIN Minimum forward Shuttle speed (multiple of play speed) in pdblValue. ED_TRANSCAP_REV_SHUTTLE_MAX Maximum reverse Shuttle mode speed (multiple of play speed) in pdblValue. ED_TRANSCAP_REV_SHUTTLE_MIN Minimum reverse Shuttle mode speed (multiple of play speed) in pdblValue. ED_TRANSCAP_HAS_DT_OATRUE Specifies device has Dynamic Tracking. - pValue
- [out] Pointer to a value indicating whether the capability specified in Capability is supported. Returns OATRUE if it is supported or OAFALSE if not.
- pdblValue
- [out] Pointer to a value indicating the capabilities of the property specified in Capability.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
All OATRUE and OAFALSE values are returned in pValue; numerical values are returned in pValue or pdblValue. Use the pdblValue parameter to return double values if the pValue parameter is insufficient. Return NULL if one of the parameters is not needed.
Retrieves the status of chase mode.
Syntax
HRESULT GetChase( long *pEnabled, long *pOffset, HEVENT *phEvent );
Parameters
- pEnabled
- [out] Pointer to a value indicating whether chase is enabled. OATRUE specifies chase enabled; OAFALSE specifies chase disabled.
- pOffset
- [out] Pointer to an offset from the present time, indicating the offset the transport will maintain while playing.
- phEvent
- [out] Pointer to the completion notification that will signal that the chase offset is established.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
The time for pOffset is given in the current time format (see "IAMExtTransport Basic Parms" in DXMedia\Include\Edevdefs.h for supported time formats).
See Also
Retrieves the parameters and values associated with a particular edit event.
Syntax
HRESULT GetEditProperty( long EditID, long Param, long *pValue );
Parameters
- EditID
- [in] Identification number of the edit property set.
- Param
- [in] Edit event parameter to determine the value of.
- pValue
- [out] Pointer to the returned value of the parameter specified in Param: OATRUE, OAFALSE, or a specific value.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
See Also
Retrieves individual parameters and values associated with a particular edit property set.
Syntax
HRESULT GetEditPropertySet( long EditID, long *pState );
Parameters
- EditID
- [in] Identification number of the edit property set.
- pState
- [out] Pointer to the state of the edit property set. Retrieves one of the following:
DC_SET_ACTIVE Activates edit property set. DC_SET_DELETE Deletes edit property set. DC_SET_INACTIVE Deactivates edit property set. DC_SET_REGISTER Registers edit property set.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
See Also
Determines if the external transport's edit control is active.
Syntax
HRESULT get_EditStart( long *pValue );
Parameters
- pValue
- [out] Pointer to a value indicating whether edit control is active. Returns OATRUE if edit control is active; OAFALSE if inactive.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
See Also
Retrieves the state of the external device.
Syntax
HRESULT get_LocalControl( long *pState );
Parameters
- pState
- [out] Pointer to a value indicating local or remote control. Returns OATRUE for local control or OAFALSE for remote.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
To control an external device, it must be in remote mode.
See Also
Retrieves the current state of the media set in put_MediaState.
Syntax
HRESULT get_MediaState( long *pState );
Parameters
- pState
- [out] Pointer to a returned value indicating the current state of the media. Values will be device specific but can include the following:
ED_MEDIA_SPIN_DOWN Stopped spinning (for disk media); unthreaded (for tape media). ED_MEDIA_SPIN_UP Started spinning but not at full speed (for disk media); threading the tape (for tape media). ED_MEDIA_UNLOAD Media is ejected from the drive (if device supports it).
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Retrieves the mode of the transport (play, stop, record, edit, and so on).
Syntax
HRESULT get_Mode( long *pMode );
Parameters
- pMode
- [out] Pointer to the current transport mode (see IAMExtTransport::put_Mode for possible modes).
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Retrieves the playback rate for variable-speed external devices.
Syntax
HRESULT get_Rate( double *pdblRate );
Parameters
- pdblRate
- [out] Pointer to the playback rate set in IAMExtTransport::put_Rate.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Returns the extended information about the external transport's status.
Syntax
HRESULT GetStatus( long StatusItem, long *pValue );
Parameters
- StatusItem
- [in] Item you want to determine the status of; can include one of the following:
ED_MODE_EDIT_CUE Checks if device is cueing for an active edit event. ED_MODE_FF Checks if device is fast forwarding. ED_MODE_FREEZE Checks if device is paused in the Play mode. ED_MODE_LINK_OFF Checks if transport control isn't linked to filter graph's run, stop, and pause controls. ED_MODE_LINK_ON Checks if transport control is linked to filter graph's run, stop, pause controls. ED_MODE_PLAY Checks if device is playing. ED_MODE_RECORD Checks if device is recording. ED_MODE_RECORD_STROBE Checks if device is recording single-frame. ED_MODE_RECORD_FREEZE Checks if device is paused in the Record Mode. ED_MODE_REW Checks if device is rewinding. ED_MODE_SHUTTLE Checks if device is shuttling (high-speed movement with visible picture). Use IAMExtTransport::get_Rate to determine actual transport speed. ED_MODE_STEP_FWD or ED_MODE_STEP Checks if device is single-stepping (searching one frame at a time) in a forward direction. ED_MODE_STOP Checks if device is stopped. - pValue
- [out] Pointer to a value indicating whether the item in StatusItem is active. Returns OATRUE if StatusItem is active or OAFALSE if not.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
When implementing this interface, be aware that transport StatusItem parameters are more extensive than most DirectShow interfaces and code should reflect this variety and check the transport status of appropriate parameters.
Retrieves audio parameter setting for external transport.
Syntax
HRESULT GetTransportAudioParameters( long Param, long *pValue );
Parameters
- Param
- [in] Audio parameter whose value you want to get. Specify one of the following:
ED_TRANSAUDIO_ENABLE_OUTPUT Audio output channel(s) ED_TRANSAUDIO_ENABLE_RECORD Audio recording channel(s) ED_TRANSAUDIO_ENABLE_SELSYNC Audio selsync recording channel(s) ED_TRANSAUDIO_SET_MONITOR Monitor output audio channel(s) ED_TRANSAUDIO_SET_SOURCE Audio source channel(s) - pValue
- [out] Pointer to the channel or channels set in the IAMExtTransport::SetTransportAudioParameters method.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Retrieves the transport's basic parameter settings.
Syntax
HRESULT GetTransportBasicParameters(
long Param,
long *pValue,
LPOLESTR *ppszData );
Parameters
- Param
- [in] Parameter you want to receive the setting for (for possible parameters, see Edevdefs.h under "IAMExtTransport Basic Parms").
- pValue
- [out] Pointer to the setting of the parameter if it is numeric.
- ppszData
- [out] Address of a pointer to the setting of the parameter if it is a string.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
See Also
Retrieves video parameter settings for external transport.
Syntax
HRESULT GetTransportVideoParameters( long Param, long *pValue );
Parameters
- Param
- [in] Video parameter you want to receive the settings for. Can be either ED_TRANSVIDEO_SET_OUTPUT (video transport output parameters) or ED_TRANSVIDEO_SET_SOURCE (video transport input source).
- pValue
- [out] Pointer to a variable that will receive the video parameters. If Param is set to ED_TRANSVIDEO_SET_SOURCE, pValue will receive the active video input. If Param is set to ED_TRANSVIDEO_SET_OUTPUT, pValue will receive one of the following values:
ED_E2E Input video is visible on device's output regardless of transport mode. ED_OFF Video output is disabled. ED_PLAYBACK Video playing from media is displayed on the screen.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
See Also
Enables or disables transport anti-headclog control.
Syntax
HRESULT put_AntiClogControl( long Enable );
Parameters
- Enable
- [in] Value indicating whether to enable anti-headclog control; set OATRUE to enable, OAFALSE to disable.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
Use this method to unclog video heads on VCRs that have an automatic head-cleaning feature.
See Also
Activates the edit control on a capable transport.
Syntax
HRESULT put_EditStart( long Value );
Parameters
- Value
- [in] Value indicating whether to active the edit control. OATRUE activates the edit control; OAFALSE deactivates it.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
Use this method to manually enable edit control. Edit control is defined as the precise enabling of individual, or a set of, record tracks on a VCR; for example, a video-only insert edit, where only the video record head is enabled and a new video signal is recordedthe audio signal is left as is. Use this method to control "on the fly" editing on machines that have this feature.
See Also
Sets the state of the external device to local or remote control.
Syntax
HRESULT put_LocalControl( long State );
Parameters
- State
- [in] Current state; pass OATRUE for local, OAFALSE for remote.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
See Also
Sets the current state of the media.
Syntax
HRESULT put_MediaState( long State );
Parameters
- State
- [in] Value specifying the state. Use one of the following:
ED_MEDIA_SPIN_DOWN Stop spinning (for disc media); unthread the tape (for tape media). ED_MEDIA_SPIN_UP Start spinning (for disc media); thread the tape (for tape media). ED_MEDIA_UNLOAD Eject the media from the drive (if device supports it).
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
Use the preceding parameters for disk and tape media. For other devices, you might need to specify new parameters.
See Also
Sets the movement of the transport to a new mode (play, stop, record, edit, and so on).
Syntax
HRESULT put_Mode( long Mode );
Parameters
- Mode
- [in] Transport mode. Specify one of the following:
ED_MODE_PLAY Play ED_MODE_STOP Stop ED_MODE_FREEZE Freeze (pause) ED_MODE_THAW Resume ED_MODE_FF Fast forward ED_MODE_REW Rewind ED_MODE_RECORD Record ED_MODE_RECORD_STROBE Record single frame ED_MODE_STEP_FWD Single step forward ED_MODE_STEP_REV Single step backward ED_MODE_SHUTTLE Shuttle (high-speed movement with visible picture). Use with IAMExtTransport::put_Rate to set the transport speed. ED_MODE_EDIT_CUE Position transport to cue point for an active edit event ED_MODE_LINK_ON Link this method to the graph's IMediaControl::Run, Stop, and Pause methods ED_MODE_LINK_OFF Disengage this method from the graph's IMediaControl::Run, Stop, Pause methods.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
See Also
Sets the playback rate for variable-speed external devices.
Syntax
HRESULT put_Rate( double dblRate );
Parameters
- dblRate
- [in] Multiple of play speed where .5=half, 1=normal, 2=double, 3=triple, and so forth.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
This method enables an application to speed up or slow down playback relative to the normal default playback speed. A rate of 1.0 indicates normal playback speed. Specifying 2.0 causes playback at twice the normal rate.
You can also link this method to the IMediaPosition::put_Rate method as an alternate means of setting rates of playback relative to normal speed.
See Also
Temporarily changes the speed of playback for synchronization of multiple external devices.
Syntax
HRESULT SetBump( long Speed, long Duration );
Parameters
- Speed
- [in] Temporary speed (a multiple of normal speed).
- Duration
- [in] Duration of a bump in current time format.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
This method will cause a temporary speed variation of transport used during the physical synchronization process. This method will stay in effect until Duration time has expired.
For supported time formats, see "IAMExtTransport Basic Parms" in DXMedia\Include\Edevdefs.h.
See Also
Enables or disables chase mode.
Syntax
HRESULT SetChase( long Enable, long Offset, HEVENT hEvent );
Parameters
- Enable
- [in] Value specifying whether chase is enabled. Specify OATRUE to enable chase; OAFALSE to disable.
- Offset
- [in] Offset from the time reference that the transport will maintain. Specify in current time format.
- hEvent
- [in] Event to signal offset established.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
Use the SetChase method when you want an external transport to continuously follow a timecode signal with a fixed offset. For example, if your computer is generating timecode, it can tell a VCR capable of chasing to put itself in play mode and keep its media a fixed offset from the reference timecode. You determine the offset by comparing the timecode on the playback media to the reference (generated) timecode.
This method will stay in effect until canceled or complete and requires the filter to verify (by periodically reading the transport's timecode) that the transport is indeed maintaining the fixed offset.
Time for Offset is specified in current time format (for supported time formats, see "IAMExtTransport Basic Parms" in DXMedia\Include\Edevdefs.h).
See Also
Defines individual parameters and values associated with a particular edit property set.
Syntax
HRESULT SetEditProperty( long EditID, long Param, long Value );
Parameters
- EditID
- [in] Identification number of the edit property set.
- Param
- [in] Edit event parameter to define.
- Value
- [in] Value of the parameter specified in Param. Use OATRUE, OAFALSE, or a specific value.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
Edit events can either refer to a group of predefined properties that define an actual recording sequence, or they can refer to simple positional commands. They can, for example, specify certain modes of editing, record inpoints and outpoints, or memorize positions called bookmarks. The SetEditPropertySet method defines and registers a group of edit events, called an edit property set, while the SetEditProperty method enables the user to define parameters and values of individual edit events.
To define a set of edit properties, first register an edit property set and get an EditID with the SetEditPropertySet method. Then use the SetEditProperty method to define specific parameters and values of individual edit properties. Finally, use the SetEditPropertySet method to activate the edit property set.
For a complete listing of possible parameters and values for edit property sets, see Edevdefs.h in the Microsoft® DirectX® Media SDK DXMedia\Include folder.
See Also
Registers an edit property set that describes a group of edit properties.
Syntax
HRESULT SetEditPropertySet( long *pEditID, long State );
Parameters
- pEditID
- [in, out] Pointer to the identification number of the edit property set.
- State
- [in] State of the edit property set. Specify one of the following:
DC_SET_ACTIVE Activates edit property set. DC_SET_DELETE Deletes edit property set. DC_SET_INACTIVE Inactivates edit property set. DC_SET_REGISTER Registers edit property set.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
Edit events refer to a group of predefined properties that define an actual recording sequence on the transport or a simple positional command. They can, for example, specify certain modes of editing, record inpoints and outpoints, or memorize positions called bookmarks. The SetEditPropertySet method defines and registers a group of edit properties, called an edit property set, while the SetEditProperty enables the user to define parameters and values of individual edit event properties.
To define a set of edit properties, first register an edit property set and get an EditID with the SetEditPropertySet method. The implementation of this method handles memory allocation for the property set. Then use the SetEditProperty method to define specific parameters and values of individual edit properties. Finally, use the SetEditPropertySet method to activate the edit property set.
For example, you would configure an insert edit on all tracks as shown in the following code.
SetEditPropertySet( pEditID, // Register an edit property set ID (causes ED_REGISTER ); // memory to be allocated) SetEditProperty( EditID, // Identify the property set ED_EDIT_MODE // Set the edit mode ED_EDIT_MODE_INSERT); SetEditProperty( EditID, ED_EDIT_TRACK, // Set the particulars about the event ED_VIDEO | ED_AUDIO_ALL); SetEditProperty( EditID, ED_REHEARSE_MODE, ED_EDIT_PERFORM); // then set the record and source times and so on.. SetEditPropertySet( pEditID, // and activate it ED_ACTIVE); SetEditProperty( EditID, // Cue up the machine ED_EDIT_SEEK, OATRUE ); // and start the graphTo do an immediate edit (editing "on the fly"), use the ED_EDIT_IMMEDIATE edit property.
You can also use the edit property set mechanism to do timecode searches. To do this, set the following properties.
- ED_EDIT_SRC_INPOINT to the target timecode value
- ED_EDIT_SEEK_MODE to ED_EDIT_SEEK_EDIT_IN
- ED_EDIT_SEEK to OATRUEthis initiates the search operation
VCR control filters can support one of several modes of editing and synchronization control:
- Single machine master: this is the most common configuration for nonlinear editors. A single VCR is used for capture of source material as well as for recording the final product. The VCR's timecode is used as a master clock reference for the filter graph. This mode has the least demanding mechanical synchronization requirements for the VCR, because the digital playback engine is easier to slave than an external, mechanical device.
- Single machine slave: A single VCR is used for capture and playback. The VCR is a slave to the filter graph's reference clock.
- Multiple machines with one as the master: this is a common configuration for linear and hybrid editors. It requires synchronizing the filter graph's clock to the master (record) VCR, and then synchronizing the slave (playback) VCR to the filter graph's clock.
- Multiple machines, all slaves: this is also common for linear and hybrid editors, and all VCRs synchronize to the filter graph's clock.
Determine master/slave mode for a particular device by testing the ED_TRANSCAP_IS_MASTER item with the IAMExtTransport::GetCapability method.
It is relatively straightforward to assign filter graph playback as a slave to a master VCR by using SMPTE timecode. The TIMECODE_SAMPLE returned from the IAMTimecodeReader::GetTimecode method contains a reference clock time stamp that reflects the time relationship between the VCR's frame position and the filter graph's clock. You can use this offset to trigger digital capture of playback with the stream control interfaces.
Assigning a VCR as a slave to the filter graph's clock requires sending a target time offset to the VCR control filter. In the simplest case, you can do this by implementing the IAMExtTransport::SetChase method. For single or multiple event edit support, use the ED_EDIT_OFFSET property of the edit property set.
For a complete listing of possible parameters and values for edit property sets, see Edevdefs.h in the DirectX Media SDK DXMedia\Include folder.
See Also
Sets audio parameter setting for external transport.
Syntax
HRESULT SetTransportAudioParameters( long Param, long Value );
Parameters
- Param
- [in] Audio parameter you want to set. Specify one of the following.
ED_TRANSAUDIO_ENABLE_OUTPUT Enable audio channel(s) for output. ED_TRANSAUDIO_ENABLE_RECORD Enable audio channel(s) for recording. ED_TRANSAUDIO_ENABLE_SELSYNC Enable audio channel(s) for selsync recording. ED_TRANSAUDIO_SET_MONITOR Set the monitor output source. ED_TRANSAUDIO_SET_SOURCE Set the active audio input. - Value
- [in] Audio channel or channels to set the parameter on.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
Specify an exact channel or channels in Value by selecting ED_AUDIO_1 through ED_AUDIO_24 (use an or switch to combine), or all channels by selecting ED_AUDIO_ALL.
See Also
Sets basic parameters of external transport.
Syntax
HRESULT SetTransportBasicParameters( long Param, long Value, LPCOLESTR pszData );
Parameters
- Param
- [in] Parameter you want to set (see Edevdefs.h for possible parameters under "IAMExtTransport Basic Parms").
- Value
- [in] Setting of the parameter if it is numeric.
- pszData
- [in] Pointer to the setting of the parameter if it is a string.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
Basic settings include time formats, record formats, preroll setting, servo setting, and others (see Edevdefs.h).
See Also
Sets video parameters for external transport.
Syntax
HRESULT SetTransportVideoParameters( long Param, long Value );
Parameters
- Param
- [in] Video parameter you want to set. Specify either ED_TRANSVIDEO_SET_OUTPUT (video transport output parameters) or ED_TRANSVIDEO_SET_SOURCE (video transport physical input).
- Value
- [in] Set the ED_TRANSVIDEO_SET_SOURCE flag to set the active video input, or set the ED_TRANSVIDEO_SET_OUTPUT flag to one of the following values.
ED_E2E Input video is visible on device's output regardless of transport mode. ED_OFF Video output is disabled. ED_PLAYBACK Video playing from media is displayed on the screen.
Return Value
Returns an HRESULT value that depends on the implementation of the interface.
Remarks
For the ED_TRANSVIDEO_SET_SOURCE flag, an external device filter uses physical pins to describe its inputs. Calls to the filter's pin enumerator will return an index value. The value is passed to this method as its as its Value parameter.
See Also
Top of Page
© 2000 Microsoft and/or its suppliers. All rights reserved. Terms of Use.