Win32 API 日本語リファレンス
ホームMedia.Audio.Apo › IAudioProcessingObjectRT

IAudioProcessingObjectRT

COM
IID9e1d6a6d-ddbc-4e95-a4c7-ad64ba37846c継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

このインターフェイスはリアルタイムモードで動作でき、そのメソッドはリアルタイム処理スレッドから呼び出すことができます。

メソッド 3

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

vtbl 3 void APOProcess(DWORD u32NumInputConnections, APO_CONNECTION_PROPERTY** ppInputConnections, DWORD u32NumOutputConnections, APO_CONNECTION_PROPERTY** ppOutputConnections)

APOProcess メソッドは、APO に処理パスを実行させます。

u32NumInputConnectionsDWORDinこの APO にアタッチされている入力接続の数。
ppInputConnectionsAPO_CONNECTION_PROPERTY**in入力接続プロパティ構造体の配列。入力接続ごとに 1 つの構造体があります。
u32NumOutputConnectionsDWORDinこの APO にアタッチされている出力接続の数。
ppOutputConnectionsAPO_CONNECTION_PROPERTY**inout出力接続プロパティ構造体の配列。出力接続ごとに 1 つの構造体があります。

戻り値

なし

リターンコード 説明

解説(Remarks)

APOProcess メソッドは、ppOutputConnections 配列内のデータを変更してはなりません。ただし、処理後に出力接続のプロパティを設定する必要があります。

APOProcess メソッドはリアルタイム処理スレッドから呼び出されます。このメソッドの実装は、ページ可能メモリにアクセスしてはならず、システムのブロッキングルーチンを呼び出すべきではありません。

このメソッドの実装の詳細については、Swap サンプルコードを参照し、Swapapolfx.cpp ファイルを確認してください。

vtbl 4 DWORD CalcInputFrames(DWORD u32OutputFrameCount)

CalcInputFrames メソッドは、指定された数の出力フレームを生成するために APO が必要とする入力フレームの数を返します。

u32OutputFrameCountDWORDin出力フレームの数を表すカウントです。

戻り値

CalcInputFrames メソッドは、指定された数の出力フレームを生成するために必要な入力フレームの数を返します。

リターンコード 説明

解説(Remarks)

CalcInputFrames メソッドはリアルタイム処理スレッドから呼び出されます。このメソッドの実装は、ページ可能メモリにアクセスしてはならず、システムのブロッキングルーチンを呼び出すべきではありません。

vtbl 5 DWORD CalcOutputFrames(DWORD u32InputFrameCount)

CalcOutputFrames メソッドは、指定された数の入力フレームに対して APO が必要とする出力フレームの数を返します。

u32InputFrameCountDWORDin入力フレームの数を表すカウントです。

戻り値

CalcOutputFrames メソッドは、指定された数の入力フレームに対して APO が生成する出力フレームの数を返します。

リターンコード 説明

解説(Remarks)

CalcOutputFrames メソッドはリアルタイム処理スレッドから呼び出すことができます。このメソッドの実装は、ブロックしたりページ可能メモリにアクセスしたりしてはならず、システムのブロッキングルーチンを呼び出すべきではありません。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IAudioProcessingObjectRT "{9E1D6A6D-DDBC-4E95-A4C7-AD64BA37846C}"
#usecom global IAudioProcessingObjectRT IID_IAudioProcessingObjectRT "{}"
#comfunc global IAudioProcessingObjectRT_APOProcess        3 int,var,int,var
#comfunc global IAudioProcessingObjectRT_CalcInputFrames   4 int
#comfunc global IAudioProcessingObjectRT_CalcOutputFrames  5 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。