次の方法で共有


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 メソッドが成功しても、フィルタは接続されない。

参照