Что означает код HRESULT 0xC00D1BB1 (NS_E_NO_AUDIO_COMPAT)?

 
Предыдущий Следующий
NS_E_NO_AUDIENCES NS_E_INVALID_VBR_COMPAT

NS_E_NO_AUDIO_COMPAT

Граница сбоя в объектной модели Encoder

Практически полезная интерпретация NS_E_NO_AUDIO_COMPAT (0xC00D1BB1) — это не просто стандартное сообщение, приведённое выше. Оно указывает на проверка совместимости со старым Player требует наличия аудиопотока в profile в области «правила совместимости со старыми версиями Player».

Профили Windows Media Encoder можно проверять на совместимость со старыми поколениями Windows Media Player в сеансе, который возвращает этот результат. VBR, multiple audiences, различия audio/video format, interlace и non-square pixels могут вывести profile за границы совместимости версии 7.1 на этой контрольной точке.

Данные, отличающие этот код от ошибки оболочки

Profile может быть допустим для Windows Media 9 или новее и при этом намеренно отклоняться, если требуется совместимость с более старой версией, в сеансе, который возвращает этот результат. Например, video-only profile принудительно проверяется валидатором совместимости 7.1. Сохраните он различие до того, как уровень интерфейса преобразует результат в общую ошибку запуска, захвата или профиля.

ПолеЧто сохранить
Решающие значенияцелевая совместимость, ContentType и число аудиопотоков
Объект, вернувший ошибкурезультат DetectCompatibility, целевое поколение Player, число audiences, VBR mode, codec и format для каждого audience, frame size, флаг interlace и флаг non-square-pixel
Связь с сеансомто же поколение source group, индекс audience, идентичность объекта и последовательность callback, которые привели к этому результату
Данные нижнего уровняпервый HRESULT COM, драйвера, файловой системы или кодека, зафиксированный до того, как Encoder сопоставил условие с этим результатом
Контролируемое сравнениезаведомо рабочий сеанс, в котором изменяется только настройка, относящаяся к границе этого HRESULT

Интерпретация следующего измерения

НаблюдениеКак это интерпретировать
Наблюдение, подтверждающее онРешающие данные: целевая совместимость, ContentType и число аудиопотоков. Они подтверждают, что проверка совместимости со старым Player требует наличия аудиопотока в profile в том же поколении объекта.
Наблюдение, указывающее на более ранний сбойЗафиксированные значения удовлетворяют условию этого HRESULT, однако source, драйвер, COM activation или file operation раньше возвращает другой HRESULT.
Наблюдение, указывающее на более поздний сбойEncoder проходит эту границу (проверка совместимости со старым Player требует наличия аудиопотока в profile), но затем на следующем этапе происходит сбой codec, archive или broadcast sink.
Проверка после исправленияПримените одно изолированное изменение: добавить аудиопоток или отказаться от требования совместимости со старым Player 7.1. После этого исходный вызов должен пройти ту же контрольную точку.

Практическое влияние он ограничен переходом «legacy player compatibility rules», которому принадлежит условие «проверка совместимости со старым Player требует наличия аудиопотока в profile». Сам по себе он не доказывает повреждение всех входных данных, отсутствие всех кодеков или неработоспособность всей установки Windows Media. В показательном случае, когда video-only profile принудительно проверяется валидатором совместимости 7.1, сохраните первый неуспешный вызов и идентификатор его объекта, чтобы более поздняя ошибка-оболочка не заменила данные о границе no audio compat.

Проверка условия без перестройки сеанса

  1. Зафиксируйте 0xC00D1BB1, он, версию Encoder и точный вызов API или обращение к свойству, вернувшее он.
  2. Экспортируйте текущую конфигурацию .wme или .prx конфигурацию, затем зафиксируйте целевая совместимость, ContentType и число аудиопотоков.
  3. проверяйте предварительное условие «legacy player compatibility rules», не меняя одновременно source, profile и output sink.
  4. Проведите одно контролируемое сравнение, изменяя только это условие: добавить аудиопоток или отказаться от требования совместимости со старым Player 7.1.
  5. После изменения пересоздайте соответствующий объект Encoder; не предполагайте, что существующий graph автоматически отбросил прежнее недопустимое состояние.

Осторожно интерпретируйте соседние результаты

РезультатПочему это другая граница
NS_E_INVALID_VBR_COMPATрежим VBR rate control конфликтует с выбранной целью совместимости Windows Media Player 7.1
NS_E_MULTIPLE_AUDIO_FORMATSaudiences используют разные audio formats при требовании совместимости с legacy Player 7.1
NS_E_MULTIPLE_VIDEO_SIZESaudiences используют разные размеры кадра при требовании совместимости с Player 7.1

Устранение и проверка

Непосредственное исправление этого случая — добавить аудиопоток или отказаться от требования совместимости со старым Player 7.1. Пересоздайте соответствующий source group, profile или output object, повторите ту же операцию и убедитесь, что первый неуспешный HRESULT больше не возникает на контрольной точке no audio compat.

Не описывайте результат проверки совместимости как повреждение codec; сначала определите, действительно ли требуется поддержка старого Player в сеансе, который возвращает он.

Ссылки для него — диагностическая граница


Нужно найти другой код? Найти другой код состояния или ошибки.