Что означает код HRESULT 0xC00D0BCF (NS_E_NO_MORE_SAMPLES)?

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

NS_E_NO_MORE_SAMPLES

NS_E_NO_MORE_SAMPLES: данные, граница и повторная проверка

Практически полезная интерпретация NS_E_NO_MORE_SAMPLES (0xC00D0BCF) означает не просто «сбой media», а reader достиг конца выбранного диапазона или перечисления stream. Это помещает сбой на проверку media format «no more samples» и сужает набор данных, которые нужно собрать до изменения состояния следующей попыткой.

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

Данные профиля и samples

Что зафиксироватьКак это помогает выделить NS_E_NO_MORE_SAMPLES
Ответственный вызовЗафиксируйте метод API, идентификатор объекта, поток или callback и временную метку для контрольной точки «конец выбранного диапазона или stream samples».
Решающие значенияобъект reader или writer, номера stream и input, идентификатор profile, timestamps samples, длины buffers и первый callback либо вызов SDK, вернувший код до закрытия инцидента no more samples
Поколение объектаОтметьте, когда были созданы reader, writer, graph, URL object, streaming session или metadata provider; устаревшее состояние может воспроизвести NS_E_NO_MORE_SAMPLES после изменения конфигурации.
Первый вложенный результатСохраните самый ранний статус codec, COM, socket, DNS, parser или provider до NS_E_NO_MORE_SAMPLES; более поздние сообщения интерфейса менее конкретны.
Случай для сравненияИспользуйте один заведомо рабочий ресурс, проходящий ту же контрольную точку «конец выбранного диапазона или stream samples», изменив только отклонённое предварительное условие.

Анатомия сбоя

Проверка media format «no more samples» достигается, когда reader достиг конца выбранного диапазона или перечисления stream. После этого вызывающая сторона не должна предполагать существование следующего filter, packet, session или metadata state после NS_E_NO_MORE_SAMPLES.

Для отрицательного контроля откройте то же content с минимальной конфигурацией reader или writer и добавляйте спорную option только после успешного baseline для состояния «reader достиг конца выбранного диапазона или перечисления stream». Более поздний HRESULT означает, что эта контрольная точка пройдена, а новый результат относится к другому этапу до закрытия инцидента no more samples.

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

Главное различие: Код фиксирует окончание выбранного диапазона или stream enumeration; это не автоматически ошибка decoder или файла.

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

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

  1. Запишите 0xC00D0BCF, NS_E_NO_MORE_SAMPLES, точную операцию и время первого сбоя.
  2. Сохраните объект reader или writer, номера stream и input, идентификатор profile, timestamps samples, длины buffers и первый callback либо вызов SDK, вернувший код до закрытия инцидента no more samples.
  3. Не используйте повторно graph, session, reader или metadata object, созданные до изменения соответствующей конфигурации или ресурса на границе «reader достиг конца выбранного диапазона или перечисления stream».
  4. Выполните один изолированный тест: повторить чтение с тем же stream/range и подтвердить, что end-of-range достигается только после последнего ожидаемого sample.
  5. Повторите проверку через тот же API и protocol path; другой Player или локальная копия полезны только для сравнения и сами по себе не доказывают исправление исходной границы при проверке «reader достиг конца выбранного диапазона или перечисления stream».
  6. Подтвердите ожидаемое следующее состояние и сохраните новый HRESULT, если он появился, как отдельный результат последующей стадии в сценарии «reader достиг конца выбранного диапазона или перечисления stream».

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

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

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

  • не меняйте одновременно несколько параметров profile и codec: это скрывает первое несовместимое поле при проверке «reader достиг конца выбранного диапазона или перечисления stream».
  • Не удаляйте первое NS_E_NO_MORE_SAMPLES многократными повторами; callbacks и reconnect могут заменить полезное исходное состояние более поздней ошибкой оболочки.
  • Не публикуйте учётные данные, материалы защищённого содержимого или полные закрытые URL в сценарии «reader достиг конца выбранного диапазона или перечисления stream». Записывайте обезличенные identifiers, lengths, hashes и поля protocol, необходимые для воспроизведения этой контрольной точки в сценарии «reader достиг конца выбранного диапазона или перечисления stream».

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

Считайте NS_E_NO_MORE_SAMPLES считайте исправленным только когда тот же API path проходит эту контрольную точку; успех через другой Player или cached copy является лишь дополнительным подтверждением.


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