| Предыдущий | Следующий |
| NS_E_VIDSOURCESIZE | NS_E_VIDCAPCREATEWINDOW |
NS_E_ICMQUERYFORMAT
Как интерпретировать код в реальном сеансе кодирования
0xC00D1B6C соответствует NS_E_ICMQUERYFORMAT. Практическая область этого результата — проверка приемлемого выходного формата у компрессора Video for Windows; она относится к «согласование видеозахвата и compressor», а не ко всем компонентам Windows Media или Windows.
Механизм и точка сбоя
Live-источник видео проходит открытие устройства, согласование формата захвата, необязательный clipping и настройку preview window до того, как Encoder codec принимает кадры. Ширина, высота, pixel format и состояние драйвера относятся к этой границе. В сеансе, возвращающем этот результат, именно здесь проверяется условие «проверка приемлемого выходного формата у компрессора Video for Windows».
Наличие устройства в результатах перечисления или получение кадра предварительного просмотра не доказывает, что запрошенный формат захвата может непрерывно передаваться кодировщику в сеансе, возвращающем этот результат. Типичный сценарий воспроизведения: выбранный компрессор не может выдавать запрошенные глубину цвета и размеры. Первый результат Encoder ценнее более позднего общего сообщения.
Матрица воспроизведения
| Поле | Что сохранить |
|---|---|
| Решающие значения | FOURCC компрессора, входные и выходные значения BITMAPINFOHEADER и результат ICCompressQuery |
| Объект, вернувший ошибку | device moniker, версию драйвера, запрошенные и native width/height, frame rate, BITMAPINFOHEADER compression и bit depth, состояние preview, результат source plug-in и первую ошибку драйвера |
| Сопоставление с сеансом | то же поколение source group, индекс audience, идентичность объекта и последовательность callbacks, в которой был получен этот результат |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или codec, полученный до того, как Encoder сопоставил условие с ним |
| Контролируемое сравнение | заведомо исправный сеанс, в котором изменяется только настройка границы «проверка приемлемого выходного формата у компрессора Video for Windows» |
Матрица диагностических признаков
| Наблюдение | Как это интерпретировать |
|---|---|
| Наблюдение, подтверждающее он | Решающие данные: FOURCC компрессора, входные и выходные значения BITMAPINFOHEADER и результат ICCompressQuery. Они подтверждают условие «проверка приемлемого выходного формата у компрессора Video for Windows» в том же поколении объекта. |
| Наблюдение, указывающее на более ранний сбой | Зафиксированные значения удовлетворяют правилу этой границы, но source, драйвер, COM activation или файловая операция раньше возвращает другой HRESULT при проверке «проверка приемлемого выходного формата у компрессора Video for Windows». |
| Наблюдение, указывающее на более поздний сбой | Encoder проходит эту границу («проверка приемлемого выходного формата у компрессора Video for Windows»), но затем codec, archive или broadcast sink завершается ошибкой на следующем этапе. |
| Проверка после исправления | Внесите одно изолированное изменение: выбрать выходной формат, который компрессор сообщает как поддерживаемый, либо использовать другой доверенный кодек. После этого исходный вызов должен пройти ту же контрольную точку. |
Практическое влияние он ограничен переходом «видеозахват и согласование компрессора», которому принадлежит условие «проверка приемлемого выходного формата у компрессора Video for Windows». Сам по себе он не доказывает повреждение всех входных данных, отсутствие всех кодеков или неработоспособность всей установки Windows Media. В показательном случае, когда выбранный компрессор не может выдавать запрошенные глубину цвета и размеры, сохраните первый неуспешный вызов и идентификатор его объекта, чтобы более поздняя ошибка-оболочка не заменила данные о границе icmqueryformat.
Матрица диагностических признаков
- Зафиксируйте
0xC00D1B6C, он, версию Encoder и точный вызов API или обращение к свойству, вернувшее ошибку. - Экспортируйте текущую конфигурацию
.wmeили.prxконфигурацию, затем зафиксируйте FOURCC компрессора, входные и выходные значения BITMAPINFOHEADER и результат ICCompressQuery. - Проверьте предварительное условие видеозахвата и согласования компрессора, не меняя одновременно источник, профиль и выходной приёмник.
- Выполните одно контролируемое сравнение, изменив только это условие: выбрать выходной формат, который компрессор сообщает как поддерживаемый, либо использовать другой доверенный кодек.
- После изменения пересоздайте затронутый объект Encoder; не предполагайте, что существующий graph автоматически отбросил прежнее состояние icmqueryformat.
Не объединяйте следующие результаты
| Результат | Почему это другая граница |
|---|---|
NS_E_VIDSOURCESIZE | Внесите одно изолированное изменение: выбрать выходной формат, который компрессор сообщает как поддерживаемый, либо использовать другой доверенный кодек. |
NS_E_VIDCAPCREATEWINDOW | создание скрытого или видимого capture window, необходимого устаревшему пути захвата |
NS_E_VIDSOURCECOMPRESSION | согласование output compression или глубины цвета от video source |
Что изменить, а что оставить без изменений
Измените минимальное ответственное предварительное условие: выберите выходной формат, который компрессор сообщает как поддерживаемый, либо используйте другой доверенный codec. При повторной проверке этот результатсохраняйте неизменными все не связанные параметры источника, аудитории и выхода до повторения того же вызова.
После сохранения первой ошибки не повторяйте бесконечно запрос к нестабильному capture driver в том же процессе; закройте graph и повторите проверку с одним известным форматом при проверке «проверка приемлемого выходного формата у компрессора Video for Windows». Это позволяет повторно проверить тот же сеанс с ним без потери исходных диагностических данных.
Авторитетная документация
- IWMEncVideoSource2.Width и размер живого захвата.
- Структура BITMAPINFOHEADER.
- Проверка формата видеокомпрессора ICCompressQuery.
- Получение настроенного входа кодировщика.
Нужно найти другой код? Найти другой код состояния или ошибки.