| Предыдущий | Следующий |
| NS_E_MULTIPLE_AUDIO_CODECS | NS_E_AUDIO_BITRATE_STEPDOWN |
NS_E_MULTIPLE_AUDIO_FORMATS
Где Encoder возвращает этот результат
0xC00D1BB8 (NS_E_MULTIPLE_AUDIO_FORMATS) диагностически значимое событие — при требуемой совместимости с Player 7.1 audiences используют разные аудиоформаты. Сохраняйте границу, вернувшую NS_E_MULTIPLE_AUDIO_FORMATS, вместе с исходным callback Encoder или вызовом COM.
Профили Windows Media Encoder можно проверять на совместимость со старыми поколениями Windows Media Player для условия «при требуемой совместимости с Player 7.1 audiences используют разные аудиоформаты». VBR, multiple audiences, различия audio/video formats, interlace и non-square pixels могут вывести профиль за рамки совместимости 7 в сценарии «при требуемой совместимости с Player 7.1 audiences используют разные аудиоформаты».1. В сеансе, возвращающем NS_E_MULTIPLE_AUDIO_FORMATS, именно здесь проверяется условие «при требуемой совместимости с Player 7.1 audiences используют разные аудиоформаты».
Что уже успешно выполнено
Profile может быть допустим для Windows Media 9 или более поздней версии, но намеренно отклоняться, если для session, возвращающей NS_E_MULTIPLE_AUDIO_FORMATS. В показательном случае multiple audio formats audiences меняют частоту дискретизации для оптимизации bitrate, но совместимость зафиксирована на 7.1. NS_E_MULTIPLE_AUDIO_FORMATS следует проверять на объекте, сформировавшем ошибку, а не считать общим сбоем кодека или операционной системы.
Снимок состояния, который нужно сохранить
| Поле | Что сохранить |
|---|---|
| Решающие значения | индекс аудиоформата, число каналов, частота дискретизации и bitrate каждой audience |
| Объект, вернувший ошибку | результат DetectCompatibility, целевое поколение Player, число audiences, режим VBR, codec и format для каждой audience, размер кадра, флаг interlace и флаг non-square-pixel |
| Сопоставление с сеансом | то же поколение source group, индекс audience, идентичность объекта и последовательность callbacks, в которой был получен NS_E_MULTIPLE_AUDIO_FORMATS |
| Данные нижнего уровня | первый HRESULT COM, драйвера, файловой системы или codec, полученный до того, как Encoder сопоставил условие с NS_E_MULTIPLE_AUDIO_FORMATS |
| Контролируемое сравнение | заведомо исправный сеанс, в котором изменяется только настройка границы «при требуемой совместимости с Player 7.1 audiences используют разные аудиоформаты» |
Как интерпретировать следующее наблюдение
| Наблюдение | Как это интерпретировать |
|---|---|
| Наблюдение, подтверждающее этот результат | Решающие данные: индекс аудиоформата, число каналов, частота дискретизации и bitrate каждой audience. Они подтверждают условие «при требуемой совместимости с Player 7.1 audiences используют разные аудиоформаты» в том же поколении объекта. |
| Наблюдение, указывающее на более ранний сбой | Зафиксированные значения удовлетворяют правилу этой границы, но source, драйвер, COM activation или файловая операция раньше возвращает другой HRESULT для условия «при требуемой совместимости с Player 7.1 audiences используют разные аудиоформаты». |
| Наблюдение, указывающее на более поздний сбой | Encoder проходит эту границу («при требуемой совместимости с Player 7.1 audiences используют разные аудиоформаты»), но затем codec, archive или broadcast sink завершается ошибкой на следующем этапе. |
| Проверка после исправления | Внесите одно изолированное изменение: использовать один общий аудиоформат либо отказаться от ориентации на legacy Player. После этого исходный вызов должен пройти ту же контрольную точку для состояния «при требуемой совместимости с Player 7.1 audiences используют разные аудиоформаты». |
Практическое влияние NS_E_MULTIPLE_AUDIO_FORMATS ограничен переходом «legacy player compatibility rules», которому принадлежит условие «при требуемой совместимости с Player 7.1 audiences используют разные аудиоформаты». Для NS_E_MULTIPLE_AUDIO_FORMATS, сам по себе этот результат не доказывает повреждение всех входных данных, отсутствие всех кодеков или неработоспособность всей установки Windows Media. В показательном случае, когда audiences меняют частоту дискретизации для оптимизации bitrate, но совместимость зафиксирована на 7.1, сохраните первый неуспешный вызов и идентификатор его объекта, чтобы более поздняя ошибка-оболочка не заменила данные о границе multiple audio formats.
Контролируемая последовательность диагностики
- Зафиксируйте
0xC00D1BB8,NS_E_MULTIPLE_AUDIO_FORMATS, версию Encoder и точный вызов API или обращение к свойству, вернувшее ошибку. - Экспортируйте текущую конфигурацию
.wmeили.prxконфигурацию, затем зафиксируйте индекс аудиоформата, число каналов, частота дискретизации и bitrate каждой audience. - Для
NS_E_MULTIPLE_AUDIO_FORMATS, проверяйте предварительное условие «legacy player compatibility rules», не меняя одновременно source, profile и output sink. - Выполните одно контролируемое сравнение, изменив только это условие: использовать один общий аудиоформат либо отказаться от ориентации на legacy Player.
- После изменения пересоздайте затронутый объект Encoder; не предполагайте, что существующий graph автоматически отбросил прежнее состояние multiple audio formats.
Близкие HRESULT с другим смыслом
| Результат | Почему это другая граница |
|---|---|
NS_E_INVALID_VBR_COMPAT | Внесите одно изолированное изменение: использовать один общий аудиоформат либо отказаться от ориентации на legacy Player. После этого исходный вызов должен пройти ту же контрольную точку для состояния «при требуемой совместимости с Player 7.1 audiences используют разные аудиоформаты». |
NS_E_MULTIPLE_VIDEO_SIZES | audiences используют разные размеры frames при запрошенной совместимости с Player 7.1 |
NS_E_NO_AUDIO_COMPAT | проверка совместимости со старой версией Player требует наличия audio stream в profile |
Исправление на правильном уровне
Для NS_E_MULTIPLE_AUDIO_FORMATS, целевое исправление — использовать один общий аудиоформат либо отказаться от ориентации на legacy Player. Повтор имеет смысл только после изменения зафиксированного предварительного условия multiple audio formats.
Не называйте результат проверки совместимости повреждением codec: сначала определите, действительно ли требуется поддержка старого Player при проверке «при требуемой совместимости с Player 7.1 audiences используют разные аудиоформаты». Это позволяет повторно проверить тот же сеанс с NS_E_MULTIPLE_AUDIO_FORMATS без потери исходных диагностических данных.
Технические ссылки для NS_E_MULTIPLE_AUDIO_FORMATS
- Определение совместимости профилей.
- IWMEncProfile2.VBRMode.
- Выбор видеокодека для аудитории.
- Добавление аудитории в профиль кодировщика.
Нужно найти другой код? Найти другой код состояния или ошибки.