IMFVideoMediaType
COM公式ドキュメント
ビデオ形式の記述を表します。
解説(Remarks)
メディアタイプのメジャータイプが MFMediaType_Video の場合、そのメディアタイプオブジェクトに対して IMFVideoMediaType インターフェイスをクエリできます。
アプリケーションは、メソッドまたは関数がパラメーターとして IMFVideoMediaType ポインターを必要とする場合を除き、このインターフェイスの使用を避けるべきです。ビデオメディアタイプのすべての形式情報は、IMFMediaType が継承する IMFAttributes インターフェイスを通じて取得できます。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
GetVideoFormat は Windows 7 以降、使用できなくなりました。
戻り値
このメソッドは MFVIDEOFORMAT 構造体へのポインターを返します。
解説(Remarks)
メディアタイプを MFVIDEOFORMAT 構造体に変換する必要がある場合は、MFCreateMFVideoFormatFromMFMediaType を呼び出してください。
返されたポインターがどれだけの期間有効であるかについての保証はありません。
メディアタイプの代替表現を取得します。
| guidRepresentation | GUID | in | 取得する表現を指定する GUID。値の一覧については、IMFMediaType::GetRepresentation を参照してください。 |
| ppvRepresentation | void** | out | 表現を含む構造体へのポインターを受け取ります。このメソッドは構造体のメモリを割り当てます。呼び出し元は IMFMediaType::FreeRepresentation を呼び出してメモリを解放する必要があります。 |
| lStride | INT | in | ビデオサーフェスのストライド(バイト単位)。ストライドが不明な場合は、この値を 0 に設定します。値が 0 の場合、メソッドは画像の幅からストライドを計算し、パディングがないものと想定します。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| メソッドが成功しました。 |
解説(Remarks)
このメソッドは IMFMediaType::GetRepresentation と同等ですが、lStride パラメーターが含まれます。
このメソッドを呼び出す代わりに、アプリケーションはメディアタイプに MF_MT_DEFAULT_STRIDE 属性を設定してサーフェスのストライドを指定し、その後 IMFMediaType::GetRepresentation を呼び出すべきです。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IMFVideoMediaType "{B99F381F-A8F9-47A2-A5AF-CA3A225A3890}"
#usecom global IMFVideoMediaType IID_IMFVideoMediaType "{}"
#comfunc global IMFVideoMediaType_GetVideoFormat 38
#comfunc global IMFVideoMediaType_GetVideoRepresentation 39 int,sptr,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。