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 멤버는 동일한 메모리를 가리킵니다.
입력 버퍼 수는 출력 버퍼 수와 같아야 하지만 여러 입력 및 출력 버퍼를 현재 위치 XAPO와 함께 사용할 수 있습니다. 여러 입력 및 출력 버퍼를 사용하는 경우 현재 위치 처리의 경우 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 |