| Предыдущий | Следующий |
| NS_E_NO_TWOPASS_TIMECOMPRESSION | NS_E_NO_MBR_WITH_TIMECODE |
NS_E_TIMECODE_REQUIRES_VIDEOSTREAM
Что именно отказало
NS_E_TIMECODE_REQUIRES_VIDEOSTREAM / 0xC00D1BD9 фиксирует конкретную границу: Генерация тайм-кода включена для профиля без видеопотока. Для этого результата полезно рассматривать маркер состояния «timecode requires videostream» как имя этапа, а не как общий сбой Windows Media.
Данные до повторной попытки
Сохраните capture device/pin, width, height, subtype, stride, bit depth и состояние graph. Затем свяжите их с первой временной меткой, на которой наблюдалось «Генерация тайм-кода включена для профиля без видеопотока», чтобы не смешать разные поколения операции.
| Наблюдение | Диагностический вывод |
|---|---|
| Первый вызов возвращает NS_E_TIMECODE_REQUIRES_VIDEOSTREAM | Он подтверждает границу «Генерация тайм-кода включена для профиля без видеопотока» только для текущего объекта и generation. |
| После целевого изменения NS_E_TIMECODE_REQUIRES_VIDEOSTREAM исчезает | Это поддерживает связь отказа с условием «Генерация тайм-кода включена для профиля без видеопотока», если остальные входные данные совпали. |
| Первым появляется другой нижележащий HRESULT | Сохраните его отдельно: маркер состояния «timecode requires videostream» может быть лишь отображением ошибки более низкого компонента. |
Сравнение двух запусков
Для проверки маркер состояния «timecode requires videostream» сравните два запуска одной операции: исходный с состоянием «Генерация тайм-кода включена для профиля без видеопотока» и второй после одного целевого изменения. Остальные входные данные оставьте неизменными.
- Зафиксируйте первый
NS_E_TIMECODE_REQUIRES_VIDEOSTREAMи объект, которому принадлежит маркер состояния «timecode requires videostream». - Сохраните входные данные до изменения состояния «Генерация тайм-кода включена для профиля без видеопотока».
- Повторите тот же API/Player workflow без широкого сброса окружения.
- Устраните только условие «Генерация тайм-кода включена для профиля без видеопотока» и выполните тот же вызов ещё раз.
- Сравните первый HRESULT и фактическую стадию, до которой дошла операция.
Что не стоит смешивать
Повторяйте на том же устройстве и формате, меняя только параметр, непосредственно связанный с этим кодом. Для маркер состояния «timecode requires videostream» массовый сброс настроек или переустановка компонентов до сбора данных обычно только уничтожает полезную разницу между запусками.
Документация
- WMTIMECODE device-control structure.
- WMEncoder.StartingTimecode.
- WMEncoder.EnableTimecode.
- Detecting profile compatibility.
Нужно найти другой код? Найти другой код состояния или ошибки.