Site icon EfmSoft

Что означает код HRESULT 0xC00D36FB (MF_E_BYTESTREAM_UNKNOWN_LENGTH)?

 
Предыдущий Следующий
MF_E_CANNOT_CREATE_SINK MF_E_SESSION_PAUSEWHILESTOPPED

MF_E_BYTESTREAM_UNKNOWN_LENGTH

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

MF_E_BYTESTREAM_UNKNOWN_LENGTH (0xC00D36FB) — Длина предоставленного байтового потока неизвестна.

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

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

Запишите результат IMFByteStream::GetLength, флаги возможностей и тип источника. Для HTTP-потока отдельно проверьте, действительно ли транспорт знает окончательную длину содержимого и не потерялась ли она в обёртке IMFByteStream.

Не подставляйте вместо полной длины число уже полученных байтов: это ломает расчёт длительности, диапазонов и позиционирования. Если поток действительно неограниченный или его размер заранее неизвестен, используйте путь Media Foundation, рассчитанный на потоковую работу, либо сначала сформируйте конечный буферизованный объект.

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


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

Exit mobile version