Microsoft DirectX 8.0

IAMMediaTypeSample インターフェイス

このインターフェイスは、任意のメディア タイプのストリーム サンプルを操作するメソッドを提供する。このインターフェイスを公開するサンプルを作成するには、IAMMediaTypeStream::CreateSample メソッドを呼び出す。

このインターフェイスは、IStreamSample インターフェイスを継承する。

このインターフェイスのメソッドは、IMediaSample インターフェイスのメソッドに相当する。ただし、IAMMediaTypeSample には SetPointer メソッドと GetPointer メソッドが加わっている。

vtable 順のメソッド

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このサンプルのメディア タイム スタンプを設定する。

IAMMediaTypeSample::GetActualDataLength

IAMMediaTypeSample インターフェイス

サンプルのデータ長 (バイト単位) を取得する。

構文

long GetActualDataLength(void);

戻り値

サンプルのデータ長 (バイト単位) を返す。

IAMMediaTypeSample::GetMediaTime

IAMMediaTypeSample インターフェイス

サンプルのメディア タイム スタンプを取得する。

構文

HRESULT GetMediaTime(
LONGLONG *pTimeStart,
LONGLONG *pTimeEnd
);

パラメータ

pTimeEnd
[out] メディアの開始タイムを受け取る変数へのポインタ。
pTimeStart
[out] メディアの終了タイムを受け取る変数へのポインタ。

戻り値

次のいずれかの値を返す。

S_OK成功。
VFW_E_MEDIA_TIME_NOT_SETこのサンプルにはメディア タイム スタンプが設定されていない。

IAMMediaTypeSample::GetMediaType

IAMMediaTypeSample インターフェイス

サンプルのメディア タイプを取得する。フォーマットが直前のサンプルから変わっていない場合には、サンプルにメディア タイプが付いていない可能性がある。

構文

HRESULT GetMediaType(
    AM_MEDIA_TYPE **ppMediaType
);

パラメータ

ppMediaType
AM_MEDIA_TYPE 構造体を受け取るポインタのアドレス。

戻り値

次のいずれかの値を返す。

E_OUTOFMEMORYメモリ不足。
S_FALSEフォーマットが直前のサンプルから変わっていない。
S_OK成功。

IAMMediaTypeSample::GetPointer

IAMMediaTypeSample インターフェイス

バッファのメモリへの読み取り/書き込みポインタを取得する。

構文

HRESULT GetPointer(
    BYTE **ppBuffer
);

パラメータ

ppBuffer
[out] バッファへのポインタのアドレス。

戻り値

S_OK を返す。

IAMMediaTypeSample::GetSize

IAMMediaTypeSample インターフェイス

バッファのデータ領域のサイズ (バイト単位) を取得する。

構文

long GetSize(void);

戻り値

バッファのデータ領域のサイズ (バイト単位) を返す。

IAMMediaTypeSample::GetTime

IAMMediaTypeSample インターフェイス

サンプルが開始および停止すべきストリーム タイムを取得する。

構文

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サンプルには有効な開始タイムがあるが、終了タイムがない。

IAMMediaTypeSample::IsDiscontinuity

IAMMediaTypeSample インターフェイス

このサンプルがデータ ストリームの不連続性を表しているかどうかを判断する。

構文

HRESULT IsDiscontinuity(void);

戻り値

サンプルが不連続な場合は、S_OK を返す。それ以外の場合は、S_FALSE を返す。

IAMMediaTypeSample::IsPreroll

IAMMediaTypeSample インターフェイス

このサンプルがプリロールの一部かどうかを判断する。プリロール サンプルを表示してはならない。

構文

HRESULT IsPreroll(void);

戻り値

サンプルがプリロール サンプルである場合は、S_OK を返す。それ以外の場合は、S_FALSE を返す。

IAMMediaTypeSample::IsSyncPoint

IAMMediaTypeSample インターフェイス

サンプルの始まりが同期ポイントかどうかを判断する。

構文

HRESULT IsSyncPoint(void);

戻り値

サンプルの始まりが同期ポイントである場合は、S_OK を返す。それ以外の場合は、S_FALSE を返す。

IAMMediaTypeSample::SetActualDataLength

IAMMediaTypeSample インターフェイス

サンプルのデータ長を設定する。

構文

HRESULT SetActualDataLength(
    long lActual
);

パラメータ

lActual
メディア サンプルのデータ長 (バイト単位)。

戻り値

次のいずれかの値を返す。
S_OK成功。
VFW_E_BUFFER_OVERFLOWバッファの大きさが足りない。

IAMMediaTypeSample::SetDiscontinuity

IAMMediaTypeSample インターフェイス

不連続性のプロパティを設定する。

構文

HRESULT SetDiscontinuity(
    BOOL bDiscontinuity
);

パラメータ

bDiscontinuity
このサンプルが不連続かどうかを指定する値。サンプルが直前のサンプルと不連続な場合にはこの値を TRUE に設定し、それ以外の場合は FALSE に設定する。

戻り値

S_OK を返す。

IAMMediaTypeSample::SetMediaTime

IAMMediaTypeSample インターフェイス

このサンプルのメディア タイム スタンプを設定する。

構文

HRESULT SetMediaTime(
LONGLONG *pTimeStart,
LONGLONG *pTimeEnd
);

パラメータ

pTimeEnd
[in] メディアの開始タイムが格納された変数へのポインタ。
pTimeStart
[in] メディアの終了タイムが格納された変数へのポインタ。

戻り値

S_OK を返す。

IAMMediaTypeSample::SetMediaType

IAMMediaTypeSample インターフェイス

サンプルのメディア タイプを設定する。

構文

HRESULT SetMediaType(
    AM_MEDIA_TYPE *pMediaType
);

パラメータ

pMediaType
メディア タイプを記述する AM_MEDIA_TYPE 構造体へのポインタ。

戻り値

次のいずれかの値を返す。

E_OUTOFMEMORYメモリ不足。
S_OK成功。

IAMMediaTypeSample::SetPointer

IAMMediaTypeSample インターフェイス

メディア サンプルのメモリ バッファへのポインタを設定する。

構文

HRESULT SetPointer(
    BYTE *pBuffer,
    long lSize
);

パラメータ

pBuffer
[in] 呼び出し元で割り当てられたメモリ バッファへのポインタ、または NULL。
lSize
[in] バッファのサイズ (バイト単位)。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_OUTOFMEMORYメモリ不足。

注意

pBuffer パラメータの値が NULL の場合、メソッドは lSize パラメータの値と等しいサイズ (バイト単位) のメモリ ブロックを割り当てる。メモリが初期化されているという保障はない。

IAMMediaTypeSample::SetPreroll

IAMMediaTypeSample インターフェイス

これがプリロール サンプルかどうかを指定する。プリロール サンプルを表示してはならない。

構文

HRESULT SetPreroll(
    BOOL bIsPreroll
);

パラメータ

bIsPreroll
サンプルがプリロール サンプルかどうかを指定するブール値。TRUE の場合、このサンプルはプリロール用であり、表示してはならない。

戻り値

S_OK を返す。

IAMMediaTypeSample::SetSyncPoint

IAMMediaTypeSample インターフェイス

このサンプルの始まりが同期ポイントかどうかを指定する。

構文

HRESULT SetSyncPoint(
    BOOL bIsSyncPoint
);

パラメータ

bIsSyncPoint
このサンプルの始まりが同期ポイントかどうかを指定するブール値。TRUE の場合、サンプルの始まりは同期ポイントである。

戻り値

S_OK を返す。

IAMMediaTypeSample::SetTime

IAMMediaTypeSample インターフェイス

サンプルが開始および停止すべきストリーム タイムを設定する。

構文

HRESULT SetTime(
REFERENCE_TIME *pTimeStart,
REFERENCE_TIME *pTimeEnd
);

パラメータ

pTimeStart
[in] 開始タイムが格納された変数へのポインタ。
pTimeEnd
[in] 終了タイムが格納された変数へのポインタ。

戻り値

S_OK を返す。