Что означает код HRESULT 0xC00D0BD1 (NS_E_MAX_PACKET_SIZE_TOO_SMALL)?

 
Предыдущий Следующий
NS_E_INVALID_SAMPLING_RATE NS_E_LATE_PACKET

NS_E_MAX_PACKET_SIZE_TOO_SMALL

Что означает NS_E_MAX_PACKET_SIZE_TOO_SMALL на уровне ответственного API

Когда этот результат (0xC00D0BD1) появляется, первый заблокированный переход — настроенный предел размера ASF-пакета слишком мал для данных, формируемых профилем. На практике проверку media format для packet size too small нужно воспроизводить с теми же URL, stream, поколением объекта и последовательностью вызовов.

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

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

  1. Запишите 0xC00D0BD1, этот результат, точную операцию и время первого сбоя.
  2. Сохраните номер и размер ASF-пакета, временные метки отправки и получения, sequence number, окно jitter и настройка размера пакета профиля.
  3. Не используйте повторно graph, session, reader или metadata object, созданные до изменения соответствующей конфигурации или ресурса.
  4. Выполните один изолированный тест: увеличить только предел размера ASF-пакета до значения, достаточного для того же профиля, и повторить упаковку.
  5. Повторите проверку через тот же API и protocol path; другой Player или локальная копия полезны только для сравнения и сами по себе не доказывают исправление исходной границы для состояния «настроенный предел размера ASF-пакета слишком мал для данных, формируемых профилем».
  6. Подтвердите ожидаемое следующее состояние и сохраните новый HRESULT, если он появился, как отдельный результат последующей стадии.

Что завершилось и что не завершилось

До этой контрольной точки предыдущая настройка могла завершиться успешно, однако этап «настроенный предел размера ASF-пакета слишком мал для данных, формируемых профилем» не был завершён. Поэтому в журнале нужны и последний успешный вызов, и этот результат.

Целевое сравнение: увеличить только предел размера ASF-пакета до значения, достаточного для того же профиля, и повторить упаковку. Оно меняет спорное предварительное условие, не меняя идентичность мультимедиа и несвязанные параметры компьютера при проверке «настроенный предел размера ASF-пакета слишком мал для данных, формируемых профилем».

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

ЗафиксируйтеКак это помогает выделить он
Вызов-владелецЗафиксируйте метод API, идентификатор объекта, поток или callback и временную метку для контрольной точки «слишком малый максимальный размер пакета».
Решающие значенияномер и размер ASF-пакета, временные метки отправки и получения, sequence number, окно jitter и настройка размера пакета профиля
Поколение объектаОтметьте, когда были созданы 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, необходимые для воспроизведения этой контрольной точки.

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

Основное различие: Ограничение размера пакета относится к packetization выбранного профиля, а не к сетевому разрешению имени или доступности сервера.

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

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

Сохраните трассировку после исправления, чтобы более поздний результат pipeline не был ошибочно принят за повтор этой границы при изоляции случая packet size too small.


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