次の方法で共有


ISampleGrabber::SetMediaType メソッド

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

注意

[非推奨。 この API は、Windows の今後のリリースから削除される可能性があります。

 

メソッドは SetMediaType 、サンプル グラバーの入力ピン上の接続のメディアの種類を指定します。

構文

HRESULT SetMediaType(
   const AM_MEDIA_TYPE *pType
);

パラメーター

pType

AM_MEDIA_TYPE構造体へのポインターは、必要なメディアの種類を指定します。 すべての構造体メンバーを設定する必要はありません。詳細については、「解説」を参照してください。

戻り値

S_OK を返します。

解説

既定では、サンプル グラバーには推奨されるメディアの種類はありません。 サンプル グラバーが正しいフィルターに確実に接続されるようにするには、フィルター グラフを作成する前に、このメソッドを呼び出します。

このメソッドは、フィルターが受け入れるメディアの種類の範囲を制限します。 フィルターが接続すると、 pType で指定されたメディアの種類との一致が試行されます。 これを行うには、メジャー型、サブタイプ、および書式型 GUID をその順序で比較します。 これらの GUID ごとに、 pType の値が GUID_NULLの場合、サンプル グラバーはそれ以上のチェックを行わずにメディアの種類を受け入れます。 pType に他の値がある場合、Sample Grabber は接続の種類の GUID と比較します。 2 つの GUID が正確に一致しない限り、サンプル グラバーは接続を拒否します。

ビデオ メディアの種類の場合、Sample Grabber はフォーマット ブロックを無視します。 したがって、任意のビデオ サイズとフレーム レートを受け入れます。 を呼び出 SetMediaTypeすときは、書式ブロック (pbFormat) を NULL に設定し、size (cbFormat) を 0 に設定します。 オーディオ メディアの種類の場合、Sample Grabber は WAVEFORMATEX 構造体を調べ、 pType のフォーマット ブロックが NULL であるか、書式タグがWAVE_FORMAT_PCMされ、他の構造体メンバーが 0 でない限り、その形式に接続するために他のフィルターを必要とします。

例 1:

  • 主な種類: MEDIATYPE_Video
  • サブタイプ: GUID_NULL
  • 形式の種類: GUID_NULL

サンプル グラバーは、メジャーの種類がMEDIATYPE_Videoと等しい任意のビデオの種類を受け入れます。 サブタイプはチェックされません。

例 2:

  • 主な種類: MEDIATYPE_Video
  • サブタイプ: MEDIASUBTYPE_RGB24
  • 形式の種類: GUID_NULL

これで、サンプル グラバーはサブタイプをチェックし、RGB 24 ビデオのみを受け入れます。

制限: 設定した種類に関係なく、サンプル グラバー フィルターは、トップダウンの向き (負 の biHeight)、または形式の種類がFORMAT_VideoInfo2のビデオの種類を拒否します。 この場合、 メソッドは SetMediaType 成功しますが、フィルターは接続されません。

注意

ヘッダー ファイル Qedit.h は、バージョン 7 より後の Direct3D ヘッダーと互換性がありません。

 

注意

Qedit.h を入手するには、Windows Vista および .NET Framework 3.0 のMicrosoft Windows SDK Update をダウンロードします。 Qedit.h は、Windows 7 および .NET Framework 3.5 Service Pack 1 のMicrosoft Windows SDKでは使用できません。

 

要件

要件
ヘッダー
Qedit.h
ライブラリ
Strmiids.lib

関連項目

サンプル グラバーの使用

ISampleGrabber インターフェイス