다음을 통해 공유


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바이트를 차지하며 다음 표와 같이 정렬됩니다.

바이트 오디오 데이터
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 포함)

참고 항목

KSPROPERTY_AUDIO_CHANNEL_CONFIG

WAVEFORMATEXTENSIBLE