Skip to main content

GetShapeDmaNumChannels

DMA(Direct Memory Access) 오디오 버퍼의 채널 수를 가져옵니다.

Syntax

Parameters

context   _In_
Type: SHAPE_DMA_CONTEXT*
SHAPE_DMA_CONTEXT 구조체에 대한 포인터입니다.

Return value

Type: UINT32 채널 수입니다.

Remarks

DMA 시스템은 부동 소수점-정수 및 정수-부동 소수점 자동 변환을 사용하여 읽기 및 쓰기 기능을 지원합니다. DMA 시스템은 128개 샘플 블록 단위로 디인터리브된 샘플을 포함하는 순환 버퍼를 사용합니다. DMA 프로세서를 통해 SHAPE(Scalable Hardware Audio Processing Engine)는 믹스 버퍼에서 메인 시스템 메모리로 데이터를 전송하고, 추가 처리를 위해 메인 시스템에서 믹스 버퍼로 데이터를 가져올 수 있습니다. DMA는 블록 단위로 수행되며, 한 번에 오디오 프레임 하나 분량의 데이터를 전송합니다. 블록 인터리브된 데이터를 지원하기 위해, 스킵 값은 샘플을 읽거나 쓸 때 시스템 메모리에서 (기준 주소로부터) 건너뛸 오디오 프레임 블록의 수를 지정합니다. 따라서 멀티채널 스트림은 채널당 하나의 DMA 컨텍스트가 필요합니다. 오디오 데이터 샘플은 항상 SHAPE_DMA_CONTEXT 구조체의 floatConvert 플래그에 지정된 대로 정수 또는 부동 소수점 형식의 32비트 값으로 읽고 씁니다. DMA의 방향(읽기 또는 쓰기)은 DMA 컨텍스트가 아니라 DMA 명령에서 지정된다는 점에 유의하십시오. 이렇게 하면 데이터 대역폭 소모를 줄이는 데 도움이 됩니다. DMA 엔진은 신호 처리는 수행하지 않지만 부동 소수점-정수 변환(또는 정수-부동 소수점 변환)은 수행할 수 있습니다. 이를 통해 애플리케이션 CPU가 부동 소수점 형식으로 데이터 샘플을 처리할 수 있습니다. DMA 버퍼의 크기를 계산하려면 다음 공식을 사용하십시오:
읽기 및 쓰기 포인터는 다음과 같이 증가합니다:
오디오 버퍼 내의 주소는 다음과 같이 계산됩니다:

Requirements

Header: shapedmacontext.h Supported platforms: XBOX One 계열 콘솔 및 XBOX Series 콘솔

See also

SHAPE_DMA_CONTEXT
ShapeDmaContext
마지막 수정일 2026년 8월 24일