| Предыдущий | Следующий |
| NS_E_DRM_PASSWORD_TOO_LONG | NS_E_INTERLACE_REQUIRE_SAMESIZE |
NS_E_DEVCONTROL_FAILED_SEEK
Граница сбоя в объектной модели Encoder
Практический смысл NS_E_DEVCONTROL_FAILED_SEEK (0xC00D1B94) состоит не только в стандартном сообщении, приведённом выше. Код локализует условие подключаемый модуль управления устройством не может установить ленту на отметку входа, указанную в EDL в подсистеме управления ленточным устройством и списками монтажных решений.
Управление устройством Windows Media Encoder согласует источник захвата с подключаемым модулем управления, транспортом ленты, отметками входа и выхода и списком монтажных решений в сеансе, возвращающем NS_E_DEVCONTROL_FAILED_SEEK. На контрольной точке сбоя позиционирования устройство захвата и устройство управления должны относиться к одному пригодному аппаратному пути.
Данные, отличающие этот код от ошибки оболочки
Захват видео может оставаться доступным, когда отдельный подключаемый модуль теряет управление транспортом, поэтому ошибка управления устройством в сеансе, возвращающем NS_E_DEVCONTROL_FAILED_SEEK, не обязательно означает сбой формата захвата. Например, список EDL ссылается на временной код, расположенный раньше записанного участка ленты. Сохраните различие, задаваемое NS_E_DEVCONTROL_FAILED_SEEK до того, как уровень интерфейса преобразует результат в общую ошибку запуска, захвата или профиля.
| Поле | Что сохранить |
|---|---|
| Решающие значения | целевая отметка входа, текущий необработанный временной код, границы ленты, состояние транспорта и результат позиционирования подключаемого модуля |
| Объект-источник | CLSID подключаемого модуля управления, идентификатор управляемого устройства, состояние транспорта, наличие ленты, число записей EDL, отметки входа и выхода, результат позиционирования, привязка исходной группы и событие отключения |
| Связь с сеансом | то же поколение исходной группы, индекс аудитории, идентификатор объекта и последовательность обратных вызовов, которые привели к NS_E_DEVCONTROL_FAILED_SEEK |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или кодека, наблюдавшийся до того, как Encoder сопоставил условие с NS_E_DEVCONTROL_FAILED_SEEK |
| Контролируемое сравнение | заведомо исправный сеанс, в котором изменяется только параметр границы сбоя позиционирования |
Интерпретация следующего измерения
| Наблюдение | Как его интерпретировать |
|---|---|
| Наблюдение, подтверждающее результат | Решающими данными являются целевая отметка входа, текущий необработанный временной код, границы ленты, состояние транспорта и результат позиционирования подключаемого модуля. Они подтверждают, что в том же поколении объекта подключаемый модуль не может установить ленту на отметку входа, указанную в EDL. |
| Наблюдение, указывающее на более ранний сбой | Записанные значения соответствуют условию сбоя позиционирования, однако источник, драйвер, активация COM или файловая операция раньше возвращает другой HRESULT. |
| Наблюдение, указывающее на последующий сбой | Encoder проходит эту границу, но на последующем этапе происходит сбой кодека, архива или приёмника трансляции. |
| Проверка после исправления | Внесите одно изолированное изменение: исправьте время в EDL и до начала кодирования проверьте позиционирование ленты и устройства. После этого исходный вызов должен пройти ту же контрольную точку. |
Практическое влияние NS_E_DEVCONTROL_FAILED_SEEK ограничено переходом управления ленточным устройством и списками монтажных решений, которому принадлежит это условие. Для NS_E_DEVCONTROL_FAILED_SEEK, этот код сам по себе не доказывает, что повреждены все входные данные, отсутствуют все кодеки или полностью неработоспособна установка Windows Media. Если EDL ссылается на временной код раньше записанного участка ленты, сохраните первый сбойный вызов и идентификатор его объекта, чтобы последующая оболочка не заменила данные о сбое позиционирования.
Проверка условия без перестройки сеанса
- Запишите
0xC00D1B94,NS_E_DEVCONTROL_FAILED_SEEK, версию Encoder и точный вызов API или обращение к свойству, которое вернуло этот код. - Экспортируйте текущую
.wmeили.prx, затем сохраните целевую отметку входа, текущий необработанный временной код, границы ленты, состояние транспорта и результат позиционирования подключаемого модуля. - Для
NS_E_DEVCONTROL_FAILED_SEEKпроверьте предварительное условие управления ленточным устройством и списка монтажных решений, не меняя одновременно источник, профиль и выходной приёмник. - Выполните одно контролируемое сравнение, изменив только это условие: исправьте время в EDL и до начала кодирования проверьте позиционирование ленты и устройства.
- После изменения пересоздайте затронутый объект Encoder, не предполагая, что существующий граф отбросил прежнее состояние сбоя позиционирования.
Внимательно интерпретируйте соседние результаты
| Результат | Почему это другая граница |
|---|---|
NS_E_INVALID_DEVICE | выбранное оборудование не поддерживает управление лентопротяжным механизмом, требуемое подключаемому модулю |
NS_E_TOO_MANY_DEVICECONTROL | несколько подключаемых модулей управления пытаются одновременно владеть одним устройством кодирования |
NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED | устройство управления активной исходной группой отключается во время захвата |
Исправление и проверка
Непосредственное исправление этого случая — исправить время в EDL и до начала кодирования проверить позиционирование ленты и устройства. Пересоздайте затронутую исходную группу, профиль или выходной объект, повторите ту же операцию и убедитесь, что первый сбойный HRESULT больше не поступает с контрольной точки позиционирования.
Не перематывайте, не извлекайте и не перезаписывайте ленту до сохранения сбойной записи EDL и текущего временного кода: это изменит данные, используемые для воспроизведения условия позиционирования или конца ленты в сеансе, возвращающем NS_E_DEVCONTROL_FAILED_SEEK.
Ссылки для границы NS_E_DEVCONTROL_FAILED_SEEK
- WMEncEditDecisionList.Item.
- Структура управления устройством WMTIMECODE.
- IWMEncSource.MarkOut.
- Подготовка исходной группы к кодированию.
Нужно найти другой код? Найти другой код состояния или ошибки.