KSAUDIO_CHANNEL_CONFIG 구조체(ksmedia.h)
KSAUDIO_CHANNEL_CONFIG 구조는 오디오 스트림의 데이터 형식 내에서 채널의 구성을 지정합니다.
통사론
typedef struct {
LONG ActiveSpeakerPositions;
} KSAUDIO_CHANNEL_CONFIG, *PKSAUDIO_CHANNEL_CONFIG;
회원
ActiveSpeakerPositions
채널 수와 해당 채널을 화자 위치에 할당하는 것을 모두 지정합니다. 이 멤버는 마스크 내의 각 비트가 특정 화자 위치에 해당하는 비트 마스크입니다. 마스크 비트가 설정된 경우 오디오 스트림에는 마스크 비트가 나타내는 스피커 위치에 할당된 채널이 포함됩니다. 스트림의 채널 수는 비트 마스크에 표시되는 수 수를 계산하여 가져옵니다. 자세한 내용은 다음 설명 섹션을 참조하세요.
발언
이 구조는 KSPROPERTY_AUDIO_CHANNEL_CONFIG 속성에 대한 데이터 값을 설정하거나 가져오는 데 사용됩니다.
다음 표에서는 ActiveSpeakerPositions 멤버에 대해 정의된 플래그 비트를 보여 줍니다.
화자 위치 | 플래그 비트 |
---|---|
SPEAKER_FRONT_LEFT | 0x1 |
SPEAKER_FRONT_RIGHT | 0x2 |
SPEAKER_FRONT_CENTER | 0x4 |
SPEAKER_LOW_FREQUENCY | 0x8 |
SPEAKER_BACK_LEFT | 0x10 |
SPEAKER_BACK_RIGHT | 0x20 |
SPEAKER_FRONT_LEFT_OF_CENTER | 0x40 |
SPEAKER_FRONT_RIGHT_OF_CENTER | 0x80 |
SPEAKER_BACK_CENTER | 0x100 |
SPEAKER_SIDE_LEFT | 0x200 |
SPEAKER_SIDE_RIGHT | 0x400 |
SPEAKER_TOP_CENTER | 0x800 |
SPEAKER_TOP_FRONT_LEFT | 0x1000 |
SPEAKER_TOP_FRONT_CENTER | 0x2000 |
SPEAKER_TOP_FRONT_RIGHT | 0x4000 |
SPEAKER_TOP_BACK_LEFT | 0x8000 |
SPEAKER_TOP_BACK_CENTER | 0x10000 |
SPEAKER_TOP_BACK_RIGHT | 0x20000 |
각 오디오 데이터 형식에는 이전 스피커 위치 중 하나 이상에 대한 채널이 포함되어 있습니다. 채널 수는 ActiveSpeakerPositions 멤버의 0이 아닌 플래그 비트 수와 같습니다.
오디오 데이터의 각 블록 내에 있는 채널의 상대 위치는 항상 이전 표의 플래그 비트와 동일한 상대 순서를 따릅니다. 예를 들어 ActiveSpeakerPositions 값 0x00000033 포함하는 경우 형식은 각각 왼쪽, 앞, 오른쪽, 뒤로, 오른쪽 스피커에 재생하도록 할당된 4개의 오디오 채널을 정의합니다. 채널 데이터는 각 블록 내에서 해당 순서대로 인터리브되어야 합니다. (다음 두 테이블 중 두 번째 테이블에 표시되는 KSAUDIO_SPEAKER_QUAD 구성입니다.)
다음 표에서는 DVD에 대해 정의된 화자 구성을 보여 줍니다.
구성 | 화자 위치 |
---|---|
KSAUDIO_SPEAKER_GROUND_FRONT_LEFT | SPEAKER_FRONT_LEFT |
KSAUDIO_SPEAKER_GROUND_FRONT_CENTER | SPEAKER_FRONT_CENTER |
KSAUDIO_SPEAKER_GROUND_FRONT_RIGHT | SPEAKER_FRONT_RIGHT |
KSAUDIO_SPEAKER_GROUND_REAR_LEFT | SPEAKER_BACK_LEFT |
KSAUDIO_SPEAKER_GROUND_REAR_RIGHT | SPEAKER_BACK_RIGHT |
KSAUDIO_SPEAKER_TOP_MIDDLE | SPEAKER_TOP_CENTER |
KSAUDIO_SPEAKER_SUPER_WOOFER | SPEAKER_LOW_FREQUENCY |
다음 표에서는 DirectSound에 대해 정의된 스피커 구성을 보여 줍니다.
구성 | 화자 위치 |
---|---|
KSAUDIO_SPEAKER_DIRECTOUT | 0(스피커 없음) |
KSAUDIO_SPEAKER_MONO | SPEAKER_FRONT_CENTER |
KSAUDIO_SPEAKER_STEREO | SPEAKER_FRONT_LEFT |
SPEAKER_FRONT_RIGHT | |
KSAUDIO_SPEAKER_QUAD | SPEAKER_FRONT_LEFT |
SPEAKER_FRONT_RIGHT | |
SPEAKER_BACK_LEFT | |
SPEAKER_BACK_RIGHT | |
KSAUDIO_SPEAKER_SURROUND | SPEAKER_FRONT_LEFT |
SPEAKER_FRONT_RIGHT | |
SPEAKER_FRONT_CENTER | |
SPEAKER_BACK_CENTER | |
KSAUDIO_SPEAKER_5POINT1 | SPEAKER_FRONT_LEFT |
SPEAKER_FRONT_RIGHT | |
SPEAKER_FRONT_CENTER | |
SPEAKER_LOW_FREQUENCY | |
SPEAKER_BACK_LEFT | |
SPEAKER_BACK_RIGHT | |
KSAUDIO_SPEAKER_5POINT1_SURROUND | SPEAKER_FRONT_LEFT |
SPEAKER_FRONT_RIGHT | |
SPEAKER_FRONT_CENTER | |
SPEAKER_LOW_FREQUENCY | |
SPEAKER_SIDE_LEFT | |
SPEAKER_SIDE_RIGHT | |
KSAUDIO_SPEAKER_7POINT1 | SPEAKER_FRONT_LEFT |
SPEAKER_FRONT_RIGHT | |
SPEAKER_FRONT_CENTER | |
SPEAKER_LOW_FREQUENCY | |
SPEAKER_BACK_LEFT | |
SPEAKER_BACK_RIGHT | |
SPEAKER_FRONT_LEFT_OF_CENTER | |
SPEAKER_FRONT_RIGHT_OF_CENTER | |
KSAUDIO_SPEAKER_7POINT1_SURROUND | SPEAKER_FRONT_LEFT |
SPEAKER_FRONT_RIGHT | |
SPEAKER_FRONT_CENTER | |
SPEAKER_LOW_FREQUENCY | |
SPEAKER_BACK_LEFT | |
SPEAKER_BACK_RIGHT | |
SPEAKER_SIDE_LEFT | |
SPEAKER_SIDE_RIGHT |
KSAUDIO_SPEAKER_7POINT1 스피커 구성은 사용되지 않으며 더 이상 지원되지 않습니다.
앞의 표에서 상수 KSAUDIO_SPEAKER_DIRECTOUT 값이 0이면 다중 채널 스트림의 채널에 스피커 위치가 할당되지 않습니다. 예를 들어 채널 0은 타악기를 나타내고 채널 1은 트럼펫을 나타내고 채널 2는 음성을 나타낼 수 있습니다. 이 구성에서 입력 스트림의 채널은 수정 없이 스피커 위치로 해석되지 않고 하드웨어에 직접 출력됩니다. 자세한 내용은 DSSPEAKER_DIRECTOUT Speaker Configuration참조하세요.
5.1 채널 서라운드 형식의 스피커 구성은 앞의 표에 있는 상수 KSAUDIO_SPEAKER_5POINT1_SURROUND 의해 정의됩니다. 다음 그림에서는 스피커의 기하학적 레이아웃을 보여 줍니다. 이 그림에서는 왼쪽 앞, 오른쪽 앞, 전면 중심, 왼쪽 및 오른쪽 스피커의 위치를 보여 줍니다. 이 그림은 비방향이기 때문에 주파수가 낮은 스피커를 생략합니다.
5.1 채널 서라운드 스피커 구성을 보여 주는
이 예제의 경우 다음 목록에서는 오디오 데이터의 각 블록 내에 있는 6개 채널의 순서를 보여 줍니다.
SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_SIDE_LEFT
SPEAKER_SIDE_RIGHT
16비트 샘플 크기의 PCM 형식의 경우 오디오 데이터의 각 블록은 12바이트를 차지하며 다음 표와 같이 정렬됩니다.
바이트 | 오디오 데이터 |
---|---|
0 | 왼쪽 앞면(8LSB) |
1 | 왼쪽 앞면(8MB) |
2 | 오른쪽 앞(8LSB) |
3 | 오른쪽 앞(8MB) |
4 | 프런트 센터(8LSB) |
5 | 프런트 센터(8MB) |
6 | 낮은 프레크(8LSB) |
7 | 낮은 프레크(8MB) |
8 | 왼쪽(8LSB) |
9 | 왼쪽(8MB) |
10 | 오른쪽 측면(8LSB) |
11 | 오른쪽 측면(8MB) |
요구 사항
요구 | 값 |
---|---|
헤더 | ksmedia.h(Ksmedia.h 포함) |