ISampleGrabber::SetMediaType
SetMediaType メソッドは、サンプル グラバの入力ピン上の接続に使うメディア タイプを指定する。
構文
HRESULT SetMediaType(
const AM_MEDIA_TYPE *pType
);
パラメータ
pType
必要なメディア タイプを指定する AM_MEDIA_TYPE 構造体へのポインタ。構造体のメンバをすべて設定する必要はない。詳細については、「注意」を参照すること。
戻り値
S_OK を返す。
注意
デフォルトでは、サンプル グラバに優先メディア タイプはない。サンプル グラバを正しいフィルタに確実に接続するには、フィルタ グラフを作成する前にこのメソッドを呼び出す。
このメソッドは、フィルタが受け入れるメディア タイプの範囲を制限する。フィルタが接続すると、pType で指定されたメディア タイプを比較しようとする。その場合、フィルタはメジャー タイプ、サブタイプ、フォーマット タイプの各 GUID をこの順で比較する。これらの各 GUID について、pType が値 GUID_NULL の場合、サンプル グラバはこれ以上チェックしないでメディア タイプを受け入れる。pType がそれ以外の値の場合、サンプル グラバはその値と接続タイプの GUID を比較する。2 つの GUID が完全に一致しない限り、サンプル グラバは接続を拒否する。
例 1 :
- メジャー タイプ :MEDIATYPE_Video
- サブタイプ :GUID_NULL
- フォーマット タイプ :GUID_NULL
メジャー タイプが MEDIATYPE_Video と等しければ、サンプル グラバは任意のビデオ タイプを受け入れる。サブタイプはチェックされない。
例 2 :
- メジャー タイプ :MEDIATYPE_Video
- サブタイプ :MEDIASUBTYPE_RGB24
- フォーマット タイプ :GUID_NULL
今度は、サンプル グラバはサブタイプをチェックし、RGB 24 ビデオのみ受け入れる。
**制限 :**設定するタイプとは関係なく、サンプル グラバ フィルタはトップダウン方向 (負の biHeight) のビデオ タイプ、または FORMAT_VideoInfo2 のフォーマット タイプのビデオ タイプはすべて拒否する。この場合、SetMediaType メソッドが成功しても、フィルタは接続されない。
参照