Windows Vista 오디오 엔진 살펴보기
이 항목에서는 Windows Vista 오디오 엔진에 대한 개요를 제공합니다. API와 SAPO가 함께 작동하는 방식을 이해하는 데 도움이 되는 개념에 중점을 둡니다.
다음 다이어그램은 오디오 엔진의 내부 구조의 간소화된 레이아웃을 제공합니다.
다이어그램에서 알 수 있듯이 시스템 제공 API 및 SAPO는 오디오 엔진의 기본 구성 요소입니다. 오디오 엔진은 시스템에서 제공하는 API 및 SAPO를 파이프라는 구성 요소로 구성합니다. 오디오 엔진에는 두 가지 유형의 파이프가 있습니다.
스트림 파이프는 단일 애플리케이션에서 스트림에 로컬인 디지털 오디오 처리를 수행하는 API 및 SAPO로 구성됩니다. 이 유형의 파이프에서 sAPO를 로컬 효과 sAPO(LFX sAPO)라고 합니다.
디바이스 파이프는 전 세계 모든 스트림에 영향을 주는 디지털 오디오 처리를 수행하는 API 및 SAPO로 구성됩니다. 이 유형의 파이프에서 sAPO를 전역 효과 sAPO(GFX sAPO)라고 합니다.
다음 표에서는 Windows Vista 오디오 엔진에서 사용할 수 있는 sAPO 및 적용되는 시스템 효과 유형을 보여 줍니다.
Windows Vista sAPO | 시스템 효과 |
---|---|
베이스 부스트 |
LFX |
베이스 관리 |
LFX |
음량 균등화 |
LFX |
저주파 보호 |
LFX |
스피커 채우기 |
LFX |
스피커 가상화 |
LFX |
가상 서라운드 |
LFX |
헤드폰을 통해 가상화된 서라운드 |
LFX |
휴대용 컴퓨터의 향상된 사운드 |
Gfx |
방 수정 |
Gfx |
오디오 애플리케이션이 오디오 처리를 시작하면 오디오 엔진은 시스템에서 제공하는 API 및 SAPO를 오디오 그래프로 구성하여 디지털 오디오 데이터를 처리합니다. 오디오 엔진이 오디오 그래프를 빌드하는 데 사용하는 메커니즘은 시스템 세부 정보이며 논의되지 않습니다.
오디오 애플리케이션은 공유 모드 또는 전용 모드에서 연결을 시작할 수 있습니다. 기본 SAPO 집합은 Windows Vista와 함께 설치되지만 SAPO는 시스템 구성 요소로 간주되지 않으므로 사용자 지정할 수 있습니다.
공유 모드
공유 모드에서 오디오 애플리케이션은 다른 프로세스에서 실행되는 다른 오디오 애플리케이션과 오디오 하드웨어를 공유합니다. 오디오 엔진은 이러한 애플리케이션의 스트림을 혼합하고 하드웨어를 통해 결과 혼합을 재생합니다. 공유 모드에서 스트림을 여는 모든 애플리케이션은 오디오 엔진에서 사용하는 혼합 형식을 선택해야 합니다. 공유 모드를 사용하는 장점은 Windows Vista 오디오 엔진이 필요한 지원 기능을 제공하는 기본 제공 APO(오디오 처리 개체)를 제공한다는 것입니다. 공유 모드를 사용하는 단점은 오디오 스트림 대기 시간이 배타적 모드보다 높다는 것입니다. 다음 코드 예제에서는 공유 모드에서 오디오 스트림을 초기화하기 위한 구문을 보여줍니다.
hResult = pAudioClient->Initialize(
AUDCLNT_SHAREMODE_SHARED,
0,
0,
0,
pWfx,
&m_SubmixGuid);
전용 모드
반면, 애플리케이션이 단독 모드로 스트림을 열면 애플리케이션은 오디오 하드웨어에 대한 단독 액세스 권한을 줍니다. 이 모드에서 애플리케이션은 엔드포인트에서 지원하는 오디오 형식을 선택할 수 있습니다. 전용 모드를 사용할 경우의 장점은 오디오 스트림 대기 시간이 공유 모드보다 낮다는 것입니다. 전용 모드를 사용하는 단점은 오디오 엔진의 지원 기능을 처리하기 위해 고유한 APO를 제공해야 한다는 것입니다. 소수의 전문 수준 애플리케이션만 이 작업 모드가 필요합니다. 다음 코드 예제에서는 전용 모드에서 오디오 스트림을 초기화하기 위한 구문을 보여줍니다.
hResult = pAudioClient->Initialize(
AUDCLNT_SHAREMODE_EXCLUSIVE,
0,
0,
0,
pWfxEx,
&m_SubmixGuid);
애플리케이션이 오디오 처리를 시작한 후 그래프 작성기에서 SAPO를 오디오 그래프로 구성하고 SAPO를 초기화합니다. 그런 다음 오디오 서비스는 LFX APO와 협상하여 APO의 입력 및 출력에서 오디오 데이터의 형식을 설정합니다. 자세한 내용은 형식 협상을 참조하세요.