다음을 통해 공유


KSPROPERTY_RTAUDIO_POSITIONREGISTER

KSPROPERTY_RTAUDIO_POSITIONREGISTER 속성은 특정 스트림에 대한 오디오 디바이스의 위치 레지스터를 클라이언트가 액세스할 수 있는 가상 메모리 위치에 매핑합니다.

다음 표에는 이 속성의 기능이 요약되어 있습니다.

사용량 요약 테이블

가져오기 설정 대상 속성 설명자 형식 속성 값 형식

Pin

KSRTAUDIO_HWREGISTER_PROPERTY

KSRTAUDIO_HWREGISTER

속성 설명자(instance 데이터)는 KSPROPERTY 구조를 포함하는 KSRTAUDIO_HWREGISTER_PROPERTY 구조체입니다. 요청을 보내기 전에 클라이언트는 레지스터의 기본 기본 주소를 나타내는 값으로 구조를 로드합니다.

속성 값(작업 데이터)은 속성 처리기가 하드웨어 위치 레지스터를 매핑한 가상 주소를 쓰는 KSRTAUDIO_HWREGISTER 구조체입니다. 클라이언트는 이 주소에서 레지스터를 직접 읽을 수 있습니다. 또한 KSRTAUDIO_HWREGISTER 구조체는 위치 레지스터 자체가 증가되는 속도도 지정합니다.

반환 값

KSPROPERTY_RTAUDIO_POSITIONREGISTER 속성 요청은 STATUS_SUCCESS 반환하여 성공적으로 완료되었음을 나타냅니다. 그렇지 않으면 요청이 코드에 상태 적절한 오류를 반환합니다.

설명

일반적으로 오디오 애플리케이션은 오디오 스트림의 현재 위치를 모니터링해야 합니다. 이 위치는 스트림의 시작 부분에서 바이트 오프셋으로 지정됩니다.

  • 렌더링 스트림의 경우 스트림의 위치는 현재 DAC(디지털-아날로그 변환기)를 통해 재생 중인 오디오 프레임의 바이트 오프셋입니다.

  • 캡처 스트림의 경우 스트림의 위치는 현재 ADC(아날로그-디지털 변환기)를 통해 기록되는 오디오 프레임의 바이트 오프셋입니다.

일부 오디오 디바이스에는 스트림이 실행되는 동안 지속적으로 증가되는 위치 레지스터가 포함되어 있습니다. 모든 디지털 및 아날로그 함수를 단일 칩에 통합하는 오디오 디바이스의 경우 위치 레지스터는 일반적으로 현재 스트림 위치를 직접 나타냅니다.

그러나 디지털 및 아날로그 함수를 별도의 버스 컨트롤러 및 코덱 칩으로 나누는 칩셋의 경우 위치 레지스터는 일반적으로 버스 컨트롤러 칩에 있으며 다음을 나타냅니다.

  • 렌더링 스트림의 경우 위치 레지스터는 버스 컨트롤러가 코덱에 쓴 마지막 오디오 프레임의 바이트 오프셋을 나타냅니다.

  • 캡처 스트림의 경우 위치 레지스터는 버스 컨트롤러가 코덱에서 읽은 마지막 오디오 프레임의 바이트 오프셋을 나타냅니다.

두 경우 모두 위치 레지스터 값에는 코덱을 통한 지연이 포함되지 않습니다. 클라이언트가 코덱 지연을 결정한 경우 위치 레지스터 값에 이 지연을 추가하여 실제 스트림 위치(DAC 또는 ADC)를 예측할 수 있습니다. 코덱을 통한 최악의 지연을 지정하는 CodecDelay 값의 경우 KSPROPERTY_RTAUDIO_HWLATENCY 속성을 쿼리할 수 있습니다.

성공하면 KSPROPERTY_RTAUDIO_POSITIONREGISTER 속성 요청은 클라이언트에서 지정한 대로 사용자 모드 또는 커널 모드에서 클라이언트가 액세스할 수 있는 가상 메모리 주소에 위치 레지스터를 매핑합니다. 그 후 클라이언트는 이 주소에서 읽어 위치 레지스터의 현재 값을 가져옵니다.

오디오 하드웨어가 가상 주소에 매핑할 수 있는 위치 레지스터를 지원하지 않으면 속성 요청이 실패합니다. 이 경우 클라이언트는 KSPROPERTY_AUDIO_POSITION 속성의 위치를 결정해야 합니다.

핀이 닫히면 위치 레지스터의 매핑이 제거됩니다. 클라이언트는 열린 핀의 수명 동안 레지스터를 한 번만 매핑할 수 있으며 핀에 대한 위치 레지스터를 다시 매핑하기 위한 후속 호출은 실패합니다.

일반적으로 사용자 모드 클라이언트에 대한 사용자 모드와 커널 모드 간의 전환이 필요한 KSPROPERTY_AUDIO_POSITION 요청을 보내는 것보다 위치 레지스터를 읽는 것이 더 빠릅니다.

요구 사항

Version

Windows Vista 이상 Windows 운영 체제에서 사용할 수 있습니다.

헤더

Ksmedia.h

참고 항목

KSPROPERTY

KSRTAUDIO_HWREGISTER

KSRTAUDIO_HWREGISTER_PROPERTY

KSPROPERTY_AUDIO_POSITION

KSPROPERTY_RTAUDIO_HWLATENCY