IXAPO::P rocess メソッド (xapo.h)
指定された入出力バッファーで XAPO のデジタル信号処理 (DSP) コードを実行します。
構文
void Process(
[in] UINT32 InputProcessParameterCount,
[in] const XAPO_PROCESS_BUFFER_PARAMETERS *pInputProcessParameters,
[in] UINT32 OutputProcessParameterCount,
[in, out] XAPO_PROCESS_BUFFER_PARAMETERS *pOutputProcessParameters,
BOOL IsEnabled
);
パラメーター
[in] InputProcessParameterCount
pInputProcessParameters 内の要素の数。
[in] pInputProcessParameters
XAPO_PROCESS_BUFFER_PARAMETERS構造体の入力配列。
[in] OutputProcessParameterCount
pOutputProcessParameters 内の要素の数。
[in, out] pOutputProcessParameters
XAPO_PROCESS_BUFFER_PARAMETERS構造体の出力配列。 入力時に、 XAPO_PROCESS_BUFFER_PARAMETERSの値。 ValidFrameCount は、XAPO が出力バッファーに書き込むフレーム数を示します。 出力時に、 XAPO_PROCESS_BUFFER_PARAMETERSの値。 ValidFrameCount は、書き込まれたフレームの実際の数を示します。
IsEnabled
通常どおりに処理する場合は TRUE。FALSE を指定すると、スルー処理されます。 詳細については、「解説」を参照してください。
戻り値
なし
解説
関数はリアルタイムオーディオ処理スレッドから呼び出されるため、この関数の実装はブロックしないでください。
形式の検証やメモリ割り当てなど、遅延を引き起こす可能性のあるすべてのコードは、リアルタイムオーディオ処理スレッドから呼び出されない IXAPO::LockForProcess メソッドに配置する必要があります。
インプレース処理の場合、 pInputProcessParameters パラメーターは必ずしも pOutputProcessParameters と同じとは限りません。 代わりに、 pBuffer メンバーは同じメモリを指します。
インプレース XAPOs では複数の入力バッファーと出力バッファーを使用できますが、入力バッファー数は出力バッファー数と等しい必要があります。 複数の入力バッファーと出力バッファーを使用する場合のインプレース処理の場合、XAPO は入力バッファーの数が出力バッファーの数と等しいと見なす場合があります。
XAPO は、出力バッファーへの書き込みに加えて、出力ストリームのバッファー フラグと有効なフレーム数を設定する必要があります。
IsEnabled が FALSE の場合、XAPO は、指定された入出力バッファーに通常の処理を適用しないでください。 代わりに、可能な限り変更を加えずに入力から出力にデータを渡す必要があります。 書式変換を実行する効果は、引き続き行う必要があります。 エフェクトは、通常の処理とスルー処理の間の遷移が信号に不連続性を導入しないことを保証する必要があります。
Process メソッドを記述するときは、XAudio2 オーディオ データがインターリーブされていることに注意することが重要です。これは、各チャネルからのデータが特定のサンプル番号に対して隣接することを意味します。 たとえば、XAudio2 ソース音声に 4 チャネルの波が再生されている場合、オーディオ データはチャネル 0 のサンプル、チャネル 1 のサンプル、チャネル 2 のサンプル、チャネル 3 のサンプル、チャネル 0、1、2、3 などの次のサンプルになります。
プラットフォームの要件
Windows 10 (XAudio2.9);Windows 8、Windows Phone 8 (XAudio 2.8);DirectX SDK (XAudio 2.7)要件
対象プラットフォーム | Windows |
ヘッダー | xapo.h |