| Предыдущий | Следующий |
| NS_E_NO_MULTICAST | NS_E_MSAUDIO_NOT_INSTALLED |
NS_E_INVALID_INPUT_FORMAT
NS_E_INVALID_INPUT_FORMAT в трассировке формата, графа или потоковой передачи
для него (0xC00D0BB8) решающей границей является writer или transform отклонил исходный входной media type до приёма samples. Диагностируйте проверку media format для invalid input format непосредственно и не делайте вывод о причине только по видимому симптому playback.
Windows Media Format разделяет профиль сжатого потока, необработанный входной формат и декодированный выход reader. Writer затем пакетирует samples, применяет attributes и необязательные расширения data units, поэтому сбой на одной границе не доказывает нечитаемость ASF-контейнера при диагностике «недопустимый входной формат». В случае этот результат, сохраняйте самый ранний результат нижнего уровня: оболочки могут сопоставлять разные причины с одним HRESULT в этой контрольной точке.
Близкие результаты не взаимозаменяемы
Основное различие: input format описывает samples, передаваемые writer, тогда как output format описывает данные, выдаваемые reader или transform при контролируемой повторной проверке invalid input format.
| Близкий HRESULT | Как его сравнивать |
|---|---|
NS_E_MSAUDIO_NOT_INSTALLED | Сравните ответственный API и первое отклонённое значение: этот HRESULT относится к соседней контрольной точке и не обязан иметь ту же причину, что этот результат. |
NS_E_UNEXPECTED_MSAUDIO_ERROR | Используйте состояние объекта и порядок операций, чтобы определить, какой код является исходным, если оба появляются в одной трассировке для состояния «writer или transform отклонил исходный входной media type до приёма samples». |
NS_E_INVALID_OUTPUT_FORMAT | Сохраните этот результат отдельно, если он появляется только после устранения условия этот результат. |
Структура сбоя
Проверка media format для invalid input format достигается, когда writer или transform отклоняет исходный входной media type до приёма samples. Caller не должен считать, что после этого уже существует состояние следующего filter, packet, session или metadata он.
В качестве отрицательного контроля перечислите допустимые input formats и замените только raw input media type на тип, объявленный выбранным codec. Если после этого появляется более поздний HRESULT, исходная контрольная точка пройдена, а новый результат относится к другой стадии контролируемой повторной проверки invalid input format.
Контролируемая проверка формата мультимедиа
- Запишите
0xC00D0BB8, он, точную операцию и время первого сбоя. - Сохраните XML профиля или конфигурация потока, major type, subtype, format block, bitrate, число каналов, частота дискретизации, размеры кадра и результат перечисления кодеков.
- Не используйте повторно graph, session, reader или metadata object, созданные до изменения соответствующей конфигурации или ресурса.
- Выполните один изолированный тест: перечислить принимаемые входные media types и повторить вызов с одним документированно поддерживаемым типом.
- Повторите проверку через тот же API и protocol path; другой Player или локальная копия полезны только для сравнения и сами по себе не доказывают исправление исходной границы.
- Подтвердите ожидаемое следующее состояние и сохраните новый HRESULT, если он появился, как отдельный результат последующей стадии при проверке «writer или transform отклонил исходный входной media type до приёма samples».
Данные профиля и образца
| Зафиксируйте | Как это помогает выделить он |
|---|---|
| Вызов-владелец | Зафиксируйте метод API, идентификатор объекта, поток или callback и временную метку для контрольной точки «недопустимый входной формат». |
| Решающие значения | XML профиля или конфигурация потока, major type, subtype, format block, bitrate, число каналов, частота дискретизации, размеры кадра и результат перечисления кодеков |
| Поколение объекта | Отметьте, когда были созданы reader, writer, graph, URL object, streaming session или metadata provider; устаревшее состояние может воспроизвести он после изменения конфигурации. |
| Первый вложенный результат | Сохраните самый ранний статус codec, COM, socket, DNS, parser или provider до него; более поздние сообщения интерфейса менее конкретны. |
| Случай для сравнения | Используйте один заведомо рабочий ресурс, проходящий ту же контрольную точку «недопустимый входной формат», изменив только отклонённое предварительное условие. |
Как интерпретировать следующий HRESULT
| Результат повторной проверки | Толкование для него |
|---|---|
| Тот же вызов по-прежнему возвращает этот код | Значения, определяющие контрольную точку «недопустимый входной формат», не изменились либо вызывающая сторона всё ещё использует старое поколение объекта. |
| Новый объект работает успешно | На результат повлияли lifetime объекта или cached state он; исправьте пересоздание объекта вместо применения обходного решения на уровне всего компьютера. |
| Вызов доходит до другого HRESULT | Исходная граница пройдена. Диагностируйте новый код отдельно на его собственной стадии format, graph, URL, network или metadata. |
| Сбой возникает только для одного ресурса | Данные указывают на состояние конкретного content, URL, publishing point, stream, attribute или object, а не на общий сбой системы. |
Действия, вводящие в заблуждение
- не меняйте одновременно несколько параметров profile и codec: это скрывает первое несовместимое поле.
- Не стирайте данные о первом появлении он многократными повторами; callbacks и reconnect могут заменить полезное исходное состояние более поздней ошибкой оболочки.
- Не публикуйте учётные данные, материалы защищённого содержимого или полные закрытые URL. Записывайте обезличенные identifiers, lengths, hashes и поля protocol, необходимые для воспроизведения этой контрольной точки.
Технические ссылки
- Обзор Windows Media Format SDK
- Входные, потоковые и выходные форматы
- Профили
- Объекты Windows Media SDK
- Реестр HRESULT Microsoft
Считайте он считайте исправленным только когда тот же API path проходит эту контрольную точку; успех через другой Player или cached copy является лишь дополнительным подтверждением.
Нужно найти другой код? Найти другой код состояния или ошибки.