| Предыдущий | Следующий |
| NS_E_ACTIVE_SG_DEVICE_CONTROL_DISCONNECTED | NS_E_INPUT_DOESNOT_SUPPORT_SMPTE |
NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER
Граница сбоя в объектной модели Encoder
Практически полезная интерпретация NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER (0xC00D1BA7) — это не просто стандартное сообщение, приведённое выше. Оно указывает на content analyzer завершается или опрашивается, не получив ни одного видеокадра внутри ограничений предварительной обработки, анализа и многопроходного кодирования.
Inverse telecine, time compression, предварительная обработка изображения, анализ содержимого и двухпроходное кодирование требуют доступа к определённым типам источников и часто повторного чтения или временного хранения источника в сеансе, возвращающем NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER. Для live, looping и device inputs на этой контрольной точке действуют дополнительные ограничения при проверке «content analyzer завершается или опрашивается, не получив ни одного видеокадра».
Данные, отличающие этот код от ошибки оболочки
Исходный audio- или video-источник может быть исправен, хотя запрошенная предварительная обработка невозможна для жизненного цикла этого источника в сеансе, возвращающем NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER. Например, интервал mark исключает всё видео, хотя analysis остаётся включённым. Сохраните NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER различие до того, как уровень интерфейса преобразует результат в общую ошибку запуска, захвата или профиля.
| Поле | Что сохранить |
|---|---|
| Решающие значения | порядок start/stop analyzer, число кадров, timestamps source и ошибки upstream samples |
| Объект, вернувший ошибку | тип источника, флаг live/file, флаг Repeat, число проходов, настройку временного хранения, фильтры предварительной обработки, число кадров анализатора, входную частоту кадров, путь к EDL содержимого и выбранный режим кодека |
| Связь с сеансом | то же поколение source group, индекс audience, идентичность объекта и последовательность callback, которые привели к NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или кодека, зафиксированный до того, как Encoder сопоставил условие с NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER |
| Контролируемое сравнение | заведомо рабочий сеанс, в котором изменяется только настройка, относящаяся к границе этого HRESULT |
Интерпретация следующего измерения
| Наблюдение | Как это интерпретировать |
|---|---|
| Наблюдение, подтверждающее этот результат | Решающие данные: порядок start/stop analyzer, число кадров, timestamps source и ошибки upstream samples. Они подтверждают, что content analyzer завершается или опрашивается, не получив ни одного видеокадра в том же поколении объекта. |
| Наблюдение, указывающее на более ранний сбой | Зафиксированные значения удовлетворяют условию этого HRESULT, однако source, драйвер, COM activation или file operation раньше возвращает другой HRESULT для состояния «content analyzer завершается или опрашивается, не получив ни одного видеокадра». |
| Наблюдение, указывающее на более поздний сбой | Encoder проходит эту границу (content analyzer завершается или опрашивается, не получив ни одного видеокадра), но затем на следующем этапе происходит сбой codec, archive или broadcast sink. |
| Проверка после исправления | Примените одно изолированное изменение: обеспечить передачу кадров source через analysis pass до чтения результатов. После этого исходный вызов должен пройти ту же контрольную точку при проверке «content analyzer завершается или опрашивается, не получив ни одного видеокадра». |
Практическое влияние NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER ограничен переходом «preprocessing, analysis and multipass constraints», которому принадлежит условие «content analyzer завершается или опрашивается, не получив ни одного видеокадра». Для NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER, сам по себе этот результат не доказывает повреждение всех входных данных, отсутствие всех кодеков или неработоспособность всей установки Windows Media. В показательном случае, когда интервал mark исключает всё видео, хотя analysis остаётся включённым, сохраните первый неуспешный вызов и идентификатор его объекта, чтобы более поздняя ошибка-оболочка не заменила данные о границе no frames submitted to analyzer.
Проверка условия без перестройки сеанса
- Зафиксируйте
0xC00D1BA7,NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER, версию Encoder и точный вызов API или обращение к свойству, вернувшее этот результат. - Экспортируйте текущую конфигурацию
.wmeили.prxконфигурацию, затем зафиксируйте порядок start/stop analyzer, число кадров, timestamps source и ошибки upstream samples. - Для
NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER, проверьте предусловие ограничений предварительной обработки, анализа и многопроходного кодирования, не меняя одновременно источник, профиль и output sink. - Проведите одно контролируемое сравнение, изменяя только это условие: обеспечить передачу кадров source через analysis pass до чтения результатов.
- После изменения пересоздайте соответствующий объект Encoder; не предполагайте, что существующий graph автоматически отбросил прежнее недопустимое состояние при проверке «content analyzer завершается или опрашивается, не получив ни одного видеокадра».
Осторожно интерпретируйте соседние результаты
| Результат | Почему это другая граница |
|---|---|
NS_E_NO_PAL_INVERSE_TELECINE | inverse telecine выбран для PAL-rate content, к которому эта функция неприменима |
NS_E_BAD_CONTENTEDL | загрузка или разбор EDL оптимизации содержимого для voice codec |
NS_E_NO_MULTIPASS_FOR_LIVEDEVICE | двухпроходное кодирование с live-устройства включено без временного хранения источника |
Устранение и проверка
Непосредственное исправление этого случая — обеспечить передачу кадров source через analysis pass до чтения результатов. Пересоздайте соответствующий source group, profile или output object, повторите ту же операцию и убедитесь, что первый неуспешный HRESULT больше не возникает на контрольной точке no frames submitted to analyzer.
Во время диагностики не включайте сразу несколько функций предварительной обработки; сначала проверьте обычный однопроходный источник, затем добавьте одно преобразование с необходимым этапом хранения или анализа в сеансе, возвращающем NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER.
Ссылки для NS_E_NO_FRAMES_SUBMITTED_TO_ANALYZER — диагностическая граница
- Двухпроходное кодирование.
- IWMEncContentAnalyzer.Property.
- Списки решений монтажа для голосовых кодеков.
- IWMEncSource.Repeat.
Нужно найти другой код? Найти другой код состояния или ошибки.
