| Предыдущий | Следующий |
| NS_E_NO_AUDIENCES | NS_E_INVALID_VBR_COMPAT |
NS_E_NO_AUDIO_COMPAT
Граница сбоя в объектной модели Encoder
Практически полезная интерпретация NS_E_NO_AUDIO_COMPAT (0xC00D1BB1) — это не просто стандартное сообщение, приведённое выше. Оно указывает на проверка совместимости со старым Player требует наличия аудиопотока в profile в области «правила совместимости со старыми версиями Player».
Профили Windows Media Encoder можно проверять на совместимость со старыми поколениями Windows Media Player в сеансе, который возвращает этот результат. VBR, multiple audiences, различия audio/video format, interlace и non-square pixels могут вывести profile за границы совместимости версии 7.1 на этой контрольной точке.
Данные, отличающие этот код от ошибки оболочки
Profile может быть допустим для Windows Media 9 или новее и при этом намеренно отклоняться, если требуется совместимость с более старой версией, в сеансе, который возвращает этот результат. Например, video-only profile принудительно проверяется валидатором совместимости 7.1. Сохраните он различие до того, как уровень интерфейса преобразует результат в общую ошибку запуска, захвата или профиля.
| Поле | Что сохранить |
|---|---|
| Решающие значения | целевая совместимость, ContentType и число аудиопотоков |
| Объект, вернувший ошибку | результат DetectCompatibility, целевое поколение Player, число audiences, VBR mode, codec и format для каждого audience, frame size, флаг interlace и флаг non-square-pixel |
| Связь с сеансом | то же поколение source group, индекс audience, идентичность объекта и последовательность callback, которые привели к этому результату |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или кодека, зафиксированный до того, как Encoder сопоставил условие с этим результатом |
| Контролируемое сравнение | заведомо рабочий сеанс, в котором изменяется только настройка, относящаяся к границе этого HRESULT |
Интерпретация следующего измерения
| Наблюдение | Как это интерпретировать |
|---|---|
| Наблюдение, подтверждающее он | Решающие данные: целевая совместимость, ContentType и число аудиопотоков. Они подтверждают, что проверка совместимости со старым Player требует наличия аудиопотока в profile в том же поколении объекта. |
| Наблюдение, указывающее на более ранний сбой | Зафиксированные значения удовлетворяют условию этого HRESULT, однако source, драйвер, COM activation или file operation раньше возвращает другой HRESULT. |
| Наблюдение, указывающее на более поздний сбой | Encoder проходит эту границу (проверка совместимости со старым Player требует наличия аудиопотока в profile), но затем на следующем этапе происходит сбой codec, archive или broadcast sink. |
| Проверка после исправления | Примените одно изолированное изменение: добавить аудиопоток или отказаться от требования совместимости со старым Player 7.1. После этого исходный вызов должен пройти ту же контрольную точку. |
Практическое влияние он ограничен переходом «legacy player compatibility rules», которому принадлежит условие «проверка совместимости со старым Player требует наличия аудиопотока в profile». Сам по себе он не доказывает повреждение всех входных данных, отсутствие всех кодеков или неработоспособность всей установки Windows Media. В показательном случае, когда video-only profile принудительно проверяется валидатором совместимости 7.1, сохраните первый неуспешный вызов и идентификатор его объекта, чтобы более поздняя ошибка-оболочка не заменила данные о границе no audio compat.
Проверка условия без перестройки сеанса
- Зафиксируйте
0xC00D1BB1, он, версию Encoder и точный вызов API или обращение к свойству, вернувшее он. - Экспортируйте текущую конфигурацию
.wmeили.prxконфигурацию, затем зафиксируйте целевая совместимость, ContentType и число аудиопотоков. - проверяйте предварительное условие «legacy player compatibility rules», не меняя одновременно source, profile и output sink.
- Проведите одно контролируемое сравнение, изменяя только это условие: добавить аудиопоток или отказаться от требования совместимости со старым Player 7.1.
- После изменения пересоздайте соответствующий объект Encoder; не предполагайте, что существующий graph автоматически отбросил прежнее недопустимое состояние.
Осторожно интерпретируйте соседние результаты
| Результат | Почему это другая граница |
|---|---|
NS_E_INVALID_VBR_COMPAT | режим VBR rate control конфликтует с выбранной целью совместимости Windows Media Player 7.1 |
NS_E_MULTIPLE_AUDIO_FORMATS | audiences используют разные audio formats при требовании совместимости с legacy Player 7.1 |
NS_E_MULTIPLE_VIDEO_SIZES | audiences используют разные размеры кадра при требовании совместимости с Player 7.1 |
Устранение и проверка
Непосредственное исправление этого случая — добавить аудиопоток или отказаться от требования совместимости со старым Player 7.1. Пересоздайте соответствующий source group, profile или output object, повторите ту же операцию и убедитесь, что первый неуспешный HRESULT больше не возникает на контрольной точке no audio compat.
Не описывайте результат проверки совместимости как повреждение codec; сначала определите, действительно ли требуется поддержка старого Player в сеансе, который возвращает он.
Ссылки для него — диагностическая граница
- Определение совместимости профилей.
- IWMEncProfile2.VBRMode.
- Выбор video codec для audience.
- Добавление audience в профиль encoder.
Нужно найти другой код? Найти другой код состояния или ошибки.