| Предыдущий | Следующий |
| 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. Сохраняйте границу, вернувшую этот результат, вместе с исходным callback Encoder или вызовом COM.
Timecode Encoder связан с видеопотоком, возможностями источника и выбранным режимом SMPTE. Значения времени device control включают frame rate и frame count, а генерируемый timecode добавляет ограничения совместимости для нескольких source groups и MBR profiles. В сеансе, возвращающем этот результат, именно здесь проверяется условие «выбранный источник не может предоставить запрошенный SMPTE timecode».
Что уже успешно выполнено
Источник может выдавать видеокадры, но не предоставлять пригодный device timecode либо нарушать topology, необходимую для генерируемого timecode, в сеансе, возвращающем этот результат. В показательном случае input doesnot support smpte обычный файловый источник без метаданных timecode обрабатывается как ленточное устройство. Он следует проверять на объекте, сформировавшем ошибку, а не считать общим сбоем кодека или операционной системы.
Снимок состояния, который нужно сохранить
| Поле | Что сохранить |
|---|---|
| Решающие значения | тип источника, возможности управления устройством и результат первого чтения WMTIMECODE |
| Объект, вернувший ошибку | флаг EnableTimecode, StartingTimecode, режим SMPTE, frame rate, настройку drop-frame, поддержку источником, число source groups, число audiences и первый sample timecode |
| Сопоставление с сеансом | то же поколение source group, индекс audience, идентичность объекта и последовательность callbacks, в которой был получен этот результат |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или codec, полученный до того, как Encoder сопоставил условие с ним |
| Контролируемое сравнение | заведомо исправный сеанс, в котором изменяется только настройка границы «выбранный источник не может предоставить запрошенный SMPTE timecode» |
Как интерпретировать следующее наблюдение
| Наблюдение | Как это интерпретировать |
|---|---|
| Наблюдение, подтверждающее он | Решающие данные: тип источника, возможности управления устройством и результат первого чтения WMTIMECODE. Они подтверждают условие «выбранный источник не может предоставить запрошенный SMPTE timecode» в том же поколении объекта. |
| Наблюдение, указывающее на более ранний сбой | Зафиксированные значения удовлетворяют правилу этой границы, но source, драйвер, COM activation или файловая операция раньше возвращает другой HRESULT для состояния «выбранный источник не может предоставить запрошенный SMPTE timecode». |
| Наблюдение, указывающее на более поздний сбой | Encoder проходит эту границу («выбранный источник не может предоставить запрошенный SMPTE timecode»), но затем codec, archive или broadcast sink завершается ошибкой на следующем этапе. |
| Проверка после исправления | Внесите одно изолированное изменение: использовать сгенерированный timecode либо источник или устройство, предоставляющее данные SMPTE. После этого исходный вызов должен пройти ту же контрольную точку для состояния «выбранный источник не может предоставить запрошенный SMPTE timecode». |
Практическое влияние он ограничен переходом «smpte timecode generation and validation», которому принадлежит условие «выбранный источник не может предоставить запрошенный SMPTE timecode». Сам по себе он не доказывает повреждение всех входных данных, отсутствие всех кодеков или неработоспособность всей установки Windows Media. В показательном случае, когда обычный файловый источник без метаданных timecode обрабатывается как ленточное устройство, сохраните первый неуспешный вызов и идентификатор его объекта, чтобы более поздняя ошибка-оболочка не заменила данные о границе input doesnot support smpte.
Близкие HRESULT с другим смыслом
| Результат | Почему это другая граница |
|---|---|
NS_E_NO_SMPTE_WITH_MULTIPLE_SOURCEGROUPS | generated или source timecode запрашивается в сеансе с несколькими source groups |
NS_E_INVALID_TIMECODE | разбор или проверка диапазона настроенного starting timecode |
NS_E_TIMECODE_REQUIRES_VIDEOSTREAM | генерация timecode включена в profile только с аудио |
Исправление на правильном уровне
Целевое исправление — использовать сгенерированный timecode либо источник или устройство, предоставляющее данные SMPTE. Повтор имеет смысл только после изменения зафиксированного предварительного условия input doesnot support smpte.
Не преобразуйте timecode в строку wall-clock до сохранения исходного frame count, кода frame rate и режима drop-frame. Это позволяет повторно проверить тот же сеанс с ним без потери исходных диагностических данных.
Технические ссылки
- Структура управления устройством WMTIMECODE.
- WMEncoder.StartingTimecode.
- WMEncoder.EnableTimecode.
- Определение совместимости профилей.
Нужно найти другой код? Найти другой код состояния или ошибки.