Site icon EfmSoft

Что означает код HRESULT 0xC00D1B5E (NS_E_NOMATCHING_ELEMENT)?

 
Предыдущий Следующий
NS_E_TOO_MANY_VIDEO NS_E_MISMATCHED_MEDIACONTENT

NS_E_NOMATCHING_ELEMENT

Диагностический смысл помимо стандартного текста

Для NS_E_NOMATCHING_ELEMENT (0xC00D1B5E) диагностически значимое событие — поиск объекта Encoder в коллекции по индексу, имени или ожидаемой роли мультимедиа. Сохраняйте границу, вернувшую этот результат, вместе с исходным callback Encoder или вызовом COM.

Почему сеанс может дойти до этой точки

Объектная модель Encoder объединяет audio, video и script inputs в IWMEncSourceGroup, связывает с группой один профиль и запрашивает у source plug-in media format для выбранных выходных потоков при проверке «поиск объекта Encoder в коллекции по индексу, имени или ожидаемой роли мультимедиа». В сеансе, возвращающем этот результат.

Успешное создание COM objects не доказывает полноту source group; назначение profile, обнаружение source и согласование format — более поздние контрольные точки в сеансе, возвращающем этот результат. Один конкретный способ получить это условие: сохранённый индекс повторно используется после удаления audience или source group. Он нужно сохранить поколение объекта и числовые параметры, а не только снимок итогового диалогового окна.

Поля трассировки, имеющие диагностическую ценность

ПолеЧто сохранить
Решающие значениячисло элементов коллекции, запрошенный индекс или имя и идентификаторы объектов, полученных при перечислении
Объект, вернувший ошибкуиндекс и имя коллекции source groups, состояние active/prepared, тип потока, input scheme и имя потока, CLSID source plug-in, согласованный media type и назначенный профиль
Сопоставление с сеансомто же поколение source group, индекс audience, идентичность объекта и последовательность callbacks, в которой был получен этот результат
Данные нижнего уровняпервый HRESULT COM, драйвера, файловой системы или codec, полученный до того, как Encoder сопоставил условие с ним
Контролируемое сравнениезаведомо исправный сеанс, в котором изменяется только параметр, относящийся

Матрица решений

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

Практическое влияние он ограничен переходом «source groups, streams and plug-ins», которому принадлежит условие «поиск объекта Encoder в коллекции по индексу, имени или ожидаемой роли мультимедиа». Сам по себе код не доказывает, что повреждены все входные данные, отсутствуют все codecs или полностью неработоспособна установка Windows Media. Типичный сценарий: сохранённый индекс повторно используется после удаления audience или source group. Сохраните первый отказавший вызов и идентичность его объекта, чтобы более поздний wrapper не скрыл данные границы «поиск объекта Encoder в коллекции по индексу, имени или ожидаемой роли мультимедиа».

Путь принятия решения

  1. Зафиксируйте 0xC00D1B5E, он, версию Encoder и точный вызов API или обращение к свойству, вернувшее ошибку.
  2. Экспортируйте текущую конфигурацию .wme или .prx конфигурацию, затем зафиксируйте число элементов коллекции, запрошенный индекс или имя и идентификаторы объектов, полученных при перечислении.
  3. проверяйте предварительное условие source groups, streams и plug-ins, не меняя одновременно source, profile и output sink.
  4. Выполните одно контролируемое сравнение, изменив только это условие: обновить коллекцию и использовать существующий элемент из того же поколения объектов.
  5. После изменения пересоздайте затронутый объект Encoder, а не предполагайте, что существующий graph автоматически отбросил прежнее ошибочное состояние.

Коды с похожими симптомами, но другими владельцами

РезультатПочему это другая граница
NS_E_TOO_MANY_VIDEOпроверка ограничения source group для video inputs
NS_E_MISMATCHED_MEDIACONTENTсопоставление media content группы источников с назначенным ContentType профиля
NS_E_TOO_MANY_AUDIOпроверка ограничения числа audio inputs в source group

Безопасное восстановление

Устраните условие-источник: обновить коллекцию и использовать существующий элемент из того же поколения объектов. Затем перестройте только ту часть graph Encoder, которую затрагивает он и проверьте исходный вызов.

Не удаляйте и не создавайте заново все source groups до экспорта конфигурации.wme и фиксации active group; иначе связь объектов, на которой возник сбой, будет потеряна в сеансе, который возвращает он.

Исходные материалы


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

Exit mobile version