| Предыдущий | Следующий |
| NS_E_INVALID_NONSQUAREPIXEL_COMPAT | NS_E_CANNOT_GENERATE_BROADCAST_INFO_FOR_QUALITYVBR |
NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROL
Где Encoder возвращает этот результат
0xC00D1BDE (NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROL) диагностически значимое событие — управление устройством привязано к источнику, который не является устройством захвата. Сохраняйте границу, вернувшую NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROL, вместе с исходным callback Encoder или вызовом COM.
Windows Media Encoder связывает источник захвата с control plug-in, ленточным transport, отметками mark-in/mark-out и EDL на границе «управление устройством привязано к источнику, который не является устройством захвата». Устройство захвата и управляющее устройство должны относиться к одному работоспособному аппаратному тракту при проверке «управление устройством привязано к источнику, который не является устройством захвата». В сеансе, возвращающем NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROL, именно здесь проверяется условие «управление устройством привязано к источнику, который не является устройством захвата».
Что уже успешно выполнено
Захват видео может оставаться доступным, когда отдельный подключаемый модуль теряет управление транспортом, поэтому ошибка управления устройством в сеансе, возвращающем NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROL. В показательном случае invalid source with device control файловый источник связан с plug-in управления лентой. NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROL следует проверять на объекте, сформировавшем ошибку, а не считать общим сбоем кодека или операционной системы.
Снимок состояния, который нужно сохранить
| Поле | Что сохранить |
|---|---|
| Решающие значения | схема и тип источника, control plug-in и идентификатор устройства |
| Объект, вернувший ошибку | CLSID control plug-in, идентификатор управляемого устройства, состояние transport, наличие ленты, число записей EDL, значения mark-in/mark-out, результат seek, привязку source group и событие disconnect |
| Сопоставление с сеансом | то же поколение source group, индекс audience, идентичность объекта и последовательность callbacks, в которой был получен NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROL |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или codec, полученный до того, как Encoder сопоставил условие с NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROL |
| Контролируемое сравнение | заведомо исправный сеанс, в котором изменяется только настройка границы «управление устройством привязано к источнику, который не является устройством захвата» |
Как интерпретировать следующее наблюдение
| Наблюдение | Как это интерпретировать |
|---|---|
| Наблюдение, подтверждающее этот результат | Решающие данные: схема и тип источника, control plug-in и идентификатор устройства. Они подтверждают условие «управление устройством привязано к источнику, который не является устройством захвата» в том же поколении объекта. |
| Наблюдение, указывающее на более ранний сбой | Зафиксированные значения удовлетворяют правилу этой границы, но source, драйвер, COM activation или файловая операция раньше возвращает другой HRESULT для состояния «управление устройством привязано к источнику, который не является устройством захвата». |
| Наблюдение, указывающее на более поздний сбой | Encoder проходит эту границу («управление устройством привязано к источнику, который не является устройством захвата»), но затем codec, archive или broadcast sink завершается ошибкой на следующем этапе. |
| Проверка после исправления | Внесите одно изолированное изменение: привязать control plug-in к соответствующему устройству захвата либо отключить управление. После этого исходный вызов должен пройти ту же контрольную точку на границе «управление устройством привязано к источнику, который не является устройством захвата». |
Практическое влияние NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROL ограничен переходом «управление ленточным устройством и списки решений монтажа EDL», которому принадлежит условие «управление устройством привязано к источнику, который не является устройством захвата». Для NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROL, сам по себе этот результат не доказывает повреждение всех входных данных, отсутствие всех кодеков или неработоспособность всей установки Windows Media. В показательном случае, когда файловый источник связан с plug-in управления лентой, сохраните первый неуспешный вызов и идентификатор его объекта, чтобы более поздняя ошибка-оболочка не заменила данные о границе invalid source with device control.
Контролируемая последовательность диагностики
- Зафиксируйте
0xC00D1BDE,NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROL, версию Encoder и точный вызов API или обращение к свойству, вернувшее ошибку. - Экспортируйте текущую конфигурацию
.wmeили.prxконфигурацию, затем зафиксируйте схема и тип источника, control plug-in и идентификатор устройства. - Для
NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROLпроверьте предварительное условие управления ленточным устройством и списка монтажных решений, не меняя одновременно источник, профиль и выходной приёмник. - Выполните одно контролируемое сравнение, изменив только это условие: привязать control plug-in к соответствующему устройству захвата либо отключить управление.
- После изменения пересоздайте затронутый объект Encoder; не предполагайте, что существующий graph автоматически отбросил прежнее состояние invalid source with device control.
Близкие HRESULT с другим смыслом
| Результат | Почему это другая граница |
|---|---|
NS_E_END_OF_TAPE | Внесите одно изолированное изменение: привязать control plug-in к соответствующему устройству захвата либо отключить управление. После этого исходный вызов должен пройти ту же контрольную точку на границе «управление устройством привязано к источнику, который не является устройством захвата». |
NS_E_DEVICECONTROL_UNSTABLE | подключаемый модуль управления сообщает, что ленточное устройство больше не находится в надёжном состоянии для выполнения команд |
NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED | control device активной source group отключается во время capture |
Исправление на правильном уровне
Для NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROL, целевое исправление — привязать control plug-in к соответствующему устройству захвата либо отключить управление. Повтор имеет смысл только после изменения зафиксированного предварительного условия invalid source with device control.
Не перематывайте, не извлекайте и не перезаписывайте ленту до сохранения отказавшей записи EDL и текущего timecode: иначе изменятся данные, необходимые для воспроизведения ошибки для состояния «управление устройством привязано к источнику, который не является устройством захвата». Это позволяет повторно проверить тот же сеанс с NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROL без потери исходных диагностических данных.
Технические ссылки для NS_E_INVALID_SOURCE_WITH_DEVICE_CONTROL
- WMEncEditDecisionList.Item.
- Структура управления устройством WMTIMECODE.
- IWMEncSource.MarkOut.
- Подготовка группы источников к кодированию.
Нужно найти другой код? Найти другой код состояния или ошибки.