| Предыдущий | Следующий |
| 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 неработоспособна. В показательном случае, когда устройство потокового захвата настроено на повторное воспроизведение так же, как файловый источник, сохраните первый вызов, завершившийся ошибкой, и идентификатор его объекта, чтобы последующая ошибка интерфейса не заменила данные о причине отказа от зацикливания источника.
Как интерпретировать следующее измерение
- Зафиксируйте
0xC00D1BD3,NS_E_SOURCE_CANNOT_LOOP, версию Encoder и точный вызов API или обращение к свойству, вернувшее этот результат. - Экспортируйте текущую конфигурацию
.wmeили.prx, затем зафиксируйте схему/тип источника, флаг Repeat, поддержку позиционирования входного источника и его конечную длительность. - Для
NS_E_SOURCE_CANNOT_LOOPпроверяйте предварительное условие «временной шкалы источника и обрезки», не меняя одновременно источник, профиль и выходной приёмник. - Проведите одно контролируемое сравнение, изменяя только это условие: отключите Repeat либо используйте файловый источник с поддержкой позиционирования.
- После изменения пересоздайте соответствующий объект 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 — диагностическая граница
- IWMEncSource.MarkOut.
- IWMEncSource.Repeat.
- Подготовка группы источников к кодированию.
- Двухпроходное кодирование.
Нужно найти другой код? Найти другой код состояния или ошибки.