Что означает код HRESULT 0xC00D1B7B (NS_E_PROFILE_MISMATCH)?

 
Предыдущий Следующий
NS_E_SOURCEGROUP_NOTPREPARED NS_E_INCORRECTCLIPSETTINGS

NS_E_PROFILE_MISMATCH

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

Практический смысл NS_E_PROFILE_MISMATCH (0xC00D1B7B) не сводится к стандартному сообщению: код указывает на переключение или объединение источников, назначенные профили которых неэквивалентны для сеанса в области «топология профиля, аудитории и потоков».

Профиль Windows Media Encoder объявляет типы содержимого и одну или несколько аудиторий в сеансе, который возвращает этот результат. На этапе проверки соответствия профилей каждая аудитория сопоставляет индексы источников с аудио-, видео-, сценарными или файловыми потоками; эти сопоставления должны оставаться структурно согласованными между аудиториями в многобитрейтном профиле.

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

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

ПолеЧто сохранить
Решающие значенияидентификаторы или хэши профилей, типы содержимого, компоновки аудиторий и настройки кодеков для каждой задействованной группы источников
Объект, вернувший ошибкуимя и тип содержимого профиля, число аудиторий и суммарный битрейт, индексы источников, типы потоков, идентификаторы языков, выбранные аудитории и результат IWMEncProfile2.Validate
Сопоставление с сеансомто же поколение группы источников, индекс аудитории, идентификатор объекта и последовательность обратных вызовов, в которой был получен этот результат
Данные нижнего уровняпервый HRESULT COM, драйвера, файловой системы или кодека, зарегистрированный до того, как Encoder сопоставил условие с этим результатом
Контролируемое сравнениезаведомо рабочий сеанс, в котором изменяется только настройка, относящаяся к границе этого HRESULT

Как интерпретировать следующее измерение

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

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

Как интерпретировать следующее измерение

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

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

РезультатПочему это другая граница
NS_E_MISSING_AUDIENCEссылка в дереве выходов указывает на отсутствующую аудиторию
NS_E_AUDIENCE_CONTENTTYPE_MISMATCHаудитории в одном дереве выходов объявляют разные общие типы медиасодержимого
NS_E_MISSING_SOURCE_INDEXу потока в аудитории отсутствует сопоставление с индексом источника

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

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

Не исправляйте профиль удалением случайных аудиторий; сначала экспортируйте.prx и сравните один и тот же индекс источника во всех аудиториях в сеансе, который возвращает он.

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


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