KSPROPERTY_RTAUDIO_POSITIONREGISTER

La propiedad KSPROPERTY_RTAUDIO_POSITIONREGISTER asigna el registro de posición de un dispositivo de audio para una secuencia determinada a una ubicación de memoria virtual a la que el cliente puede acceder.

En la tabla siguiente se resumen las características de esta propiedad.

Tabla de resumen de uso

Obtener Set Destino Tipo de descriptor de propiedad Tipo de valor de propiedad

No

Anclar

KSRTAUDIO_HWREGISTER_PROPERTY

KSRTAUDIO_HWREGISTER

El descriptor de propiedad (datos de instancia) es una estructura KSRTAUDIO_HWREGISTER_PROPERTY, que contiene una estructura KSPROPERTY . Antes de enviar la solicitud, el cliente carga la estructura con valores que indican la dirección base preferida para el registro.

El valor de propiedad (datos de operación) es una estructura KSRTAUDIO_HWREGISTER en la que el controlador de propiedades escribe la dirección virtual en la que ha asignado el registro de posición de hardware. El cliente puede leer directamente el registro de esta dirección. La estructura KSRTAUDIO_HWREGISTER también especifica la velocidad a la que se incrementa el registro de posición.

Valor devuelto

Una solicitud de propiedad KSPROPERTY_RTAUDIO_POSITIONREGISTER devuelve STATUS_SUCCESS para indicar que se ha completado correctamente. De lo contrario, la solicitud devuelve un código de estado de error adecuado.

Observaciones

Normalmente, las aplicaciones de audio deben supervisar la posición actual de una secuencia de audio. Esta posición se especifica como desplazamiento de bytes desde el principio de la secuencia:

  • En el caso de una secuencia de representación, la posición de la secuencia es el desplazamiento de bytes del fotograma de audio que se está reproduciendo actualmente a través de los convertidores digitales a analógicos (DAC).

  • En el caso de una secuencia de captura, la posición de la secuencia es el desplazamiento de bytes del fotograma de audio que se está grabando actualmente a través de los convertidores analógicos a digitales (ADC).

Algunos dispositivos de audio contienen registros de posición que aumentan continuamente mientras se ejecuta la secuencia. Para un dispositivo de audio que incorpora todas las funciones digitales y analógicas en un solo chip, el registro de posición suele indicar la posición de la secuencia actual directamente.

Sin embargo, para un conjunto de chips que divide las funciones digitales y analógicas en chips de códec y controlador de bus independientes, el registro de posición se encuentra normalmente en el chip de controlador de bus e indica lo siguiente:

  • En el caso de una secuencia de representación, el registro de posición indica el desplazamiento de bytes del último fotograma de audio que escribió el controlador de bus en el códec.

  • En el caso de una secuencia de captura, el registro de posición indica el desplazamiento de bytes del último fotograma de audio que el controlador de bus leyó desde el códec.

En ambos casos, el valor de registro de posición no incluye el retraso a través del códec. Si el cliente ha determinado el retraso del códec, puede agregar este retraso al valor de registro de posición para calcular la posición de secuencia verdadera (en los CÓD O ADC). Para un valor codecDelay que especifica el retraso en el peor de los casos a través del códec, puede consultar la propiedad KSPROPERTY_RTAUDIO_HWLATENCY .

Si se ejecuta correctamente, una solicitud de propiedad de KSPROPERTY_RTAUDIO_POSITIONREGISTER asigna el registro de posición a una dirección de memoria virtual a la que se puede acceder al cliente desde el modo de usuario o el modo kernel, según lo especificado por el cliente. A partir de entonces, el cliente lee de esta dirección para obtener el valor actual del registro de posición.

Se produce un error en la solicitud de propiedad si el hardware de audio no admite un registro de posición que se puede asignar a una dirección virtual. En este caso, el cliente debe determinar la posición de la propiedad KSPROPERTY_AUDIO_POSITION .

La asignación del registro de posición se destruye cuando se cierra la patilla. El cliente solo puede asignar el registro una vez durante la vigencia de un pin abierto y cualquier llamada posterior para reasignar el registro de posición del pin produce un error.

Normalmente es más rápido leer el registro de posición que enviar una solicitud de KSPROPERTY_AUDIO_POSITION, lo que requiere transiciones entre el modo de usuario y el modo kernel para los clientes en modo de usuario.

Requisitos

Versión

Disponible en Windows Vista y en sistemas operativos Windows posteriores.

Encabezado

Ksmedia.h

Vea también

KSPROPERTY

KSRTAUDIO_HWREGISTER

KSRTAUDIO_HWREGISTER_PROPERTY

KSPROPERTY_AUDIO_POSITION

KSPROPERTY_RTAUDIO_HWLATENCY