Что означает код HRESULT 0xC00D1BD3 (NS_E_SOURCE_CANNOT_LOOP)?

 
Предыдущий Следующий
NS_E_SAME_AS_INPUT_COMBINATION NS_E_INVALID_FOLDDOWN_COEFFICIENTS

NS_E_SOURCE_CANNOT_LOOP

Граница сбоя в объектной модели Encoder

Практический смысл NS_E_SOURCE_CANNOT_LOOP (0xC00D1BD3) не сводится к стандартному сообщению: код указывает на Repeat включён для источника, не поддерживающего повторное воспроизведение внутри временной шкалы источника и обрезки.

Windows Media Encoder строит временную шкалу для каждого выбранного источника до поступления образцов в кодек в сеансе, который возвращает NS_E_SOURCE_CANNOT_LOOP. Поэтому настройки MarkIn, MarkOut и Repeat и сжатие по времени проверяются относительно длительности источника и друг друга до начала кодирования на этой контрольной точке.

Данные, отделяющие этот код от ошибки оболочки

Даже файл, который открывается и сообщает длительность, может завершиться здесь ошибкой, поскольку проверка временной шкалы выполняется после обнаружения источника, но до первого закодированного образца, в сеансе, который возвращает NS_E_SOURCE_CANNOT_LOOP. Например, устройство потокового захвата настроено на повторное воспроизведение так же, как файловый источник. Сохраните NS_E_SOURCE_CANNOT_LOOP до того, как уровень интерфейса преобразует результат в общую ошибку запуска, захвата или профиля.

ПолеЧто сохранить
Решающие значениясхему/тип источника, флаг Repeat, поддержку позиционирования входного источника и его конечную длительность
Объект, вернувший ошибкуимя группа источников, URL источника или устройство моникер, MarkIn и MarkOut в миллисекундах, определённую длительность, флаг Repeat, предварительная обработка режим и состояние Encoder
Сопоставление с сеансомто же поколение группы источников, индекс аудитории, идентификатор объекта и последовательность обратных вызовов, в которой был получен NS_E_SOURCE_CANNOT_LOOP
Данные нижнего уровняпервый HRESULT COM, драйвера, файловой системы или кодека, зарегистрированный до того, как Encoder сопоставил условие с NS_E_SOURCE_CANNOT_LOOP
Контролируемое сравнениезаведомо рабочий сеанс, в котором изменяется только настройка, относящаяся к границе этого HRESULT

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

НаблюдениеКак это интерпретировать
Наблюдение, подтверждающее этот результатРешающие данные: схему/тип источника, флаг Repeat, поддержку позиционирования входного источника и его конечную длительность. Они подтверждают, что Repeat включён для источника, не поддерживающего повторное воспроизведение в том же поколении объекта.
Наблюдение, указывающее на более ранний сбойЗафиксированные значения удовлетворяют условию этого HRESULT, однако источник, драйвер, активация COM или операция с файлом раньше возвращает другой HRESULT при проверке «Repeat включён для источника, не поддерживающего повторное воспроизведение».
Наблюдение, указывающее на более поздний сбойEncoder проходит эту границу (Repeat включён для источника, не поддерживающего повторное воспроизведение), но затем на следующем этапе происходит сбой кодека, архива или приёмника широковещательной передачи.
Проверка после исправленияПримените одно изолированное изменение: отключите Repeat либо используйте файловый источник с поддержкой позиционирования. После этого исходный вызов должен пройти ту же контрольную точку при проверке «Repeat включён для источника, не поддерживающего повторное воспроизведение».

Практическое влияние NS_E_SOURCE_CANNOT_LOOP ограничено этапом «временная шкала источника и обрезки», которому принадлежит условие «Repeat включён для источника, не поддерживающего повторное воспроизведение». Для NS_E_SOURCE_CANNOT_LOOP сам по себе этот результат не доказывает, что входные данные повреждены, кодеки отсутствуют или вся установка Windows Media неработоспособна. В показательном случае, когда устройство потокового захвата настроено на повторное воспроизведение так же, как файловый источник, сохраните первый вызов, завершившийся ошибкой, и идентификатор его объекта, чтобы последующая ошибка интерфейса не заменила данные о причине отказа от зацикливания источника.

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

  1. Зафиксируйте 0xC00D1BD3, NS_E_SOURCE_CANNOT_LOOP, версию Encoder и точный вызов API или обращение к свойству, вернувшее этот результат.
  2. Экспортируйте текущую конфигурацию .wme или .prx, затем зафиксируйте схему/тип источника, флаг Repeat, поддержку позиционирования входного источника и его конечную длительность.
  3. Для NS_E_SOURCE_CANNOT_LOOP проверяйте предварительное условие «временной шкалы источника и обрезки», не меняя одновременно источник, профиль и выходной приёмник.
  4. Проведите одно контролируемое сравнение, изменяя только это условие: отключите Repeat либо используйте файловый источник с поддержкой позиционирования.
  5. После изменения пересоздайте соответствующий объект Encoder; не предполагайте, что существующий граф автоматически отбросил прежнее недопустимое состояние для состояния «Repeat включён для источника, не поддерживающего повторное воспроизведение».

Осторожно интерпретируйте соседние результаты

РезультатПочему это другая граница
NS_E_BAD_MARKOUTпроверка IWMEncSource.MarkOut относительно MarkIn и конца источника
NS_E_MARKIN_UNSUPPORTEDобрезка по MarkIn или MarkOut запрошена для типа источника, не поддерживающего позиционирование к меткам
NS_E_BAD_MARKINпроверка IWMEncSource.MarkIn до фиксации временной шкалы источника

Устранение и проверка

Непосредственное исправление этого случая — отключите Repeat либо используйте файловый источник с поддержкой позиционирования. Пересоздайте соответствующую группу источников, профиль или выходной объект, повторите ту же операцию и убедитесь, что первый неуспешный HRESULT больше не возникает на этапе проверки возможности зацикливания источника.

Не перекодируйте и не обрезайте единственную копию входного материала во время диагностики временной шкалы; сохраните исходную длительность и временные метки, чтобы недопустимый интервал можно было воспроизвести в сеансе, который возвращает NS_E_SOURCE_CANNOT_LOOP.

Ссылки для NS_E_SOURCE_CANNOT_LOOP — диагностическая граница


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