KSPROPERTY_RTAUDIO_POSITIONREGISTER

Die KSPROPERTY_RTAUDIO_POSITIONREGISTER-Eigenschaft ordnet das Positionsregister eines Audiogeräts für einen bestimmten Stream einem virtuellen Speicherspeicherort zu, auf den der Client zugreifen kann.

In der folgenden Tabelle sind die Features dieser Eigenschaft zusammengefasst.

Nutzungszusammenfassungstabelle

Herunterladen Set Ziel Eigenschaftsdeskriptortyp Eigenschaftswerttyp

Ja

Nein

Pin

KSRTAUDIO_HWREGISTER_PROPERTY

KSRTAUDIO_HWREGISTER

Der Eigenschaftsdeskriptor (instance Daten) ist eine KSRTAUDIO_HWREGISTER_PROPERTY-Struktur, die eine KSPROPERTY-Struktur enthält. Vor dem Senden der Anforderung lädt der Client die Struktur mit Werten, die die bevorzugte Basisadresse für das Register angeben.

Der Eigenschaftswert (Vorgangsdaten) ist eine KSRTAUDIO_HWREGISTER Struktur, in die der Eigenschaftshandler die virtuelle Adresse schreibt, der er das Hardwarepositionsregister zugeordnet hat. Der Client kann das Register direkt von dieser Adresse lesen. Die KSRTAUDIO_HWREGISTER-Struktur gibt auch die Rate an, mit der sich das Positionsregister erhöht.

Rückgabewert

Eine KSPROPERTY_RTAUDIO_POSITIONREGISTER-Eigenschaftsanforderung gibt STATUS_SUCCESS zurück, um anzugeben, dass sie erfolgreich abgeschlossen wurde. Andernfalls gibt die Anforderung einen entsprechenden Fehler status Code zurück.

Bemerkungen

In der Regel müssen Audioanwendungen die aktuelle Position eines Audiodatenstroms überwachen. Diese Position wird als Byteoffset vom Anfang des Datenstroms angegeben:

  • Bei einem Renderingstream ist die Position des Datenstroms der Byteoffset des Audioframes, der derzeit über die digital-analogen Konverter (DACs) wiedergegeben wird.

  • Bei einem Aufzeichnungsstream ist die Position des Datenstroms der Byteoffset des Audioframes, der derzeit über die Analog-Digital-Konverter (ADCs) aufgezeichnet wird.

Einige Audiogeräte enthalten Positionsregister, die während der Ausführung des Streams kontinuierlich inkrementiert werden. Bei einem Audiogerät, das alle digitalen und analogen Funktionen in einen einzelnen Chip integriert, gibt das Positionsregister in der Regel die aktuelle Streamposition direkt an.

Für einen Chipsatz, der digitale und analoge Funktionen in separate Buscontroller- und Codecchips unterteilt, befindet sich das Positionsregister jedoch in der Regel im Buscontroller-Chip und gibt Folgendes an:

  • Bei einem Renderingstream gibt das Positionsregister den Byteoffset des letzten Audioframes an, den der Buscontroller in den Codec geschrieben hat.

  • Bei einem Aufzeichnungsstream gibt das Positionsregister den Byteoffset des letzten Audioframes an, den der Buscontroller aus dem Codec liest.

In beiden Fällen enthält der Wert des Positionsregisters nicht die Verzögerung durch den Codec. Wenn der Client die Codecverzögerung ermittelt hat, kann er diese Verzögerung dem Wert des Positionsregisters hinzufügen, um die tatsächliche Streamposition (bei den DACs oder ADCs) zu schätzen. Für einen CodecDelay-Wert, der die Verzögerung im schlimmsten Fall durch den Codec angibt, können Sie die KSPROPERTY_RTAUDIO_HWLATENCY-Eigenschaft abfragen.

Bei erfolgreicher Ausführung ordnet eine KSPROPERTY_RTAUDIO_POSITIONREGISTER-Eigenschaftsanforderung das Positionsregister einer virtuellen Speicheradresse zu, auf die der Client entweder über den Benutzermodus oder den Kernelmodus zugreifen kann, wie vom Client angegeben. Anschließend liest der Client von dieser Adresse, um den aktuellen Wert des Positionsregisters abzurufen.

Die Eigenschaftsanforderung schlägt fehl, wenn die Audiohardware kein Positionsregister unterstützt, das einer virtuellen Adresse zugeordnet werden kann. In diesem Fall muss der Client die Position aus der eigenschaft KSPROPERTY_AUDIO_POSITION ermitteln.

Die Zuordnung des Positionsregisters wird zerstört, wenn der Pin geschlossen wird. Der Client kann das Register nur einmal in der Lebensdauer eines geöffneten Pins zuordnen, und jeder nachfolgende Aufruf zum Neuzuordnen des Positionsregisters für den Pin schlägt fehl.

In der Regel ist es schneller, das Positionsregister zu lesen, als eine KSPROPERTY_AUDIO_POSITION Anforderung zu senden, die für Benutzermodusclients Übergänge zwischen Benutzermodus und Kernelmodus erfordert.

Requirements (Anforderungen)

Version

Verfügbar unter Windows Vista und höheren Windows-Betriebssystemen.

Header

Ksmedia.h

Siehe auch

KSPROPERTY

KSRTAUDIO_HWREGISTER

KSRTAUDIO_HWREGISTER_PROPERTY

KSPROPERTY_AUDIO_POSITION

KSPROPERTY_RTAUDIO_HWLATENCY