ホーム › Media.MediaFoundation › IMFVideoCaptureSampleAllocator
IMFVideoCaptureSampleAllocator
COM公式ドキュメント
ビデオキャプチャデバイス向けの特殊な機能を備えた、ビデオメディアシンク用のビデオサンプルを割り当てます。
解説(Remarks)
このインターフェイスは IMFVideoSampleAllocator を継承し、ビデオキャプチャのシナリオに関連するパラメーターを持つ InitializeCaptureSampleAllocator メソッドを提供します。
メソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 7 HRESULT InitializeCaptureSampleAllocator(DWORD cbSampleSize, DWORD cbCaptureMetadataSize, DWORD cbAlignment, DWORD cMinimumSamples, IMFAttributes* pAttributes, IMFMediaType* pMediaType)
ビデオキャプチャのシナリオに関連するパラメーターを使用して、サンプルアロケーターを初期化します。
| cbSampleSize | DWORD | in | サンプルサイズをバイト単位で指定する DWORD です。アロケーターが実際に使用するサンプルサイズは、pMediaType が必要とするサイズと cbSampleSize のうち大きい方になります。 |
| cbCaptureMetadataSize | DWORD | in | キャプチャメタデータのサイズをバイト単位で指定する DWORD です。キャプチャされたフレームに追加のメタデータを含めたい呼び出し元にのみ適用されます。メタデータサイズには、メタデータペイロード自体のサイズに加えて、KSCAMERA_METADATA_ITEMHEADER のサイズを含める必要があります。 |
| cbAlignment | DWORD | in | バッファーのアライメントサイズをバイト単位で指定する DWORD です。既定かつ最小のアライメントサイズは 4KB です。4KB 未満のカスタムアライメントサイズは 4KB として扱われます。 |
| cMinimumSamples | DWORD | in | 事前割り当てするサンプルの最小数を指定する DWORD です。アロケーターが指定された最小数のサンプルを事前割り当てできない場合、このメソッドは失敗します。 |
| pAttributes | IMFAttributes* | inoptional | 省略可能です。サンプルアロケーター向けの追加の構成属性を保持する IMFAttributes ストアです。サポートされている属性は次のとおりです。 |
| pMediaType | IMFMediaType* | in | サンプルを割り当てる対象のメディアタイプを指定する IMFMediaType です。サンプルアロケーターは、このパラメーターを使用してメディアサンプルに必要な最小サイズを計算します。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれますが、これらに限定されません。
| リターンコード | 説明 |
|---|---|
| S_OK | メソッドは成功しました。 |
| MF_E_INVALIDMEDIATYPE | メディアタイプが無効です。 |
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IMFVideoCaptureSampleAllocator "{725B77C7-CA9F-4FE5-9D72-9946BF9B3C70}"
#usecom global IMFVideoCaptureSampleAllocator IID_IMFVideoCaptureSampleAllocator "{}"
#comfunc global IMFVideoCaptureSampleAllocator_InitializeCaptureSampleAllocator 7 int,int,int,int,sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。