| Предыдущий | Следующий |
| NS_E_NO_DATAVIEW_SUPPORT | NS_E_ARCHIVE_SAME_AS_INPUT |
NS_E_CODEC_UNAVAILABLE
Сбойная граница в объектной модели Encoder
Полезный смысл NS_E_CODEC_UNAVAILABLE (0xC00D1B83) не сводится к стандартному сообщению выше. Код указывает на активацию профиля, при которой невозможно создать один или несколько указанных кодеков, внутри обнаружения и активации подключаемых модулей кодировщика.
Расширения источника, преобразования и управления устройством являются COM-модулями в сеансе, возвращающем этот результат. В этой контрольной точке Encoder должен разобрать CLSID, создать зарегистрированный компонент, получить ожидаемый интерфейс и убедиться, что подключаемый модуль поддерживает выбранный источник или преобразование.
Данные, отделяющие этот код от ошибки оболочки
Даже зарегистрированный класс может иметь неподходящую разрядность, предоставлять другой интерфейс или отклонять запрошенный тип мультимедиа в сеансе с этим результатом. Например, файл.prx может ссылаться на кодек, удалённый при очистке системы. Сохраните различие этот результат до того, как уровень интерфейса преобразует результат в общую ошибку запуска, захвата или профиля.
| Поле | Что сохранить |
|---|---|
| Решающие значения | индексы кодеков или FOURCC из профиля, перечень установленных кодеков, разрядность процесса и HRESULT активации |
| Объект, вернувший ошибку | текстовое и двоичное значение CLSID, путь регистрации COM и разрядность, путь, версия и подпись DLL, IID запрошенного интерфейса, схема источника или имя преобразования, HRESULT активации и результат проверки доступа |
| Корреляция сеанса | то же поколение группы источников, индекс аудитории, идентификатор объекта и последовательность обратных вызовов, которые привели к этому результату |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или кодека до того, как Encoder сопоставил условие с ним |
| Контролируемое сравнение | заведомо исправный сеанс, в котором изменён только параметр, указанный границей недоступного кодека |
Интерпретация следующего измерения
| Наблюдение | Как его интерпретировать |
|---|---|
| Наблюдение подтверждает он | Решающими данными являются индексы кодеков или FOURCC из профиля, перечень установленных кодеков, разрядность процесса и HRESULT активации. Они подтверждают невозможность создания одного или нескольких указанных кодеков при активации профиля в том же поколении объекта. |
| Наблюдение указывает на более ранний сбой | Зафиксированные значения соответствуют условию недоступного кодека, но источник, драйвер, активация COM или файловая операция раньше возвращают другой HRESULT. |
| Наблюдение указывает на более поздний сбой | Encoder проходит эту границу — активацию профиля с созданием указанных кодеков, — но на следующей стадии возникает сбой кодека, архивного приёмника или приёмника вещания. |
| Проверка после исправления | Внесите одно изолированное изменение: установите требуемый доверенный кодек или выберите доступный кодек, сохранив требования профиля. После этого исходный вызов должен пройти ту же контрольную точку. |
Практическое влияние он ограничено переходом обнаружения и активации подключаемого модуля кодировщика, которому принадлежит создание указанных кодеков при активации профиля. Сам по себе он не доказывает повреждение всех входных данных, отсутствие всех кодеков или неработоспособность всей установки Windows Media. В типичном случае, когда файл.prx ссылается на удалённый при очистке кодек, сохраните первый сбойный вызов и идентификатор его объекта, чтобы поздняя оболочка не заменила эти данные.
Проверка условия без перестройки сеанса
- Зафиксируйте
0xC00D1B83, он, версию Encoder и точный вызов API или обращение к свойству, вернувшее ошибку. - Экспортируйте текущую конфигурацию
.wmeили.prx, затем сохраните индексы кодеков или FOURCC из профиля, перечень установленных кодеков, разрядность процесса и HRESULT активации. - Проверьте предварительное условие обнаружения и активации подключаемого модуля кодировщика, не меняя одновременно источник, профиль и выходной приёмник.
- Выполните одно контролируемое сравнение, изменив только это условие: установите требуемый доверенный кодек или выберите доступный кодек, сохранив требования профиля.
- После изменения пересоздайте затронутый объект Encoder, а не предполагайте, что существующий граф отбросил прежнее состояние недоступного кодека.
Осторожно интерпретируйте соседние результаты
| Результат | Почему это другая граница |
|---|---|
NS_E_PLUGIN_CLSID_INVALID | разбор и активация идентификатора класса подключаемого модуля COM |
NS_E_TRANSFORM_PLUGIN_NOT_FOUND | поиск или активация не находят подключаемый модуль преобразования, указанный в сеансе |
NS_E_NO_VALID_SOURCE_PLUGIN | выбор или активация подключаемого модуля источника, способного открыть настроенный вход |
Устранение и проверка
Прямое исправление для этого случая — установить требуемый доверенный кодек или выбрать доступный кодек, сохранив требования профиля. Пересоздайте затронутую группу источников, профиль или выходной объект, повторите ту же операцию и убедитесь, что первый сбойный HRESULT больше не возникает в контрольной точке недоступного кодека.
Не регистрируйте загруженные DLL вслепую; в сеансе с ним сохраните исходное сопоставление CLSID и проверьте происхождение, разрядность и поддержку интерфейса.
Ссылки по границе он
- Получение настроенного входа кодировщика.
- Подготовка группы источников к кодированию.
- Сохранение конфигурации Windows Media Encoder.
- Проверка формата видеокомпрессора ICCompressQuery.
Нужно найти другой код? Найти другой код состояния или ошибки.