Что означает код HRESULT 0xC00D1BAD (NS_E_SMPTEMODE_MISMATCH)?

 
Предыдущий Следующий
NS_E_NONSQUAREPIXELMODE_MISMATCH NS_E_END_OF_TAPE

NS_E_SMPTEMODE_MISMATCH

Как интерпретировать код в реальном сеансе кодирования

0xC00D1BAD соответствует NS_E_SMPTEMODE_MISMATCH. Практическая область этого результата — режим SMPTE-тайм-кода различается между аудиториями для одного индекса источника; она относится к «топология профиля, аудитории и потоков», а не ко всем компонентам Windows Media или Windows.

Механизм и точка сбоя

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

Отдельные поля могут быть синтаксически допустимыми, тогда как полный профиль остаётся несогласованным между аудиториями или не соответствует группе источников в сеансе, возвращающем этот результат. Типичный сценарий воспроизведения: одна аудитория использует режим 30 drop-frame, а другая — 30 non-drop-frame для того же потока. Поэтому первый результат Encoder информативнее более позднего общего сообщения.

Матрица воспроизведения

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

Матрица диагностических данных

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

Практическое влияние он ограничено этапом «топологией профиля, аудиторий и потоков», которому принадлежит условие «режим SMPTE-тайм-кода различается между аудиториями для одного индекса источника». Сам по себе код не доказывает, что повреждены все входные данные, отсутствуют все кодеки или полностью неработоспособна установка Windows Media. Типичный сценарий: одна аудитория использует режим 30 drop-frame, а другая — 30 non-drop-frame для того же потока. Сохраните первый вызов, завершившийся ошибкой, и идентификатор соответствующего объекта, чтобы последующая ошибка интерфейса не скрыла данные о границе «режим SMPTE-тайм-кода различается между аудиториями для одного индекса источника».

Минимальный эксперимент

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

Не объединяйте следующие результаты

РезультатПочему это другая граница
NS_E_NONSQUAREPIXELMODE_MISMATCHрежим неквадратных пикселей различается между аудиториями с общим индекс источника
NS_E_NO_MEDIA_IN_AUDIENCEаудитория не содержит ни аудио, ни видео медиа входы
NS_E_INTERLACEMODE_MISMATCHдля одного индекса источника используются разные режимы чересстрочной развёртки в разных аудиториях

Что изменить, а что оставить без изменений

Измените минимальное ответственное предварительное условие: выберите один общий режим тайм-кода для всех аудиторий. При повторной проверке он сохраняйте неизменными все не связанные параметры источника, аудитории и выхода до повторения того же вызова.

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

Авторитетная документация


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