Win32 API 日本語リファレンス
ホームMedia.MediaFoundation › IMFVideoMediaType

IMFVideoMediaType

COM
IIDb99f381f-a8f9-47a2-a5af-ca3a225a3890継承元IMFMediaType自前メソッド開始 vtbl38

公式ドキュメント

ビデオ形式の記述を表します。

解説(Remarks)

メディアタイプのメジャータイプが MFMediaType_Video の場合、そのメディアタイプオブジェクトに対して IMFVideoMediaType インターフェイスをクエリできます。

アプリケーションは、メソッドまたは関数がパラメーターとして IMFVideoMediaType ポインターを必要とする場合を除き、このインターフェイスの使用を避けるべきです。ビデオメディアタイプのすべての形式情報は、IMFMediaType が継承する IMFAttributes インターフェイスを通じて取得できます。

メソッド 2

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 38 MFVIDEOFORMAT* GetVideoFormat()

GetVideoFormat は Windows 7 以降、使用できなくなりました。

戻り値

このメソッドは MFVIDEOFORMAT 構造体へのポインターを返します。

解説(Remarks)

メディアタイプを MFVIDEOFORMAT 構造体に変換する必要がある場合は、MFCreateMFVideoFormatFromMFMediaType を呼び出してください。

返されたポインターがどれだけの期間有効であるかについての保証はありません。

vtbl 39 HRESULT GetVideoRepresentation(GUID guidRepresentation, void** ppvRepresentation, INT lStride)

メディアタイプの代替表現を取得します。

guidRepresentationGUIDin取得する表現を指定する GUID。値の一覧については、IMFMediaType::GetRepresentation を参照してください。
ppvRepresentationvoid**out表現を含む構造体へのポインターを受け取ります。このメソッドは構造体のメモリを割り当てます。呼び出し元は IMFMediaType::FreeRepresentation を呼び出してメモリを解放する必要があります。
lStrideINTinビデオサーフェスのストライド(バイト単位)。ストライドが不明な場合は、この値を 0 に設定します。値が 0 の場合、メソッドは画像の幅からストライドを計算し、パディングがないものと想定します。

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。

Return code Description
S_OK
メソッドが成功しました。

解説(Remarks)

このメソッドは IMFMediaType::GetRepresentation と同等ですが、lStride パラメーターが含まれます。

このメソッドを呼び出す代わりに、アプリケーションはメディアタイプに MF_MT_DEFAULT_STRIDE 属性を設定してサーフェスのストライドを指定し、その後 IMFMediaType::GetRepresentation を呼び出すべきです。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 指定が可能。