Partager via


KSPROPERTY_RTAUDIO_POSITIONREGISTER

La propriété KSPROPERTY_RTAUDIO_POSITIONREGISTER mappe le registre de position d’un périphérique audio pour un flux particulier dans un emplacement de mémoire virtuel auquel le client peut accéder.

Le tableau suivant récapitule les fonctionnalités de cette propriété.

Tableau récapitulatif de l’utilisation

Obtenir Définissez Cible Type de descripteur de propriété Type de valeur de propriété

Oui

Non

Épingle

KSRTAUDIO_HWREGISTER_PROPERTY

KSRTAUDIO_HWREGISTER

Le descripteur de propriété (instance données) est une structure KSRTAUDIO_HWREGISTER_PROPERTY, qui contient une structure KSPROPERTY. Avant d’envoyer la demande, le client charge la structure avec des valeurs qui indiquent l’adresse de base préférée pour le registre.

La valeur de propriété (données d’opération) est une structure KSRTAUDIO_HWREGISTER dans laquelle le gestionnaire de propriétés écrit l’adresse virtuelle à laquelle il a mappé le registre de position matérielle. Le client peut lire directement le registre à partir de cette adresse. La structure KSRTAUDIO_HWREGISTER spécifie également la vitesse à laquelle le registre de position s’incrémente lui-même.

Valeur de retour

Une demande de propriété KSPROPERTY_RTAUDIO_POSITIONREGISTER retourne STATUS_SUCCESS pour indiquer qu’elle s’est terminée avec succès. Sinon, la demande retourne un échec approprié status code.

Notes

En règle générale, les applications audio doivent surveiller la position actuelle d’un flux audio. Cette position est spécifiée sous la forme d’un décalage d’octet à partir du début du flux :

  • Dans le cas d’un flux de rendu, la position du flux est le décalage d’octets de l’image audio actuellement lue via les convertisseurs numériques-analogiques (DAC).

  • Dans le cas d’un flux de capture, la position du flux est le décalage d’octets de l’image audio en cours d’enregistrement via les convertisseurs analogique-numérique (ADC).

Certains périphériques audio contiennent des registres de position qui s’incrémentent continuellement pendant l’exécution du flux. Pour un périphérique audio qui incorpore toutes les fonctions numériques et analogiques dans une seule puce, le registre de position indique généralement directement la position actuelle du flux.

Toutefois, pour un chipset qui divise les fonctions numériques et analogiques en puces de contrôleur de bus et de codec distinctes, le registre de position se trouve généralement dans la puce du contrôleur de bus et indique ce qui suit :

  • Dans le cas d’un flux de rendu, le registre de position indique le décalage d’octets de la dernière image audio que le contrôleur de bus a écrite dans le codec.

  • Dans le cas d’un flux de capture, le registre de position indique le décalage d’octet de la dernière image audio que le contrôleur de bus a lu à partir du codec.

Dans les deux cas, la valeur du registre de position n’inclut pas le délai via le codec. Si le client a déterminé le délai du codec, il peut ajouter ce délai à la valeur du registre de position pour estimer la position réelle du flux (au niveau des DAC ou des ADC). Pour une valeur CodecDelay qui spécifie le pire délai par le biais du codec, vous pouvez interroger la propriété KSPROPERTY_RTAUDIO_HWLATENCY .

En cas de réussite, une demande de propriété KSPROPERTY_RTAUDIO_POSITIONREGISTER mappe le registre de position à une adresse de mémoire virtuelle accessible au client en mode utilisateur ou en mode noyau, comme spécifié par le client. Par la suite, le client lit à partir de cette adresse pour obtenir la valeur actuelle du registre de positions.

La demande de propriété échoue si le matériel audio ne prend pas en charge un registre de position qui peut être mappé à une adresse virtuelle. Dans ce cas, le client doit déterminer la position à partir de la propriété KSPROPERTY_AUDIO_POSITION .

Le mappage du registre de positions est détruit lorsque la broche se ferme. Le client ne peut mapper le registre qu’une seule fois au cours de la durée de vie d’une broche ouverte, et tout appel suivant pour remapper le registre de position de la broche échoue.

Il est généralement plus rapide de lire le registre de position que d’envoyer une demande de KSPROPERTY_AUDIO_POSITION, ce qui nécessite des transitions entre le mode utilisateur et le mode noyau pour les clients en mode utilisateur.

Spécifications

Version

Disponible dans les systèmes d’exploitation Windows Vista et ultérieurs.

En-tête

Ksmedia.h

Voir aussi

KSPROPERTY

KSRTAUDIO_HWREGISTER

KSRTAUDIO_HWREGISTER_PROPERTY

KSPROPERTY_AUDIO_POSITION

KSPROPERTY_RTAUDIO_HWLATENCY