Site icon EfmSoft

Что означает код HRESULT 0xC00D1B83 (NS_E_CODEC_UNAVAILABLE)?

 
Предыдущий Следующий
NS_E_NO_DATAVIEW_SUPPORT NS_E_ARCHIVE_SAME_AS_INPUT

NS_E_CODEC_UNAVAILABLE

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

Полезный смысл NS_E_CODEC_UNAVAILABLE (0xC00D1B83) не сводится к стандартному сообщению выше. Код указывает на активацию профиля, при которой невозможно создать один или несколько указанных кодеков, внутри обнаружения и активации подключаемых модулей кодировщика.

Расширения источника, преобразования и управления устройством являются COM-модулями в сеансе, возвращающем NS_E_CODEC_UNAVAILABLE. В этой контрольной точке Encoder должен разобрать CLSID, создать зарегистрированный компонент, получить ожидаемый интерфейс и убедиться, что подключаемый модуль поддерживает выбранный источник или преобразование.

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

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

ПолеЧто сохранить
Решающие значенияиндексы кодеков или FOURCC из профиля, перечень установленных кодеков, разрядность процесса и HRESULT активации
Объект, вернувший ошибкутекстовое и двоичное значение CLSID, путь регистрации COM и разрядность, путь, версия и подпись DLL, IID запрошенного интерфейса, схема источника или имя преобразования, HRESULT активации и результат проверки доступа
Корреляция сеансато же поколение группы источников, индекс аудитории, идентификатор объекта и последовательность обратных вызовов, которые привели к NS_E_CODEC_UNAVAILABLE
Данные нижнего уровняпервый HRESULT COM, драйвера, файловой системы или кодека до того, как Encoder сопоставил условие с NS_E_CODEC_UNAVAILABLE
Контролируемое сравнениезаведомо исправный сеанс, в котором изменён только параметр, указанный границей недоступного кодека

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

НаблюдениеКак его интерпретировать
Наблюдение подтверждает этот результатРешающими данными являются индексы кодеков или FOURCC из профиля, перечень установленных кодеков, разрядность процесса и HRESULT активации. Они подтверждают невозможность создания одного или нескольких указанных кодеков при активации профиля в том же поколении объекта.
Наблюдение указывает на более ранний сбойЗафиксированные значения соответствуют условию недоступного кодека, но источник, драйвер, активация COM или файловая операция раньше возвращают другой HRESULT.
Наблюдение указывает на более поздний сбойEncoder проходит эту границу — активацию профиля с созданием указанных кодеков, — но на следующей стадии возникает сбой кодека, архивного приёмника или приёмника вещания.
Проверка после исправленияВнесите одно изолированное изменение: установите требуемый доверенный кодек или выберите доступный кодек, сохранив требования профиля. После этого исходный вызов должен пройти ту же контрольную точку.

Практическое влияние NS_E_CODEC_UNAVAILABLE ограничено переходом обнаружения и активации подключаемого модуля кодировщика, которому принадлежит создание указанных кодеков при активации профиля. Сам по себе NS_E_CODEC_UNAVAILABLE не доказывает повреждение всех входных данных, отсутствие всех кодеков или неработоспособность всей установки Windows Media. В типичном случае, когда файл .prx ссылается на удалённый при очистке кодек, сохраните первый сбойный вызов и идентификатор его объекта, чтобы поздняя оболочка не заменила эти данные.

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

  1. Зафиксируйте 0xC00D1B83, NS_E_CODEC_UNAVAILABLE, версию Encoder и точный вызов API или обращение к свойству, вернувшее ошибку.
  2. Экспортируйте текущую конфигурацию .wme или .prx, затем сохраните индексы кодеков или FOURCC из профиля, перечень установленных кодеков, разрядность процесса и HRESULT активации.
  3. Для NS_E_CODEC_UNAVAILABLE проверьте предварительное условие обнаружения и активации подключаемого модуля кодировщика, не меняя одновременно источник, профиль и выходной приёмник.
  4. Выполните одно контролируемое сравнение, изменив только это условие: установите требуемый доверенный кодек или выберите доступный кодек, сохранив требования профиля.
  5. После изменения пересоздайте затронутый объект Encoder, а не предполагайте, что существующий граф отбросил прежнее состояние недоступного кодека.

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

РезультатПочему это другая граница
NS_E_PLUGIN_CLSID_INVALIDразбор и активация идентификатора класса подключаемого модуля COM
NS_E_TRANSFORM_PLUGIN_NOT_FOUNDпоиск или активация не находят подключаемый модуль преобразования, указанный в сеансе
NS_E_NO_VALID_SOURCE_PLUGINвыбор или активация подключаемого модуля источника, способного открыть настроенный вход

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

Прямое исправление для этого случая — установить требуемый доверенный кодек или выбрать доступный кодек, сохранив требования профиля. Пересоздайте затронутую группу источников, профиль или выходной объект, повторите ту же операцию и убедитесь, что первый сбойный HRESULT больше не возникает в контрольной точке недоступного кодека.

Не регистрируйте загруженные DLL вслепую; в сеансе с NS_E_CODEC_UNAVAILABLE сохраните исходное сопоставление CLSID и проверьте происхождение, разрядность и поддержку интерфейса.

Ссылки по границе NS_E_CODEC_UNAVAILABLE


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

Exit mobile version