Site icon EfmSoft

Что означает код HRESULT 0xC00D1BA8 (NS_E_INPUT_DOESNOT_SUPPORT_SMPTE)?

 
Предыдущий Следующий
NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS

NS_E_INPUT_DOESNOT_SUPPORT_SMPTE

Где Encoder возвращает этот результат

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

Timecode Encoder связан с видеопотоком, возможностями источника и выбранным режимом SMPTE. Значения времени device control включают frame rate и frame count, а генерируемый timecode добавляет ограничения совместимости для нескольких source groups и MBR profiles в сценарии «выбранный источник не может предоставить запрошенный SMPTE timecode». В сеансе, возвращающем NS_E_INPUT_DOESNOT_SUPPORT_SMPTE, именно здесь проверяется условие «выбранный источник не может предоставить запрошенный SMPTE timecode».

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

Источник может выдавать видеокадры, но не предоставлять пригодный device timecode либо нарушать topology, необходимую для генерируемого timecode, в сеансе, возвращающем NS_E_INPUT_DOESNOT_SUPPORT_SMPTE. В показательном случае input doesnot support smpte обычный файловый источник без метаданных timecode обрабатывается как ленточное устройство. NS_E_INPUT_DOESNOT_SUPPORT_SMPTE следует проверять на объекте, сформировавшем ошибку, а не считать общим сбоем кодека или операционной системы.

Снимок состояния, который нужно сохранить

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

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

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

Практическое влияние NS_E_INPUT_DOESNOT_SUPPORT_SMPTE ограничен переходом «smpte timecode generation and validation», которому принадлежит условие «выбранный источник не может предоставить запрошенный SMPTE timecode». Для NS_E_INPUT_DOESNOT_SUPPORT_SMPTE, сам по себе этот результат не доказывает повреждение всех входных данных, отсутствие всех кодеков или неработоспособность всей установки Windows Media. В показательном случае, когда обычный файловый источник без метаданных timecode обрабатывается как ленточное устройство, сохраните первый неуспешный вызов и идентификатор его объекта, чтобы более поздняя ошибка-оболочка не заменила данные о границе input doesnot support smpte.

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

  1. Зафиксируйте 0xC00D1BA8, NS_E_INPUT_DOESNOT_SUPPORT_SMPTE, версию Encoder и точный вызов API или обращение к свойству, вернувшее ошибку.
  2. Экспортируйте текущую конфигурацию .wme или .prx конфигурацию, затем зафиксируйте тип источника, возможности управления устройством и результат первого чтения WMTIMECODE.
  3. Для NS_E_INPUT_DOESNOT_SUPPORT_SMPTE, проверяйте предварительное условие «smpte timecode generation and validation», не меняя одновременно source, profile и output sink.
  4. Выполните одно контролируемое сравнение, изменив только это условие: использовать сгенерированный timecode либо источник или устройство, предоставляющее данные SMPTE.
  5. После изменения пересоздайте затронутый объект Encoder; не предполагайте, что существующий graph автоматически отбросил прежнее состояние input doesnot support smpte.

Близкие HRESULT с другим смыслом

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

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

Для NS_E_INPUT_DOESNOT_SUPPORT_SMPTE, целевое исправление — использовать сгенерированный timecode либо источник или устройство, предоставляющее данные SMPTE. Повтор имеет смысл только после изменения зафиксированного предварительного условия input doesnot support smpte.

Не преобразуйте timecode в строку wall-clock до сохранения исходного frame count, кода frame rate и режима drop-frame в сценарии «выбранный источник не может предоставить запрошенный SMPTE timecode». Это позволяет повторно проверить тот же сеанс с NS_E_INPUT_DOESNOT_SUPPORT_SMPTE без потери исходных диагностических данных.

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


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

Exit mobile version