Что означает код HRESULT 0xC00D36EE (MF_E_BYTESTREAM_NOT_SEEKABLE)?

 
Предыдущий Следующий
MF_E_OPERATION_CANCELLED MF_E_DISABLED_IN_SAFEMODE

MF_E_BYTESTREAM_NOT_SEEKABLE

Что означает MF_E_BYTESTREAM_NOT_SEEKABLE

MF_E_BYTESTREAM_NOT_SEEKABLE (0xC00D36EE) — Ожидалось, что байтовый поток поддерживает поиск, но это не так.

IMFByteStream — общий интерфейс Media Foundation для чтения байтов из файла, сети или другого источника. Здесь компоненту нужен произвольный доступ к потоку, но IMFByteStream::GetCapabilities не сообщает возможность позиционирования.

Что проверить и как подтвердить исправление

Сначала выясните, какая операция потребовала перехода по потоку: разбор заголовка, определение длительности или позиционирование по индексу могут обращаться к разным участкам данных, даже если последовательное чтение работает. Сохраните флаги GetCapabilities и первый вызов, который запросил изменение позиции.

Для собственного IMFByteStream проверяйте согласованность Seek, SetCurrentPosition и текущей позиции. Не объявляйте искусственно поддержку позиционирования для сетевого или потокового источника, который физически умеет читать только вперёд: такой путь нужно буферизовать либо заменить источником с реальным произвольным доступом.

Документация для результата 0xC00D36EE: IMFByteStream::GetCapabilities · IMFByteStream · byte-stream handlers.


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