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 의해 정의됩니다. 스피커의 기하학적 레이아웃은 다음 그림에 나와 있습니다. 이 그림에서는 전면 왼쪽, 오른쪽 앞, 전면 중심, 왼쪽 및 오른쪽 스피커의 위치를 보여 줍니다. 이 그림은 비방향이기 때문에 저주파 스피커를 생략합니다.
이 예제의 경우 다음 목록에서는 오디오 데이터의 각 블록 내에 있는 6개 채널의 순서를 보여 줍니다.
SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_SIDE_LEFT
SPEAKER_SIDE_RIGHT
16비트 샘플 크기의 PCM 형식의 경우 오디오 데이터의 각 블록은 12바이트를 차지하며 다음 표와 같이 순서가 지정됩니다.
Byte | 오디오 데이터 |
---|---|
0 | 왼쪽 앞면(8LSB) |
1 | 왼쪽 앞면(8MB) |
2 | 오른쪽 앞면(8LSB) |
3 | 오른쪽 앞면(8MB) |
4 | 프런트 센터(8LSB) |
5 | 프런트 센터(8MB) |
6 | 낮은 프레크(8LSB) |
7 | 낮은 Freq(8MB) |
8 | 왼쪽 측면(8LSB) |
9 | 왼쪽 측면(8MB) |
10 | 오른쪽 측면(8LSB) |
11 | 오른쪽 측면(8MB) |
요구 사항
요구 사항 | 값 |
---|---|
헤더 | ksmedia.h(Ksmedia.h 포함) |