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

IAMVideoAcceleratorNotify

COM
IID256a6a21-fbad-11d1-82bf-00a0c9696c8f継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IAMVideoAcceleratorNotify インターフェイスは、IAMVideoAccelerator インターフェイスと組み合わせて使用されるコールバックインターフェイスです。

メソッド 3

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

vtbl 3 HRESULT GetUncompSurfacesInfo(GUID* pGuid, AMVAUncompBufferInfo* pUncompBufferInfo)

GetUncompSurfacesInfo メソッドは、割り当てる非圧縮サーフェスの数とピクセル形式をデコーダーに照会します。

pGuidGUID*in使用中の DXVA プロファイルを指定する GUID へのポインター。
pUncompBufferInfoAMVAUncompBufferInfo*inout

AMVAUncompBufferInfo 構造体へのポインター。デコーダーは、サーフェスの最小数と最大数、およびピクセル形式に関するデコーダーの要件をこの構造体に設定します。

サポートされているピクセル形式の一覧を取得するには、デコーダーは IAMVideoAccelerator::GetUncompFormatsSupported を呼び出す必要があります。

戻り値

インターフェイスの実装に依存する HRESULT 値を返します。HRESULT には、次の標準定数のいずれか、または一覧にないその他の値が含まれる場合があります。

戻り値のコード 説明
E_FAIL
失敗しました。
E_INVALIDARG
引数が無効です。
E_NOTIMPL
メソッドがサポートされていません。
E_POINTER
NULL ポインター引数です。
S_OK
成功しました。

解説(Remarks)

ビデオレンダラーは、非圧縮サーフェスを割り当てた後、デコーダーの IAMVideoAcceleratorNotify::SetUncompSurfacesInfo メソッドを呼び出します。

vtbl 4 HRESULT SetUncompSurfacesInfo(DWORD dwActualUncompSurfacesAllocated)

SetUncompSurfacesInfo メソッドは、作成された非圧縮サーフェスの数をデコーダーに通知します。

dwActualUncompSurfacesAllocatedDWORDin割り当てられたサーフェスの数。

戻り値

インターフェイスの実装に依存する HRESULT 値を返します。HRESULT には、次の標準定数のいずれか、または一覧にないその他の値が含まれる場合があります。

戻り値のコード 説明
E_FAIL
失敗しました。
E_INVALIDARG
引数が無効です。
E_NOTIMPL
メソッドがサポートされていません。
E_POINTER
NULL ポインター引数です。
S_OK
成功しました。

解説(Remarks)

ビデオレンダラーは、ビデオデコードのために非圧縮サーフェスを割り当てた後、このメソッドを呼び出します。

vtbl 5 HRESULT GetCreateVideoAcceleratorData(GUID* pGuid, DWORD* pdwSizeMiscData, void** ppMiscData)

GetCreateVideoAcceleratorData メソッドは、ビデオアクセラレーターオブジェクトの作成に必要な情報を取得します。

pGuidGUID*in使用中の DXVA プロファイルを指定する GUID へのポインター。
pdwSizeMiscDataDWORD*outppMiscData で返されるデータのサイズをバイト単位で受け取ります。
ppMiscDatavoid**outDXVA_ConnectMode 構造体を格納するバッファーへのポインターを受け取ります。デコーダーは、構造体のメモリを割り当てるために CoTaskMemAlloc を呼び出す必要があります。呼び出し元は、CoTaskMemFree を呼び出してメモリを解放する必要があります。

戻り値

インターフェイスの実装に依存する HRESULT 値を返します。HRESULT には、次の標準定数のいずれか、または一覧にないその他の値が含まれる場合があります。

戻り値のコード 説明
E_FAIL
失敗しました。
E_INVALIDARG
引数が無効です。
E_NOTIMPL
メソッドがサポートされていません。
E_POINTER
NULL ポインター引数です。
S_OK
成功しました。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IAMVideoAcceleratorNotify "{256A6A21-FBAD-11D1-82BF-00A0C9696C8F}"
#usecom global IAMVideoAcceleratorNotify IID_IAMVideoAcceleratorNotify "{}"
#comfunc global IAMVideoAcceleratorNotify_GetUncompSurfacesInfo          3 var,var
#comfunc global IAMVideoAcceleratorNotify_SetUncompSurfacesInfo          4 int
#comfunc global IAMVideoAcceleratorNotify_GetCreateVideoAcceleratorData  5 var,var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。