Что означает код HRESULT 0xC00D1BB8 (NS_E_MULTIPLE_AUDIO_FORMATS)?

 
Предыдущий Следующий
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.

Контролируемая последовательность диагностики

  1. Зафиксируйте 0xC00D1BB8, NS_E_MULTIPLE_AUDIO_FORMATS, версию Encoder и точный вызов API или обращение к свойству, вернувшее ошибку.
  2. Экспортируйте текущую конфигурацию .wme или .prx конфигурацию, затем зафиксируйте индекс аудиоформата, число каналов, частота дискретизации и bitrate каждой audience.
  3. Для NS_E_MULTIPLE_AUDIO_FORMATS, проверяйте предварительное условие «legacy player compatibility rules», не меняя одновременно source, profile и output sink.
  4. Выполните одно контролируемое сравнение, изменив только это условие: использовать один общий аудиоформат либо отказаться от ориентации на legacy Player.
  5. После изменения пересоздайте затронутый объект Encoder; не предполагайте, что существующий graph автоматически отбросил прежнее состояние multiple audio formats.

Близкие HRESULT с другим смыслом

РезультатПочему это другая граница
NS_E_INVALID_VBR_COMPATВнесите одно изолированное изменение: использовать один общий аудиоформат либо отказаться от ориентации на legacy Player. После этого исходный вызов должен пройти ту же контрольную точку для состояния «при требуемой совместимости с Player 7.1 audiences используют разные аудиоформаты».
NS_E_MULTIPLE_VIDEO_SIZESaudiences используют разные размеры 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


Нужно найти другой код? Найти другой код состояния или ошибки.