다음을 통해 공유


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개 채널의 순서를 보여 줍니다.

  1. SPEAKER_FRONT_LEFT

  2. SPEAKER_FRONT_RIGHT

  3. SPEAKER_FRONT_CENTER

  4. SPEAKER_LOW_FREQUENCY

  5. SPEAKER_SIDE_LEFT

  6. 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 포함)

추가 정보

KSPROPERTY_AUDIO_CHANNEL_CONFIG

WAVEFORMATEXTENSIBLE