Site icon EfmSoft

Что означает код HRESULT 0xC00D1B6F (NS_E_NO_MEDIAFORMAT_IN_SOURCE)?

 
Предыдущий Следующий
NS_E_VIDCAPDRVINUSE NS_E_NO_VALID_OUTPUT_STREAM

NS_E_NO_MEDIAFORMAT_IN_SOURCE

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

Для NS_E_NO_MEDIAFORMAT_IN_SOURCE (0xC00D1B6F) диагностически значимое событие — подготовка source, plug-in которого не предоставил media format. Сохраняйте границу, вернувшую этот результат, вместе с исходным callback Encoder или вызовом COM.

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

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

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

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

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

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

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

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

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

  1. Зафиксируйте 0xC00D1B6F, он, версию Encoder и точный вызов API или обращение к свойству, вернувшее ошибку.
  2. Экспортируйте текущую конфигурацию .wme или .prx конфигурацию, затем зафиксируйте input source, объект plug-in, результат GetInput и согласованные major/subtype до PrepareToEncode.
  3. проверяйте предварительное условие source groups, streams и plug-ins, не меняя одновременно source, profile и output sink.
  4. Выполните одно контролируемое сравнение, изменив только это условие: полностью настроить source и инициировать обнаружение format до подготовки group.
  5. После изменения пересоздайте затронутый объект Encoder, а не предполагайте, что существующий graph автоматически отбросил прежнее ошибочное состояние для состояния «подготовка source, plug-in которого не предоставил media format».

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

РезультатПочему это другая граница
NS_E_NO_PROFILE_IN_SOURCEGROUPподготовка source group без назначенного IWMEncProfile
NS_E_NO_VALID_OUTPUT_STREAMсопоставление source media как минимум с одним output stream, объявленным в profile
NS_E_MISMATCHED_MEDIACONTENTсопоставление media content группы источников с назначенным ContentType профиля

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

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

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

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


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

Exit mobile version