| Предыдущий | Следующий |
| 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.
Нужно найти другой код? Найти другой код состояния или ошибки.
