IXAPO::LockForProcess 方法 (xapo.h)
由 XAudio2 调用以锁定 XAPO 的输入和输出配置,允许它在实时线程上调用 Process 之前执行任何最终初始化。
语法
HRESULT LockForProcess(
UINT32 InputLockedParameterCount,
const XAPO_LOCKFORPROCESS_PARAMETERS *pInputLockedParameters,
UINT32 OutputLockedParameterCount,
const XAPO_LOCKFORPROCESS_PARAMETERS *pOutputLockedParameters
);
参数
InputLockedParameterCount
ppInputLockedParameters 中的元素数。 必须在 XAPO_REGISTRATION_PROPERTIES内。MinInputBufferCount 和 XAPO_REGISTRATION_PROPERTIES。传递给 CXAPOBase::CXAPOBase 的 MaxInputBufferCount 值。
pInputLockedParameters
输入 XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS 结构的数组。 如果 InputLockedParameterCount 为 0,pInputLockedParameters 可能为 NULL,否则它必须具有 InputLockedParameterCount 元素。
OutputLockedParameterCount
ppOutputLockedParameters 中的元素数。 必须在 XAPO_REGISTRATION_PROPERTIES内。MinOutputBufferCount 和 XAPO_REGISTRATION_PROPERTIES。传递给 CXAPOBase::CXAPOBase 的 MaxOutputBufferCount 值。 如果在 XAPO_REGISTRATION_PROPERTIES 中指定了 XAPO_FLAG_BUFFERCOUNT_MUST_MATCH标志。然后 OutputLockedParameterCount 的标志必须等于 InputLockedParameterCount。
pOutputLockedParameters
输出 XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS 结构的数组。 如果 OutputLockedParameterCount 为 0,pOutputLockedParameters 可能为 NULL,否则它必须具有 OutputLockedParameterCount 元素。
返回值
如果成功,则返回S_OK,否则返回错误代码。
注解
锁定后,输入和输出配置以及任何其他锁定参数将保持不变,直到调用 UnLockForProcess 。 锁定 XAPO 后,在调用 UnLockForProcess 函数之前,对 LockForProcess 的进一步调用不起作用。
XAPO 指示它通过 IsInputFormatSupported 和 IsOutputFormatSupported 方法的实现支持哪些特定格式。 XAPO 应断言输入和输出配置受支持,并且任何所需的特定于效果的初始化都已完成。 在调用此方法之前,应根据需要使用 IsInputFormatSupported、 IsOutputFormatSupported 和 Initialize 方法。
由于 Process 是一种非阻塞方法,因此 Process 所需的所有内部内存缓冲区都应在 LockForProcess 中分配。
在 LockForProcess 成功返回之前,永远不会调用进程。
LockForProcess 由 XAudio2 直接调用,不应由客户端代码调用。
平台要求
Windows 10 (XAudio2.9) ;Windows 8、Windows Phone 8 (XAudio 2.8) ;DirectX SDK (XAudio 2.7)要求
目标平台 | Windows |
标头 | xapo.h |