Поделиться через


KSPROPERTY_RTAUDIO_POSITIONREGISTER

Свойство KSPROPERTY_RTAUDIO_POSITIONREGISTER сопоставляет регистр положения звукового устройства для определенного потока с расположением виртуальной памяти, к которому у клиента есть доступ.

В следующей таблице перечислены функции этого свойства.

Сводная таблица использования

Получить Присвойте параметру Назначение Тип дескриптора свойства Тип значения свойства

Да

Нет

Pin

KSRTAUDIO_HWREGISTER_PROPERTY

KSRTAUDIO_HWREGISTER

Дескриптор свойства (данные экземпляра) — это структура KSRTAUDIO_HWREGISTER_PROPERTY, которая содержит структуру KSPROPERTY . Перед отправкой запроса клиент загружает структуру со значениями, указывающими предпочтительный базовый адрес для регистра.

Значение свойства (данные операции) — это структура KSRTAUDIO_HWREGISTER, в которую обработчик свойств записывает виртуальный адрес, с которым сопоставлен регистр положения оборудования. Клиент может напрямую считывать регистр по этому адресу. Структура KSRTAUDIO_HWREGISTER также указывает скорость приращения регистра позиции.

Возвращаемое значение

Запрос свойства KSPROPERTY_RTAUDIO_POSITIONREGISTER возвращает STATUS_SUCCESS, указывающий на успешное выполнение. В противном случае запрос возвращает соответствующий код состояния сбоя.

Комментарии

Как правило, звуковые приложения должны отслеживать текущее положение аудиопотока. Эта позиция указывается как смещение в байтах от начала потока:

  • В случае потока отрисовки положение потока — это смещение в байтах звукового кадра, который в настоящее время воспроизводим через цифровые аналоговые преобразователи (DAC).

  • В случае потока захвата положение потока — это смещение в байтах звукового кадра, который в настоящее время записывается через аналого-цифровые преобразователи (АЦОД).

Некоторые звуковые устройства содержат регистры позиций, которые постоянно увеличиваются во время выполнения потока. Для звукового устройства, которое включает все цифровые и аналоговые функции в одну микросхему, регистр положения обычно указывает текущую позицию потока напрямую.

Однако для набора микросхем, который разделяет цифровые и аналоговые функции на отдельные микросхемы контроллера шины и кодека, регистр положения обычно располагается в микросхеме контроллера шины и указывает на следующее:

  • В случае потока отрисовки регистр позиции указывает смещение в байтах последнего звукового кадра, записанного контроллером шины в кодек.

  • В случае потока захвата регистр позиции указывает смещение в байтах последнего звукового кадра, считываемого контроллером шины из кодека.

В обоих случаях значение регистра позиции не включает задержку в кодеке. Если клиент определил задержку кодека, он может добавить эту задержку к значению регистра позиции, чтобы оценить истинную позицию потока (в DAC или ADC). Для значения CodecDelay, указывающего наихудшую задержку в кодека, можно запросить свойство KSPROPERTY_RTAUDIO_HWLATENCY .

В случае успешного выполнения запроса свойства KSPROPERTY_RTAUDIO_POSITIONREGISTER регистр позиции сопоставляется с адресом виртуальной памяти, который доступен клиенту в пользовательском режиме или режиме ядра, как указано клиентом. После этого клиент считывает с этого адреса, чтобы получить текущее значение регистра позиции.

Запрос свойства завершается ошибкой, если звуковое оборудование не поддерживает регистр позиции, который можно сопоставить с виртуальным адресом. В этом случае клиент должен определить позицию из свойства KSPROPERTY_AUDIO_POSITION .

Сопоставление регистра позиций уничтожается при закрытии контакта. Клиент может сопоставить регистр только один раз за время существования открытого контакта, и любой последующий вызов для повторного сопоставления регистра позиции для контакта завершается ошибкой.

Обычно считывать регистр позиции быстрее, чем отправлять запрос KSPROPERTY_AUDIO_POSITION, который требует перехода между пользовательским режимом и режимом ядра для клиентов в пользовательском режиме.

Требования

Версия

Доступно в операционных системах Windows Vista и более поздних версий.

Заголовок

Ksmedia.h

См. также

KSPROPERTY

KSRTAUDIO_HWREGISTER

KSRTAUDIO_HWREGISTER_PROPERTY

KSPROPERTY_AUDIO_POSITION

KSPROPERTY_RTAUDIO_HWLATENCY