Что означает код HRESULT 0xC00D0BBB (NS_E_INVALID_OUTPUT_FORMAT)?

 
Предыдущий Следующий
NS_E_UNEXPECTED_MSAUDIO_ERROR NS_E_NOT_CONFIGURED

NS_E_INVALID_OUTPUT_FORMAT

Диагностика NS_E_INVALID_OUTPUT_FORMAT в конвейере Windows Media

Этот результат (0xC00D0BBB) возвращается в декодированный или преобразованный выходной media type не поддерживается выбранным компонентом. Код определяет контрольную точку «недопустимый выходной формат», поэтому диагностику следует начинать с объекта и операции, которым она принадлежит, а не с общего сброса Player.

Windows Media Format разделяет профиль сжатого потока, необработанный входной формат и декодированный выход reader. Writer затем пакетирует samples, применяет attributes и необязательные расширения data units, поэтому сбой на одной границе не доказывает нечитаемость ASF-контейнера при диагностике «недопустимый выходной формат». В случае этот результат, сохраняйте самый ранний результат нижнего уровня: оболочки могут сопоставлять разные причины с одним HRESULT в этой контрольной точке.

Где возникает сбой

К этому моменту компонент уже принял предыдущие предварительные условия, но не может пройти границу: декодированный или преобразованный выходной media type не поддерживается выбранным компонентом. Успешное открытие файла, разрешение имени узла или создание COM-объекта не доказывает допустимость этой последующей операции при проверке «декодированный или преобразованный выходной media type не поддерживается выбранным компонентом».

Наиболее показательная проверка — перечислить поддерживаемые выходные media types и повторить операцию с одним из них, не меняя входной поток. Если после изменения только этого условия тот же вызов проходит дальше, данные подтверждают рассматриваемую границу. Если нет, вернитесь к первому вложенному результату, не расширяя исправление. Этот результат. Если этого не произошло, вернитесь к первой вложенной ошибке, а не расширяйте область исправлений перед завершением диагностики invalid output format.

Данные профиля и образца

ЗафиксируйтеКак это помогает выделить этот результат
Вызов-владелецЗафиксируйте метод API, идентификатор объекта, thread или callback и временную метку этой контрольной точки.
Решающие значенияXML профиля или конфигурация потока, major type, subtype, format block, bitrate, число каналов, частота дискретизации, размеры кадра и результат перечисления кодеков
Поколение объектаОтметьте время создания reader, writer, graph, URL object, streaming session или metadata provider; устаревшее состояние может повторно вызвать он после изменения конфигурации.
Первый вложенный результатСохраните самый ранний status codec, COM, socket, DNS, parser или provider до него; более поздние сообщения UI менее конкретны.
Случай для сравненияИспользуйте один заведомо рабочий ресурс, проходящий ту же контрольную точку, и изменяйте только отклонённое предварительное условие.

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

  1. Запишите 0xC00D0BBB, он, точную операцию и время первого сбоя.
  2. Сохраните XML профиля или конфигурация потока, major type, subtype, format block, bitrate, число каналов, частота дискретизации, размеры кадра и результат перечисления кодеков для состояния «декодированный или преобразованный выходной media type не поддерживается выбранным компонентом».
  3. Не используйте повторно graph, session, reader или metadata object, созданные до изменения соответствующей конфигурации или ресурса.
  4. Выполните один изолированный тест: перечислить поддерживаемые выходные media types и повторить операцию с одним из них, не меняя входной поток.
  5. Повторите проверку через тот же API и protocol path; другой Player или локальная копия полезны только как сравнение и не доказывают исправление исходной границы.
  6. Подтвердите ожидаемое следующее состояние и сохраните новый HRESULT как отдельный downstream result.

Как интерпретировать следующий HRESULT

Результат повторной проверкиТолкование для него
Тот же вызов по-прежнему возвращает этот кодЗначения, определяющие контрольную точку «недопустимый выходной формат», не изменились либо вызывающая сторона всё ещё использует старое поколение объекта.
Новый объект работает успешноНа результат повлияли lifetime объекта или cached state он; исправьте пересоздание объекта вместо обходного решения на уровне всего компьютера.
Вызов доходит до другого HRESULT при проверке «декодированный или преобразованный выходной media type не поддерживается выбранным компонентом»Исходная граница пройдена. Диагностируйте новый код отдельно на его собственной стадии format, graph, URL, network или metadata при проверке «декодированный или преобразованный выходной media type не поддерживается выбранным компонентом».
Сбой возникает только для одного ресурсаДанные указывают на состояние конкретного content, URL, publishing point, stream, attribute или object, а не на общий outage.

Близкие результаты не взаимозаменяемы

Основное различие: output format отклоняется уже после появления source или codec; это не является доказательством того, что input file невозможно открыть на контрольной точке invalid output format.

Близкий HRESULTКак его сравнивать
NS_E_MSAUDIO_NOT_INSTALLEDСравните ответственный API и первое отклонённое значение: соседний HRESULT относится к другой контрольной точке и не обязан иметь ту же причину, что он.
NS_E_UNEXPECTED_MSAUDIO_ERRORИспользуйте состояние объекта и порядок операций, чтобы определить исходный код, если оба появляются в одной трассировке.
NS_E_NOT_CONFIGUREDСохраните он отдельно, если он появляется только после устранения условия он.

Действия, вводящие в заблуждение

  • не меняйте одновременно несколько параметров profile и codec: это скрывает первое несовместимое поле.
  • Не стирайте данные о первом появлении он многократными повторами; callbacks и reconnect могут заменить полезное исходное состояние более поздней ошибкой оболочки.
  • Не публикуйте credentials, материалы protected content или полные private URL. Записывайте только обезличенные identifiers, lengths, hashes и необходимые protocol fields для состояния «декодированный или преобразованный выходной media type не поддерживается выбранным компонентом».

Технические ссылки

Завершайте диагностику только после того, как исходная операция он успешно выполняется на актуальном объекте и наблюдается ожидаемое следующее состояние.


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