Что означает код HRESULT 0xC00D1BD8 (NS_E_NO_TWOPASS_TIMECOMPRESSION)?

 
Предыдущий Следующий
NS_E_NO_AUDIO_TIMECOMPRESSION NS_E_TIMECODE_REQUIRES_VIDEOSTREAM

NS_E_NO_TWOPASS_TIMECOMPRESSION

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

Практически полезная интерпретация NS_E_NO_TWOPASS_TIMECOMPRESSION (0xC00D1BD8) — это не просто стандартное сообщение, приведённое выше. Оно указывает на time compression совмещён с двухпроходным кодированием внутри ограничений предварительной обработки, анализа и многопроходного кодирования.

Inverse telecine, time compression, предварительная обработка изображения, анализ содержимого и двухпроходное кодирование требуют доступа к определённым типам источников и часто повторного чтения или временного хранения источника в сеансе, возвращающем этот результат. Для live, looping и device inputs на этой контрольной точке действуют дополнительные ограничения.

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

Исходный audio- или video-источник может быть исправен, хотя запрошенная предварительная обработка невозможна для жизненного цикла этого источника в сеансе, возвращающем этот результат. Например, preset two-pass VBR совмещён с сокращённой длительностью воспроизведения. Сохраните он различие до того, как уровень интерфейса преобразует результат в общую ошибку запуска, захвата или профиля.

ПолеЧто сохранить
Решающие значениячисло проходов, коэффициент time compression и настройки хранения source
Объект, вернувший ошибкутип источника, флаг live/file, флаг Repeat, число проходов, настройку временного хранения, фильтры предварительной обработки, число кадров анализатора, входную частоту кадров, путь к EDL содержимого и выбранный режим кодека
Связь с сеансомто же поколение source group, индекс audience, идентичность объекта и последовательность callback, которые привели к этому результату
Данные нижнего уровняпервый HRESULT COM, драйвера, файловой системы или кодека, зафиксированный до того, как Encoder сопоставил условие с этим результатом
Контролируемое сравнениезаведомо рабочий сеанс, в котором изменяется только настройка, относящаяся к границе этого HRESULT

Интерпретация следующего измерения

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

Практическое влияние он ограничен переходом «preprocessing, analysis and multipass constraints», которому принадлежит условие «time compression совмещён с двухпроходным кодированием». Сам по себе он не доказывает повреждение всех входных данных, отсутствие всех кодеков или неработоспособность всей установки Windows Media. В показательном случае, когда preset two-pass VBR совмещён с сокращённой длительностью воспроизведения, сохраните первый неуспешный вызов и идентификатор его объекта, чтобы более поздняя ошибка-оболочка не заменила данные о границе no twopass timecompression.

Проверка условия без перестройки сеанса

  1. Зафиксируйте 0xC00D1BD8, он, версию Encoder и точный вызов API или обращение к свойству, вернувшее он.
  2. Экспортируйте текущую конфигурацию .wme или .prx конфигурацию, затем зафиксируйте число проходов, коэффициент time compression и настройки хранения source.
  3. проверьте предусловие ограничений предварительной обработки, анализа и многопроходного кодирования, не меняя одновременно источник, профиль и output sink.
  4. Проведите одно контролируемое сравнение, изменяя только это условие: выбрать однопроходное кодирование либо отключить time compression.
  5. После изменения пересоздайте соответствующий объект Encoder; не предполагайте, что существующий graph автоматически отбросил прежнее недопустимое состояние.

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

РезультатПочему это другая граница
NS_E_NO_AUDIO_TIMECOMPRESSIONtime compression включён для сеанса без audio stream
NS_E_BAD_CONTENTEDLзагрузка или разбор EDL оптимизации содержимого для voice codec
NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZERанализатор содержимого завершается или опрашивается, не получив ни одного видеокадра

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

Непосредственное исправление этого случая — выбрать однопроходное кодирование либо отключить time compression. Пересоздайте соответствующий source group, profile или output object, повторите ту же операцию и убедитесь, что первый неуспешный HRESULT больше не возникает на контрольной точке no twopass timecompression.

Во время диагностики не включайте сразу несколько функций предварительной обработки; сначала проверьте обычный однопроходный источник, затем добавьте одно преобразование с необходимым этапом хранения или анализа в сеансе, возвращающем он.

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


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