Что означает код HRESULT 0xC00D1BA9 (NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS)?

 
Предыдущий Следующий
NS_E_INPUT_DOESNOT_SUPPORT_SMPTE NS_E_BAD_CONTENTEDL

NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS

Где Encoder формирует этот результат

0xC00D1BA9 (NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS) указывает на generated или source timecode запрашивается в сеансе с несколькими source groups. Для NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS, важной диагностической границей является объект Encoder, проверяющий это состояние; более поздний диалог «не удаётся начать кодирование» может скрыть более точный источник.

Timecode Encoder связан с video stream, возможностями source и выбранным SMPTE mode в сеансе, который возвращает NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS. Значения времени device-control включают frame-rate и frame-count, а generated timecode добавляет ограничения совместимости для multiple source groups и MBR profiles на этой контрольной точке на границе «generated или source timecode запрашивается в сеансе с несколькими source groups».

Что уже успешно выполнено

Источник может выдавать видеокадры, но не предоставлять пригодный device timecode либо нарушать topology, необходимую для генерируемого timecode, в сеансе, возвращающем NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS. В показательном случае no smpte with multiple sourcegroups live-switching session пытается поддерживать один непрерывный счётчик SMPTE для независимых groups. NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS наблюдение следует проверять на объекте-источнике, а не считать общей ошибкой кодека или операционной системы.

Какое состояние зафиксировать

ПолеЧто сохранить
Решающие значениячисло source groups, план active switching и режим timecode
Объект, вернувший ошибкуфлаг EnableTimecode, StartingTimecode, SMPTE mode, frame rate, настройку drop-frame, поддержку source, число source groups, число audiences и первый sample timecode
Связь с сеансомто же поколение source group, индекс audience, идентичность объекта и последовательность callback, которые привели к NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS
Данные нижнего уровняпервый HRESULT COM, драйвера, файловой системы или кодека, зафиксированный до того, как Encoder сопоставил условие с NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS
Контролируемое сравнениезаведомо рабочий сеанс, в котором изменяется только настройка, относящаяся к границе этого HRESULT

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

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

Практическое влияние NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS ограничен переходом «smpte timecode generation and validation», которому принадлежит условие «generated или source timecode запрашивается в сеансе с несколькими source groups». Для NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS, сам по себе этот результат не доказывает повреждение всех входных данных, отсутствие всех кодеков или неработоспособность всей установки Windows Media. В показательном случае, когда live-switching session пытается поддерживать один непрерывный счётчик SMPTE для независимых groups, сохраните первый неуспешный вызов и идентификатор его объекта, чтобы более поздняя ошибка-оболочка не заменила данные о границе no smpte with multiple sourcegroups.

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

  1. Зафиксируйте 0xC00D1BA9, NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS, версию Encoder и точный вызов API или обращение к свойству, вернувшее этот результат.
  2. Экспортируйте текущую конфигурацию .wme или .prx конфигурацию, затем зафиксируйте число source groups, план active switching и режим timecode.
  3. Для NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS, проверяйте предварительное условие «smpte timecode generation and validation», не меняя одновременно source, profile и output sink.
  4. Проведите одно контролируемое сравнение, изменяя только это условие: кодировать одну source group на одну timeline timecode либо отключить generated timecode.
  5. После изменения пересоздайте соответствующий объект Encoder; не предполагайте, что существующий graph автоматически отбросил прежнее недопустимое состояние в сценарии «generated или source timecode запрашивается в сеансе с несколькими source groups».

Соседние HRESULT с другим диагностическим смыслом

РезультатПочему это другая граница
NS_E_INPUT_DOESNOT_SUPPORT_SMPTEвыбранный source не может предоставить запрошенный у него SMPTE timecode
NS_E_INVALID_TIMECODEразбор или проверка диапазона настроенного starting timecode
NS_E_TIMECODE_REQUIRES_VIDEOSTREAMгенерация timecode включена в profile только с аудио

Исправление на правильном уровне

Для NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS, целевое исправление — кодировать одну source group на одну timeline timecode либо отключить generated timecode. Повтор имеет смысл только после изменения зафиксированного предварительного условия no smpte with multiple sourcegroups.

Не преобразуйте timecode в строки wall-clock до сохранения raw frame count, frame-rate code и drop-frame mode в сеансе, который возвращает NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS.

Технические ссылки для NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS


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