Microsoft DirectX 8.0 |
このインターフェイスは、任意のメディア タイプのストリーム サンプルを操作するメソッドを提供する。このインターフェイスを公開するサンプルを作成するには、IAMMediaTypeStream::CreateSample メソッドを呼び出す。
このインターフェイスは、IStreamSample インターフェイスを継承する。
このインターフェイスのメソッドは、IMediaSample インターフェイスのメソッドに相当する。ただし、IAMMediaTypeSample には SetPointer メソッドと GetPointer メソッドが加わっている。
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IStreamSample メソッド 説明 GetMediaStream 現在のサンプルを作成したメディア ストリーム オブジェクトへのポインタを取得する。 GetSampleTimes 現在のサンプルの開始タイムと終了タイムを取得する。 SetSampleTimes 現在のサンプルの開始タイムと終了タイムを設定する。 Update 現在のサンプルを同期または非同期に更新する。 CompletionStatus 現在のサンプルに行われた最後の非同期更新の状態を取得する。更新が完了していない場合には強制終了できる。 IAMMediaTypeSample メソッド 説明 SetPointer メディア サンプルのメモリ バッファへのポインタを設定する。 GetPointer バッファのメモリへの読み取り/書き込みポインタを取得する。 GetSize バッファのデータ領域のサイズ (バイト単位) を取得する。 GetTime このサンプルが開始および停止すべきストリーム タイムを取得する。 SetTime このサンプルが開始および停止すべきストリーム タイムを設定する。 IsSyncPoint サンプルの始まりが同期ポイントかどうかを判断する。 SetSyncPoint このサンプルの始まりが同期ポイントかどうかを指定する。 IsPreroll このサンプルがプリロールの一部かどうかを判断する。 SetPreroll これがプリロール サンプルかどうかを指定する。 GetActualDataLength サンプルのデータ長 (バイト単位) を取得する。 SetActualDataLength サンプルのデータ長を設定する。 GetMediaType サンプルのメディア タイプを取得する。 SetMediaType サンプルのメディア タイプを設定する。 IsDiscontinuity このサンプルがデータ ストリームの不連続性を表しているかどうかを判断する。 SetDiscontinuity 不連続性のプロパティを設定する。 GetMediaTime このサンプルのメディア タイム スタンプを取得する。 SetMediaTime このサンプルのメディア タイム スタンプを設定する。
サンプルのデータ長 (バイト単位) を取得する。
構文
long GetActualDataLength(void);
戻り値
サンプルのデータ長 (バイト単位) を返す。
サンプルのメディア タイム スタンプを取得する。
構文
HRESULT GetMediaTime( LONGLONG *pTimeStart, LONGLONG *pTimeEnd );
パラメータ
- pTimeEnd
- [out] メディアの開始タイムを受け取る変数へのポインタ。
- pTimeStart
- [out] メディアの終了タイムを受け取る変数へのポインタ。
戻り値
次のいずれかの値を返す。
S_OK 成功。 VFW_E_MEDIA_TIME_NOT_SET このサンプルにはメディア タイム スタンプが設定されていない。
サンプルのメディア タイプを取得する。フォーマットが直前のサンプルから変わっていない場合には、サンプルにメディア タイプが付いていない可能性がある。
構文
HRESULT GetMediaType( AM_MEDIA_TYPE **ppMediaType );
パラメータ
- ppMediaType
- AM_MEDIA_TYPE 構造体を受け取るポインタのアドレス。
戻り値
次のいずれかの値を返す。
E_OUTOFMEMORY メモリ不足。 S_FALSE フォーマットが直前のサンプルから変わっていない。 S_OK 成功。
バッファのメモリへの読み取り/書き込みポインタを取得する。
構文
HRESULT GetPointer( BYTE **ppBuffer );
パラメータ
- ppBuffer
- [out] バッファへのポインタのアドレス。
戻り値
S_OK を返す。
バッファのデータ領域のサイズ (バイト単位) を取得する。
構文
long GetSize(void);
戻り値
バッファのデータ領域のサイズ (バイト単位) を返す。
サンプルが開始および停止すべきストリーム タイムを取得する。
構文
HRESULT GetTime( REFERENCE_TIME *pTimeStart, REFERENCE_TIME *pTimeEnd );
パラメータ
- pTimeStart
- [out] 開始タイムを受け取る変数へのポインタ。
- pTimeEnd
- [out] 終了タイムを受け取る変数へのポインタ。サンプルに終了タイムがない場合、この値には開始タイムに 1 加えた値が設定される。
戻り値
次のいずれかの値を返す。
S_OK 成功。 VFW_E_SAMPLE_TIME_NOT_SET サンプルにタイム スタンプがない。 VFW_S_NO_STOP_TIME サンプルには有効な開始タイムがあるが、終了タイムがない。
このサンプルがデータ ストリームの不連続性を表しているかどうかを判断する。
構文
HRESULT IsDiscontinuity(void);
戻り値
サンプルが不連続な場合は、S_OK を返す。それ以外の場合は、S_FALSE を返す。
このサンプルがプリロールの一部かどうかを判断する。プリロール サンプルを表示してはならない。
構文
HRESULT IsPreroll(void);
戻り値
サンプルがプリロール サンプルである場合は、S_OK を返す。それ以外の場合は、S_FALSE を返す。
サンプルの始まりが同期ポイントかどうかを判断する。
構文
HRESULT IsSyncPoint(void);
戻り値
サンプルの始まりが同期ポイントである場合は、S_OK を返す。それ以外の場合は、S_FALSE を返す。
サンプルのデータ長を設定する。
構文
HRESULT SetActualDataLength( long lActual );
パラメータ
- lActual
- メディア サンプルのデータ長 (バイト単位)。
戻り値
次のいずれかの値を返す。
S_OK 成功。 VFW_E_BUFFER_OVERFLOW バッファの大きさが足りない。
不連続性のプロパティを設定する。
構文
HRESULT SetDiscontinuity( BOOL bDiscontinuity );
パラメータ
- bDiscontinuity
- このサンプルが不連続かどうかを指定する値。サンプルが直前のサンプルと不連続な場合にはこの値を TRUE に設定し、それ以外の場合は FALSE に設定する。
戻り値
S_OK を返す。
このサンプルのメディア タイム スタンプを設定する。
構文
HRESULT SetMediaTime( LONGLONG *pTimeStart, LONGLONG *pTimeEnd );
パラメータ
- pTimeEnd
- [in] メディアの開始タイムが格納された変数へのポインタ。
- pTimeStart
- [in] メディアの終了タイムが格納された変数へのポインタ。
戻り値
S_OK を返す。
サンプルのメディア タイプを設定する。
構文
HRESULT SetMediaType( AM_MEDIA_TYPE *pMediaType );
パラメータ
- pMediaType
- メディア タイプを記述する AM_MEDIA_TYPE 構造体へのポインタ。
戻り値
次のいずれかの値を返す。
E_OUTOFMEMORY メモリ不足。 S_OK 成功。
メディア サンプルのメモリ バッファへのポインタを設定する。
構文
HRESULT SetPointer( BYTE *pBuffer, long lSize );
パラメータ
- pBuffer
- [in] 呼び出し元で割り当てられたメモリ バッファへのポインタ、または NULL。
- lSize
- [in] バッファのサイズ (バイト単位)。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_OUTOFMEMORY メモリ不足。
注意
pBuffer パラメータの値が NULL の場合、メソッドは lSize パラメータの値と等しいサイズ (バイト単位) のメモリ ブロックを割り当てる。メモリが初期化されているという保障はない。
これがプリロール サンプルかどうかを指定する。プリロール サンプルを表示してはならない。
構文
HRESULT SetPreroll( BOOL bIsPreroll );
パラメータ
- bIsPreroll
- サンプルがプリロール サンプルかどうかを指定するブール値。TRUE の場合、このサンプルはプリロール用であり、表示してはならない。
戻り値
S_OK を返す。
このサンプルの始まりが同期ポイントかどうかを指定する。
構文
HRESULT SetSyncPoint( BOOL bIsSyncPoint );
パラメータ
- bIsSyncPoint
- このサンプルの始まりが同期ポイントかどうかを指定するブール値。TRUE の場合、サンプルの始まりは同期ポイントである。
戻り値
S_OK を返す。
サンプルが開始および停止すべきストリーム タイムを設定する。
構文
HRESULT SetTime( REFERENCE_TIME *pTimeStart, REFERENCE_TIME *pTimeEnd );
パラメータ
- pTimeStart
- [in] 開始タイムが格納された変数へのポインタ。
- pTimeEnd
- [in] 終了タイムが格納された変数へのポインタ。
戻り値
S_OK を返す。