Microsoft DirectX 8.0 |
IAMExtTransport インターフェイスは、外部 VCR の特定の動作を制御するメソッドを備えている。このメソッドでは、通常、VCR とコンピュータとの間のデータ変換の方法を決定する、転送プロパティを設定および取得する。このインターフェイスは、トランスポートの特定の動作を制御するものなので、外部デバイスの全般的な動作を制御する IAMExtDevice インターフェイスと組み合わせて実装する必要がある。VCR 以外の外部デバイスを制御するには、2 通りの方法がある。1 つは、必要なメソッドを使用し、残りに対しては E_NOTIMPL を返す方法である。もう 1 つは、新しいインターフェイスを設計し、IAMExtDevice を集成する方法である。
このインターフェイスは、開発者が編集イベントを定義するためのメソッドも備えている。編集イベントはコンテンツのオーサリング処理を促進するもので、編集プロパティ セットにグループ化される個別の編集プロパティで構成される。編集プロパティ セットでは、トランスポート上での実際の記録シーケンスや、単純な位置指定コマンドを定義できる。たとえば、編集の特定のモードの指定、記録シーケンスの イン点と アウト点の記録、またはブックマークと呼ばれる位置の記憶などを行うことができる。SetEditPropertySet メソッドは、編集プロパティ セットと呼ばれる編集プロパティのグループを作成または登録するものである。一方 SetEditProperty によって、各編集プロパティのパラメータと値をアプリケーションで定義できる。これは比較的高度な技術を要するので、実装は上級開発者が担当する。
VCR などの外部デバイスを制御するフィルタまたはアプリケーションを作成する場合は、このインターフェイスを実装する。このインターフェイスはデバイスの特定の情報を制御するものなので、IAMExtDevice インターフェイスと共に実装する必要がある。
アプリケーションでは、VCR などを対象とする、外部デバイス制御フィルタを直接インスタンス化および制御できる。しかし、これらがグラフ内の唯一のフィルタであっても、常にフィルタ グラフのコンテキストの中でインスタンス化することが強く推奨される。
実装は、制御される外部デバイスの種類によってそれぞれ異なる。デバイスによっては、メソッドを適用できない場合に E_NOTIMPL が返される。
このインターフェイスは、コンピュータに接続されているビデオ テープ マシンとオーディオ テープ マシンをフィルタで制御する場合に使用する。このインターフェイスは、オーディオとビデオの "バッチ キャプチャ" と "テープ出力" を実装するアプリケーションでも一般的に使用される。
アプリケーションは、フィルタ グラフを使用してフィルタを列挙し、適切なフィルタから IAMExtTransport インターフェイスを直接取得する。
外部 VCR を制御するには、特定のハードウェアの要件が推奨される。RS-422 シリアル インターフェイスを持つ VCR の場合は、特別なシリアル ポート カードまたは外付けの RS-232 対 RS-422 アダプタが必要である。さらに、最適なパフォーマンスを得るには、16550 高性能 UART (Universal Asynchronous Receiver/Transmitter) が組み込まれたシリアル ポート カードをコンピュータが装着し、38.4 ボーなどの高速なボーレートを実現する必要がある。
vtable 順のメソッド
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IAMExtTransport メソッド 説明 GetCapability 外部トランスポートの全般機能を取得する。 put_MediaState メディアの現在の状態を設定する。 get_MediaState メディアの現在の状態を取得する。 put_LocalControl 外部デバイスの状態をローカル制御またはリモート制御に設定する。 get_LocalControl 外部デバイスの状態を取得する。 GetStatus 外部トランスポートの状態を判別する。 GetTransportBasicParameters 外部トランスポートの基本パラメータの設定値を取得する。 SetTransportBasicParameters 外部トランスポートの基本パラメータを設定する。 GetTransportVideoParameters 外部トランスポートのビデオ パラメータの設定値を取得する。 SetTransportVideoParameters 外部トランスポートのビデオ パラメータを設定する。 GetTransportAudioParameters 外部トランスポートのオーディオ パラメータの設定値を取得する。 SetTransportAudioParameters 外部トランスポートのオーディオ パラメータを設定する。 put_Mode 新しいトランスポート モード (再生、停止、記録、編集など) への移行を設定する。 get_Mode トランスポートのモード (再生、停止、記録、編集など) を取得する。 put_Rate 速度変更が可能な外部デバイスの再生速度を設定する。 get_Rate 速度変更が可能な外部デバイスの put_Rate で設定された再生速度を取得する。 GetChase チェース モードの状態を取得する。 SetChase チェース モードを有効または無効にする。 GetBump バンプ モードの状態を取得する。 SetBump 複数の外部デバイスの同期をとるために再生速度を変更する。 get_AntiClogControl ヘッド詰まり防止コントロールが有効かどうかを判別する。 put_AntiClogControl トランスポートのヘッド詰まり防止コントロールを有効または無効にする。 GetEditPropertySet 編集プロパティ セットの現在の状態を取得する。 SetEditPropertySet 編集プロパティのグループを形成する編集プロパティを登録する。 GetEditProperty 特定の編集プロパティ セットに関連付けられている個別のパラメータと値を取得する。 SetEditProperty 特定の編集プロパティ セットに関連付けられている個別のパラメータと値を定義する。 get_EditStart 外部トランスポートの編集コントロールがアクティブかどうかを判別する。 put_EditStart トランスポートのエディット コントロールをアクティブにする (可能な場合)。
ヘッド詰まり防止コントロールが有効かどうかを判別する。
構文
HRESULT get_AntiClogControl( long *pEnabled );
パラメータ
- pEnabled
- [out] ヘッド詰まり防止が有効かどうかを示す値へのポインタ。OATRUE はヘッド詰まり防止が有効であることを表し、OAFALSE は無効であることを表す。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
参照
バンプ モードの状態を取得する。
構文
HRESULT GetBump( long *pSpeed, long *pDuration );
パラメータ
- pSpeed
- [out] 一時速度 (標準速度の倍数) へのポインタ。
- pDuration
- [out] 現在のタイム フォーマットで表されるバンプ時間幅へのポインタ。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
このメソッドは、アクティブな "バンプ" の一時速度と残りの時間幅を返す。
サポートされるタイム フォーマットについては、(SDK ルート)\Include\Edevdefs.h の中の "IAMExtTransport Basic Parms" を参照すること。
参照
外部トランスポートの全般機能を取得する。
構文
HRESULT GetCapability( long Capability, long *pValue, double *pdblValue );
パラメータ
- Capability
- [in] 照会する機能。次のいずれかを指定する。
ED_TRANSCAP_CAN_BUMP_PLAY トランスポートで、同期をとるために速度を変更できるかどうかを確認する。 ED_TRANSCAP_CAN_DELAY_AUDIO_IN トランスポートで、ディレイ イン オーディオ編集を行うかどうかを確認する。 ED_TRANSCAP_CAN_DELAY_AUDIO_OUT トランスポートで、ディレイ アウト オーディオ編集を行うかどうかを確認する。 ED_TRANSCAP_CAN_DELAY_VIDEO_IN トランスポートで、ディレイ イン ビデオ編集を行うかどうかを確認する。 ED_TRANSCAP_CAN_DELAY_VIDEO_OUT トランスポートで、ディレイ アウト ビデオ編集を行うかどうかを確認する。 ED_TRANSCAP_CAN_EJECT トランスポートで、メディアをイジェクトできるかどうかを確認する。 ED_TRANSCAP_CAN_PLAY_BACKWARDS トランスポートで、メディアをリバース再生 (負のレート) できるかどうかを確認する。 ED_TRANSCAP_CAN_SET_EE トランスポートで、入力映像を出力で表示できるかどうかを確認する。 ED_TRANSCAP_CAN_SET_PB トランスポートで、メディア再生映像を出力で表示できるかどうかを確認する。 ED_TRANSCAP_FWD_VARIABLE_MAX 最高フォワード速度 (再生速度の倍数) を pdblValue で返す。 ED_TRANSCAP_FWD_VARIABLE_MIN 最低フォワード速度 (再生速度の倍数) を pdblValue で返す。 ED_TRANSCAP_REV_VARIABLE_MAX 最高リバース速度 (再生速度の倍数) を pdblValue で返す。 ED_TRANSCAP_REV_VARIABLE_MIN 最低リバース速度 (再生速度の倍数) を pdblValue で返す。 ED_TRANSCAP_FWD_SHUTTLE_MAX 最高フォワード シャトル モード速度 (再生速度の倍数) を pdblValue で返す。 ED_TRANSCAP_LTC_TRACK リニア タイムコード (LTC) のトラック番号を pValue で返す。 ED_TRANSCAP_NUM_AUDIO_TRACKS オーディオ トラック数を pValue で返す。 ED_TRANSCAP_FWD_SHUTTLE_MIN 最低フォワード シャトル モード速度 (再生速度の倍数) を pdblValue で返す。 ED_TRANSCAP_REV_SHUTTLE_MAX 最高リバース シャトル モード速度 (再生速度の倍数) を pdblValue で返す。 ED_TRANSCAP_REV_SHUTTLE_MIN 最低リバース シャトル モード速度 (再生速度の倍数) を pdblValue で返す。 ED_TRANSCAP_HAS_DT_OATRUE デバイスがダイナミック トラッキングを備えていることを指定する。 - pValue
- [out] Capability で指定される機能がサポートされるかどうかを示す値へのポインタ。サポートされる場合は OATRUE を返し、サポートされない場合は OAFALSE を返す。
- pdblValue
- [out] Capability で指定されるプロパティの機能を示す値へのポインタ。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
すべての OATRUE 値と OAFALSE 値は pValue に返される。数値は pValue または pdblValue に返される。pValue パラメータでは足りない double 型の値を返す場合、pdblValue パラメータが使用される。いずれかのパラメータが不要な場合は NULL を返す。
チェース モードの状態を取得する。
構文
HRESULT GetChase( long *pEnabled, long *pOffset, HEVENT *phEvent );
パラメータ
- pEnabled
- [out] チェースが有効かどうかを示す値へのポインタ。OATRUE はチェースが有効であることを表し、OAFALSE はチェースが無効であることを表す。
- pOffset
- [out] 現時点からのオフセットへのポインタ。これは、トランスポートが再生の間保持するオフセットを表す。
- phEvent
- [out] チェース オフセットが設定されていることを伝える完了通知へのポインタ。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
pOffset の時間は、現在のタイム フォーマットで与えられる。サポートされるタイム フォーマットについては、(SDK ルート)\Include\Edevdefs.h の中の "IAMExtTransport Basic Parms" を参照すること。
参照
特定の編集イベントに関連付けられているパラメータと値を取得する。
構文
HRESULT GetEditProperty( long EditID, long Param, long *pValue );
パラメータ
- EditID
- [in] 編集プロパティ セットの ID 番号。
- Param
- [in] 値を調べる元となる編集イベント パラメータ。
- pValue
- [out] Param で指定されるパラメータの戻り値へのポインタ。OATRUE、OAFALSE、または固有の値が返される。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
参照
特定の編集プロパティ セットに関連付けられている個別のパラメータと値を取得する。
構文
HRESULT GetEditPropertySet( long EditID, long *pState );
パラメータ
- EditID
- [in] 編集プロパティ セットの ID 番号。
- pState
- [out] 編集プロパティ セットの状態へのポインタ。次のいずれかを取得する。
DC_SET_ACTIVE 編集プロパティ セットをアクティブにする。 DC_SET_DELETE 編集プロパティ セットを削除する。 DC_SET_INACTIVE 編集プロパティ セットを非アクティブにする。 DC_SET_REGISTER 編集プロパティ セットを登録する。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
参照
外部トランスポートのエディット コントロールがアクティブかどうかを判別する。
構文
HRESULT get_EditStart( long *pValue );
パラメータ
- pValue
- [out] エディット コントロールがアクティブかどうかを示す値へのポインタ。OATRUE はエディット コントロールがアクティブであることを表し、OAFALSE はアクティブでないことを表す。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
参照
外部デバイスの状態を取得する。
構文
HRESULT get_LocalControl( long *pState );
パラメータ
- pState
- [out] ローカル制御またはリモート制御を示す値へのポインタ。OATRUE はローカル制御を表し、OAFALSE はリモート制御を表す。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
外部デバイスを制御するには、リモート モードでなければならない。
参照
put_MediaState で設定されるメディアの現在の状態を取得する。
構文
HRESULT get_MediaState( long *pState );
パラメータ
- pState
- [out] メディアの現在の状態を示す戻り値へのポインタ。値はデバイスによって異なるが、次の値が含まれる。
ED_MEDIA_SPIN_DOWN スピンが停止している (ディスク メディアの場合)。アンスレッドしている (テープ メディアの場合)。 ED_MEDIA_SPIN_UP スピンが開始したがフル スピードではない (ディスク メディアの場合)。テープのスレッドが開始している (テープ メディアの場合)。 ED_MEDIA_UNLOAD メディアがドライブからイジェクトされている (デバイスがイジェクト機能をサポートしている場合)。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
トランスポートのモード (再生、停止、記録、編集など) を取得する。
構文
HRESULT get_Mode( long *pMode );
パラメータ
- pMode
- [out] 現在のトランスポート モードへのポインタ。有効なモードについては、「IAMExtTransport::put_Mode」を参照すること。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
速度変更が可能な外部デバイスの再生速度を取得する。
構文
HRESULT get_Rate( double *pdblRate );
パラメータ
- pdblRate
- [out] IAMExtTransport::put_Rate で設定される再生速度へのポインタ。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
外部トランスポートの状態に関する詳細情報を返す。
構文
HRESULT GetStatus( long StatusItem, long *pValue );
パラメータ
- StatusItem
- [in] 状態を調べる元となる項目。次のいずれかを指定できる。
ED_MODE_EDIT_CUE デバイスがアクティブな編集イベントまで頭出ししているかどうかを確認する。 ED_MODE_FF デバイスが早送りしているかどうかを確認する。 ED_MODE_FREEZE デバイスが再生モードでポーズしているかどうかを確認する。 ED_MODE_LINK_OFF トランスポート コントロールが、フィルタ グラフの実行、停止、またはポーズの制御にリンクしていないかどうかを確認する。 ED_MODE_LINK_ON トランスポート コントロールが、フィルタ グラフの実行、停止、またはポーズの制御にリンクしているかどうかを確認する。 ED_MODE_PLAY デバイスが再生中であるかどうかを確認する。 ED_MODE_RECORD デバイスが記録中であるかどうかを確認する。 ED_MODE_RECORD_STROBE デバイスがシングル フレーム記録中であるかどうかを確認する。 ED_MODE_RECORD_FREEZE デバイスが記録モードでポーズしているかどうかを確認する。 ED_MODE_REW デバイスが巻き戻し中であるかどうかを確認する。 ED_MODE_SHUTTLE デバイスがシャトル (高速再生) 中かどうかを確認する。実際のトランスポート速度を判別するには IAMExtTransport::get_Rate を使用する。 ED_MODE_STEP_FWD または ED_MODE_STEP デバイスが順方向にシングル ステップ処理 (一度に 1 つのフレームを検索) しているかどうかを確認する。 ED_MODE_STOP デバイスが停止しているかどうかを確認する。 - pValue
- [out] StatusItem 内の項目がアクティブかどうかを示す値へのポインタ。OATRUE は StatusItem がアクティブであることを表し、OAFALSE はアクティブでないことを表す。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
このインターフェイスを実装する場合、その StatusItem パラメータは大半の DirectShow インターフェイスよりも拡張的であり、コードでその多様性に対処し、該当するパラメータの転送状態を確認する必要があるので注意すること。
外部トランスポートのオーディオ パラメータ設定を取得する。
構文
HRESULT GetTransportAudioParameters( long Param, long *pValue );
パラメータ
- Param
- [in] 値を取得する元となるオーディオ パラメータ。次のいずれかを指定する。
ED_TRANSAUDIO_ENABLE_OUTPUT オーディオ出力チャンネル ED_TRANSAUDIO_ENABLE_RECORD オーディオ録音チャンネル ED_TRANSAUDIO_ENABLE_SELSYNC オーディオ selsync 録音チャンネル ED_TRANSAUDIO_SET_MONITOR モニタ出力オーディオ チャンネル ED_TRANSAUDIO_SET_SOURCE オーディオ ソース チャンネル - pValue
- [out] IAMExtTransport::SetTransportAudioParameters メソッドで設定されるチャンネルへのポインタ。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
トランスポートの基本パラメータの設定値を取得する。
構文
HRESULT GetTransportBasicParameters(
long Param,
long *pValue,
LPOLESTR *ppszData );
パラメータ
- Param
- [in] 設定値を取得する元となるパラメータ。指定できるパラメータについては、Edevdefs.h の中の "IAMExtTransport Basic Parms" を参照すること。
- pValue
- [out] パラメータの設定値が数値の場合、その設定値へのポインタ。
- ppszData
- [out] パラメータの設定値が文字列の場合、その設定値へのポインタのアドレス。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
参照
外部トランスポートのビデオ パラメータの設定値を取得する。
構文
HRESULT GetTransportVideoParameters( long Param, long *pValue );
パラメータ
- Param
- [in] 設定値を取得する元となるビデオ パラメータ。ED_TRANSVIDEO_SET_OUTPUT (ビデオ トランスポート出力パラメータ) または ED_TRANSVIDEO_SET_SOURCE (ビデオ トランスポート入力ソース) を指定する。
- pValue
- [out] ビデオ パラメータを受け取る変数へのポインタ。Param に ED_TRANSVIDEO_SET_SOURCE が指定されている場合、pValue は実際のビデオ入力を受け取る。Param に ED_TRANSVIDEO_SET_OUTPUT が指定されている場合、pValue は次のいずれかの値を受け取る。
ED_E2E トランスポート モードにかかわらず、デバイスの出力に入力映像が表示される。 ED_OFF 映像出力が無効である。 ED_PLAYBACK メディアの再生映像が画面上に表示される。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
参照
外部トランスポートのヘッド詰まり防止コントロールを有効または無効にする。
構文
HRESULT put_AntiClogControl( long Enable );
パラメータ
- Enable
- [in] ヘッド詰まり防止コントロールが有効かどうかを示す値。OATRUE を指定すると有効になり、OAFALSE を指定すると無効になる。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
このメソッドを使用すると、自動ヘッド クリーニング機能を備えた VCR の、ビデオ ヘッドの詰まりを防ぐことができる。
参照
トランスポートのエディット コントロールをアクティブにする (可能な場合)。
構文
HRESULT put_EditStart( long Value );
パラメータ
- Value
- [in] エディット コントロールをアクティブにするかどうかを示す値。OATRUE を指定するとエディット コントロールがアクティブにされ、OAFALSE を指定すると非アクティブにされる。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
このメソッドを使用すると、エディット コントロールを手動で有効にできる。エディット コントロールは、VCR 上の個別のレコード トラック、またはレコード トラックのセットを正確に有効化するものとして定義される。たとえば、ビデオだけの挿入編集では、ビデオ レコード ヘッドのみが有効化され、新しいビデオ信号が記録される。オーディオ信号は変化しない。このメソッドを使用すると、この機能を持つマシン上でオンザフライ編集を制御できる。
参照
外部トランスポートの状態をローカル制御またはリモート制御に設定する。
構文
HRESULT put_LocalControl( long State );
パラメータ
- State
- [in] 現在の状態。OATRUE を指定するとローカルになり、OAFALSE を指定するとリモートになる。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
参照
メディアの現在の状態を設定する。
構文
HRESULT put_MediaState( long State );
パラメータ
- State
- [in] 状態を指定する値。次のいずれかを使用する。
ED_MEDIA_SPIN_DOWN スピンを停止する (ディスク メディアの場合)。テープをアンスレッドする (テープ メディアの場合)。 ED_MEDIA_SPIN_UP スピンを開始する (ディスク メディアの場合)。テープをスレッドする (テープ メディアの場合)。 ED_MEDIA_UNLOAD ドライブからメディアをイジェクトする (デバイスが機能をサポートしている場合)。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
ディスク メディアとテープ メディアについては、上のパラメータを使用する。ほかのデバイスについては、場合によっては新しいパラメータを指定する必要がある。
参照
新しいトランスポート モード (再生、停止、記録、編集など) への移行を設定する
構文
HRESULT put_Mode( long Mode );
パラメータ
- Mode
- [in] トランスポート モード。次のいずれかを指定する。
ED_MODE_PLAY 再生。 ED_MODE_STOP 停止。 ED_MODE_FREEZE ポーズ。 ED_MODE_THAW 再開。 ED_MODE_FF 早送り。 ED_MODE_REW 巻き戻し。 ED_MODE_RECORD 記録。 ED_MODE_RECORD_STROBE シングル フレーム記録。 ED_MODE_STEP_FWD 順方向のシングル ステップ。 ED_MODE_STEP_REV 逆方向のシングル ステップ。 ED_MODE_SHUTTLE シャトル (高速再生)。トランスポート速度を設定するには、IAMExtTransport::put_Rate と共に使用する。 ED_MODE_EDIT_CUE アクティブな編集イベントの位置に頭出しする。 ED_MODE_LINK_ON このメソッドをグラフの IMediaControl::Run、Stop、および Pause メソッドにリンクする。 ED_MODE_LINK_OFF このメソッドをグラフの IMediaControl::Run、Stop、および Pause メソッドから解放する。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
参照
速度変更が可能な外部デバイスの再生速度を設定する。
構文
HRESULT put_Rate( double dblRate );
パラメータ
- dblRate
- [in] 再生速度の倍数を指定する。.5 は 2 分の 1、1 は標準、2 は 2 倍、3 は 3 倍を表す。以降についても同様である。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
このメソッドによって、アプリケーションは、通常のデフォルトの再生速度を基準に、再生をアクセラレーションまたは低速化できる。レート 1.0 は通常の再生速度を示す。 2.0 を指定すると、通常の 2 倍の速度で再生される。
このメソッドを IMediaPosition::put_Rate メソッドにリンクして、標準速度を基準に再生速度を設定する代替の手段にすることもできる。
参照
複数の外部デバイスの同期をとるために、再生速度を一時的に変更する。
構文
HRESULT SetBump( long Speed, long Duration );
パラメータ
- Speed
- [in] 一時速度 (標準速度の倍数)。
- Duration
- [in] 現在のタイム フォーマットで表されるバンプ時間幅。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
このメソッドによって、物理的な同期処理の際に、トランスポートの速度をさまざまな一時速度に変更できる。このメソッドは、Duration で指定される時間が経過するまで有効である。
サポートされるタイム フォーマットについては、(SDK ルート)\Include\Edevdefs.h の中の "IAMExtTransport Basic Parms" を参照すること。
参照
チェース モードを有効または無効にする。
構文
HRESULT SetChase( long Enable, long Offset, HEVENT hEvent );
パラメータ
- Enable
- [in] チェースが有効かどうかを示す値。OATRUE を指定するとチェースは有効になり、OAFALSE を指定すると無効になる。
- Offset
- [in] トランスポートが保持しているタイム基準からのオフセット。現在のタイム フォーマットで指定する。
- hEvent
- [in] 設定されているオフセットを通知するイベント。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
SetChase メソッドは、外部トランスポートが固定のオフセットでタイムコード信号に連続的に従う場合に使用する。たとえば、コンピュータがタイムコードを生成している場合、チェースの機能を備えている VCR に対して、自身は再生モードを設定し、メディアは基準タイムコードからのオフセットを保持することを指定できる。オフセットは、再生メディアのタイムコードと、生成された基準タイムコードを比較することで決定する。
このメソッドは、メソッドがキャンセルまたは完了するまで有効である。また、フィルタに対して、トランスポートのタイムコードを定期的に読み取ることによって、トランスポートが本当に固定オフセットを保持しているかどうか、確認することを要求する。
Offset の時間は、現在のタイム フォーマットで指定する。サポートされるタイム フォーマットについては、(SDK ルート)\Include\Edevdefs.h の中の "IAMExtTransport Basic Parms" を参照すること。
参照
特定の編集プロパティ セットに関連付けられている個別のパラメータと値を定義する。
構文
HRESULT SetEditProperty( long EditID, long Param, long Value );
パラメータ
- EditID
- [in] 編集プロパティ セットの ID 番号。
- Param
- [in] 定義する編集イベント パラメータ。
- Value
- [in] Param で指定されるパラメータの値。OATRUE、OAFALSE、または固有の値を使用する。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
編集イベントは、実際の記録シーケンスを定義する定義済みのプロパティのグループを参照することも、単純な位置指定コマンドを参照することもできる。たとえば、編集の特定のモードの指定、IN 点と OUT 点の記録、またはブックマークと呼ばれる位置の記憶などを行うことができる。SetEditPropertySet メソッドは、編集プロパティ セットと呼ばれる編集プロパティのグループを作成または登録するものである。一方 SetEditProperty によって、ユーザーは各編集イベントのパラメータと値を定義できる。これは比較的高度な技術を要するので、実装は上級開発者が担当する。
編集プロパティのセットを定義するには、最初に編集プロパティ セットを登録し、SetEditPropertySet メソッドで EditID を取得する。次に、SetEditProperty メソッドを使用して、各編集プロパティの固有のパラメータと値を定義する。最後に、SetEditPropertySet メソッドで編集プロパティ セットをアクティブにする。
Edevdefs.h ファイル ヘッダー ファイルには、編集プロパティ セットの有効なパラメータと値が一覧されている。
参照
編集プロパティのグループである編集プロパティ セットを登録する。
構文
HRESULT SetEditPropertySet( long *pEditID, long State );
パラメータ
- pEditID
- [in, out] 編集プロパティ セットの ID 番号へのポインタ。
- State
- [in] 編集プロパティ セットの状態。次のいずれかを指定する。
DC_SET_ACTIVE 編集プロパティ セットをアクティブにする。 DC_SET_DELETE 編集プロパティ セットを削除する。 DC_SET_INACTIVE 編集プロパティ セットを非アクティブにする。 DC_SET_REGISTER 編集プロパティ セットを登録する。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
編集イベントは、トランスポート上の実際の記録シーケンスや単純な位置指定コマンドを定義する、定義済みのプロパティのグループを参照する。たとえば、編集の特定のモードの指定、IN 点と OUT 点の記録、またはブックマークと呼ばれる位置の記憶などを行うことができる。SetEditPropertySet メソッドは、編集プロパティ セットと呼ばれる編集プロパティのグループを定義および登録するものである。一方 SetEditProperty によって、ユーザーは各編集イベント プロパティのパラメータと値を定義できる。
編集プロパティのセットを定義するには、最初に編集プロパティ セットを登録し、SetEditPropertySet メソッドで EditID を取得する。次に、SetEditProperty メソッドを使用して、各編集プロパティの固有のパラメータと値を定義する。最後に、SetEditPropertySet メソッドで編集プロパティ セットをアクティブにする。
たとえば、次のコードでは、すべてのトラック上でインサート編集を設定する。
// 編集プロパティ セット ID を登録する (メモリが割り当てられる)。 SetEditPropertySet(&EditID, ED_REGISTER); // 編集モードを設定する。 SetEditProperty(EditID, ED_EDIT_MODE, ED_EDIT_MODE_INSERT); // イベントの詳細を設定する。 SetEditProperty(EditID, ED_EDIT_TRACK, ED_VIDEO | ED_AUDIO_ALL); SetEditProperty(EditID, ED_REHEARSE_MODE, ED_EDIT_PERFORM); // (記録とソースの時間などを設定する。) SetEditPropertySet(pEditID, ED_ACTIVE); // アクティブにする。 SetEditProperty(EditID, ED_EDIT_SEEK, OATRUE); // マシンを頭出しする。 // (グラフを起動する。)即時編集を行うには ("オンザフライ"編集)、ED_EDIT_IMMEDIATE 編集プロパティを使用する。
編集プロパティ セットのメカニズムを使用して、タイムコード検索を行うこともできる。このためには、次のプロパティを設定する。
- ED_EDIT_SRC_INPOINT に目的のタイムコード値を設定する。
- ED_EDIT_SEEK_MODE に ED_EDIT_SEEK_EDIT_IN を設定する。
- ED_EDIT_SEEK に OATRUE を設定する。検索操作が起動される。
VCR 制御フィルタでは、編集と同期制御に関する各種モードの 1 つをサポートできる。
- 1 台のマシンを使用し、このマシンがマスタとして使用されるモード : これは、ノンリニア編集にとって最も一般的な構成である。1 台の VCR で、ソース マテリアルのキャプチャと最終結果の記録が行われる。VCR のタイムコードが、フィルタ グラフのマスタ クロック基準として使用される。このモードでは、VCR において要求される機械的な同期化の必要性が最も少ない。これは、外部の機械制御のデバイスに比べて、デジタル再生エンジンの方が簡単に基準クロックに同期することができるためである。
- 1 台のマシンを使用し、基準クロックに同期するモード : 1 台の VCR でキャプチャと再生を行う。VCR は、フィルタ グラフの基準クロックに同期する。
- 複数のマシンを使用し、その中の 1 つがマスタとして使用されるモード : これは、リニア編集およびハイブリッド編集にとって最も一般的な構成である。フィルタ グラフのクロックはマスタ (記録) VCR に同期し、再生 VCR はフィルタ グラフのクロックに同期することが要求される。
- 複数のマシンを使用し、すべてのマシンを基準クロックに同期するモード : これも、リニア編集およびハイブリッド編集にとって一般的な構成である。すべての VCR はフィルタ グラフのクロックに同期する。
特定のデバイスのマスタ/従属モードを判別するには、IAMExtTransport::GetCapability メソッドで ED_TRANSCAP_IS_MASTER の項目を確認する。
SMPTE タイムコードを使用してフィルタ グラフ再生をマスタ VCR に同期させることは、比較的簡単である。IAMTimecodeReader::GetTimecode メソッドから返される TIMECODE_SAMPLE には、VCR のフレーム位置とフィルタ グラフのクロックとの間の時間の関係を表す、基準クロックのタイム スタンプが含まれる。このオフセットを使用することで、ストリーム コントロール インターフェイスで再生のデジタル キャプチャを起動できる。
VCR をフィルタ グラフのクロックに同期させるには、VCR 制御フィルタに目的のタイム オフセットを送る必要がある。最も単純なケースでは、IAMExtTransport::SetChase メソッドを実行することによってこれを実現できる。1 つまたは複数のイベント編集をサポートしている場合は、編集プロパティ セットの ED_EDIT_OFFSET プロパティを使用する。
編集プロパティ セットの有効なパラメータおよび値の一覧については、[DXMedia\Include] フォルダの中の Edevdefs.h を参照すること。
参照
外部トランスポートのオーディオ パラメータの設定値を設定する。
構文
HRESULT SetTransportAudioParameters( long Param, long Value );
パラメータ
- Param
- [in] 設定するオーディオ パラメータ。次のいずれかを指定する。
ED_TRANSAUDIO_ENABLE_OUTPUT 出力用のオーディオ チャンネルを有効にする。 ED_TRANSAUDIO_ENABLE_RECORD 録音用のオーディオ チャンネルを有効にする。 ED_TRANSAUDIO_ENABLE_SELSYNC selsync 録音用のオーディオ チャンネルを有効にする。 ED_TRANSAUDIO_SET_MONITOR モニタ出力ソースを設定する。 ED_TRANSAUDIO_SET_SOURCE アクティブなオーディオ入力を設定する。 - Value
- [in] パラメータを設定するオーディオ チャンネル。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
ED_AUDIO_1 から ED_AUDIO_24 の範囲のいずれかを選択することによって、Value に正確なチャンネルを指定する。複数のチャンネルを指定するには、or スイッチを使用する。すべてのチャンネルを指定するには、ED_AUDIO_ALL を選択する。
参照
外部トランスポートの基本パラメータを設定する。
構文
HRESULT SetTransportBasicParameters( long Param, long Value, LPCOLESTR pszData );
パラメータ
- Param
- [in] 設定するパラメータ。指定できるパラメータについては、Edevdefs.h の中の "IAMExtTransport Basic Parms" を参照すること。
- Value
- [in] 数値型のパラメータの設定値。
- pszData
- [in] 文字列型のパラメータの設定値へのポインタ。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
基本設定には、タイム フォーマット、記録方式、プリロール設定、サーボ設定などが含まれる。Edevdefs.h を参照すること。
参照
外部トランスポートのビデオ パラメータを設定する。
構文
HRESULT SetTransportVideoParameters( long Param, long Value );
パラメータ
- Param
- [in] 設定するビデオ パラメータ。ED_TRANSVIDEO_SET_OUTPUT (ビデオ トランスポート出力パラメータ) または ED_TRANSVIDEO_SET_SOURCE (ビデオ トランスポート物理入力) を指定する。
- Value
- [in] ED_TRANSVIDEO_SET_SOURCE フラグを設定する場合は、アクティブなビデオ入力を指定する。ED_TRANSVIDEO_SET_OUTPUT フラグを設定する場合は、次のいずれかの値を指定する。
ED_E2E トランスポート モードにかかわらず、デバイスの出力に入力映像が表示される。 ED_OFF 映像出力が無効である。 ED_PLAYBACK メディアの再生映像が画面上に表示される。
戻り値
インターフェイスの実装に応じた HRESULT 値を返す。
注意
ED_TRANSVIDEO_SET_SOURCE フラグの場合、外部デバイス フィルタは物理的なピンを使用してその入力を記述する。フィルタのピンの列挙型を呼び出すと、インデックス値が返される。その値は Value パラメータとしてこのメソッドに渡される。
参照