DirectShow DirectShow 의 사용법 오디오 캡춰 오디오 캡춰 프로퍼티의 설정   [목차열람] [주소복사] [슬롯비우기]
오디오 캡춰 프로퍼티의 설정
 
Microsoft DirectX 9.0

오디오 캡춰 프로퍼티의 설정

오디오 캡춰 필터의 각 입력 핀은 IAMAudioInputMixer 인터페이스를 공개한다. 이 인터페이스를 사용해, 특정의 입력을 유효 또는 무효로 하려면 , 핀에 대해서 IAMAudioInputMixer::put_Enable 메서드를 호출한다. 또, 저음역부, 고음역부, 볼륨 레벨 등, 입력의 프로퍼티를 설정하는 경우도, 이 인터페이스를 사용한다. 동시에 복수의 입력을 캡춰 하는 경우는, 필터 자체의 IAMAudioInputMixer 인터페이스를 사용해 전체의 저음역부, 고음역부, 볼륨 레벨을 제어할 수 있다.

캡춰에 이용할 수 있는 샘플링 레이트와 오디오 포맷은, 드라이버에 의해 결정된다. 이용할 수 있는 샘플링 레이트와 포맷을 열거해, 필요한 포맷을 설정하려면 , 오디오 캡춰 필터의 출력 핀 위에의 IAMStreamConfig 인터페이스를 사용한다. 필터는, 출력 핀의 미디어 타입을 받아들이는 임의의 필터에, 다운 스트림을 접속할 수 있다.

또, 오디오 캡춰 필터는 IAMBufferNegotiation 인터페이스도 공개한다. 이 인터페이스는 오디오 프리뷰에 있어서의 지연 시간량을 제어할 경우에 도움이 된다. 디폴트에서는, 오디오 캡춰 필터는 0.5 초의 버퍼 사이즈를 사용한다. 이 버퍼 사이즈는 캡춰용으로 최적화되고 있지만, 프리뷰에 0.5 초의 지연이 생기게 된다. 지연 시간을 줄이려면 , 오디오 캡춰 필터의 출력 핀을 접속하기 전에 IAMBufferNegotiation::SuggestAllocatorProperties 메서드를 호출한다. 이 메서드는 ALLOCATOR_PROPERTIES 구조체의 포인터를 받는다. 버퍼 사이즈를 바이트 단위로 지정하려면 ,cbBuffer 멤버를 사용한다. 보통은 80 밀리 세컨드의 버퍼가 안전하지만, 30 ~ 40 밀리 세컨드의 버퍼에서도 충분한 일이 있다. 버퍼가 너무 작으면 음질은 저하한다.

↑TOP