다음을 통해 공유


오디오 필터 그래프

KS 필터 그래프는 하나 이상의 데이터 스트림을 처리하기 위해 함께 연결된 KS 필터의 컬렉션입니다. 오디오 필터 그래프는 오디오 데이터 스트림을 처리하는 필터로 구성된 KS 필터 그래프입니다. 예를 들어 다음 그림은 오디오 렌더링 및 캡처를 수행하는 오디오 필터 그래프의 간소화된 다이어그램입니다.

렌더링 및 캡처를 위한 간단한 오디오 필터 그래프를 보여 주는 다이어그램

그림에서 필터 그래프는 두 웨이브 필터의 맨 위에 있는 핀에서 두 토폴로지 필터의 아래쪽에 있는 핀까지 확장됩니다. 사용자 모드 소프트웨어 모듈 및 외부 오디오 디바이스(즉, 스피커 및 마이크)는 그래프 외부에 있습니다.

그림의 아래쪽 절반에 있는 4개의 필터는 웨이브 스트림을 렌더링하고 캡처할 수 있는 오디오 어댑터의 하드웨어 디바이스를 나타냅니다. 그림에 표시된 각 필터는 포트 드라이버를 미니포트 드라이버에 바인딩하여 구현됩니다. 어댑터 드라이버는 WaveRT, WavePci 또는 WaveCyclic 포트 드라이버를 해당 WaveXxx 미니포트 드라이버에 바인딩하여 웨이브 필터를 형성합니다. 어댑터 드라이버는 토폴로지 포트 드라이버를 토폴로지 미니포트 드라이버에 바인딩하여 토폴로지 필터를 형성합니다.

그림의 왼쪽에서 DirectSound 또는 waveOut 애플리케이션(위쪽)의 오디오 스트림이 스피커(아래쪽)를 통해 재생됩니다. 오른쪽의 DirectSoundCapture 또는 waveIn 애플리케이션(위쪽)은 마이크(아래쪽)에서 입력된 스트림을 기록합니다. 양쪽에서 Windows Vista에서 시스템에 대한 혼합을 수행하는 오디오 엔진의 instance 웨이브 필터와 애플리케이션 사이에 교차됩니다. (Windows Server 2003, Windows XP, Windows 2000 및 Windows Me/98에서 KMixer 시스템 드라이버는 시스템 믹서입니다.)

오디오 엔진은 사용자 모드에서 실행되며 소스 및 싱크 핀에서 다양한 오디오 형식과 샘플 속도 간에 쉽게 변환할 수 있는 다용도 소프트웨어 필터입니다. 오디오 엔진은 일반적으로 하드웨어가 구성된 스트림 형식과 애플리케이션에 필요한 스트림 형식 간의 차이를 수용할 수 있습니다.

앞의 그림 아래쪽에서 스피커를 구동하는 원본 핀과 마이크 신호를 수신하는 싱크 핀은 브리지 핀으로 레이블이 지정됩니다. 브리지 핀은 필터 그래프와 외부 세계 사이의 경계를 연결합니다.

앞의 그림에서 각 웨이브 필터와 해당 토폴로지 필터 사이에 표시되는 데이터 경로는 일반적으로 물리적 연결을 나타냅니다. 소프트웨어에서 구성할 수 없는 오디오 어댑터의 고정된 하드웨어 연결입니다.

실제 연결이 있는 브리지 핀 또는 핀이 영구적으로 연결되므로 핀은 암시적으로 존재하며 인스턴스화하거나 삭제할 수 없습니다. 따라서 브리지 핀의 KSPROPSETID_Pin 속성에 대한 필터 개체를 쿼리할 수 있지만 IRP를 보낼 브리지 핀 개체(브리지 핀 인스턴스)는 없습니다. 실제 연결이 있는 핀에는 동일한 규칙이 적용됩니다.

브리지 핀 또는 물리적 연결을 통과하는 신호는 아날로그 또는 디지털일 수 있습니다.

예를 들어 앞의 그림에서 두 브리지 핀은 모두 아날로그 신호를 처리합니다. 왼쪽의 브리지 핀은 스피커를 구동하는 DAC(디지털-아날로그 변환기)에서 출력 신호를 전송합니다. 오른쪽의 브리지 핀은 마이크에서 신호를 수신하여 ADC(아날로그-디지털 변환기)로 들어갑니다. 그러나 브리지 핀은 오디오 디바이스의 S/PDIF 커넥터를 나타낼 수도 있습니다. 이 경우 브리지 핀을 통과하는 신호는 아날로그가 아닌 디지털입니다.