| Предыдущий | Следующий |
| 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.
Проверка условия без перестройки сеанса
- Зафиксируйте
0xC00D1BD8, он, версию Encoder и точный вызов API или обращение к свойству, вернувшее он. - Экспортируйте текущую конфигурацию
.wmeили.prxконфигурацию, затем зафиксируйте число проходов, коэффициент time compression и настройки хранения source. - проверьте предусловие ограничений предварительной обработки, анализа и многопроходного кодирования, не меняя одновременно источник, профиль и output sink.
- Проведите одно контролируемое сравнение, изменяя только это условие: выбрать однопроходное кодирование либо отключить time compression.
- После изменения пересоздайте соответствующий объект Encoder; не предполагайте, что существующий graph автоматически отбросил прежнее недопустимое состояние.
Осторожно интерпретируйте соседние результаты
| Результат | Почему это другая граница |
|---|---|
NS_E_NO_AUDIO_TIMECOMPRESSION | time 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.
Во время диагностики не включайте сразу несколько функций предварительной обработки; сначала проверьте обычный однопроходный источник, затем добавьте одно преобразование с необходимым этапом хранения или анализа в сеансе, возвращающем он.
Ссылки для него — диагностическая граница
- Двухпроходное кодирование.
- IWMEncContentAnalyzer.Property.
- Списки решений монтажа для голосовых кодеков.
- IWMEncSource.Repeat.
Нужно найти другой код? Найти другой код состояния или ошибки.
