| Предыдущий | Следующий |
| MF_E_NO_INDEX | MF_E_MISSING_ASF_LEAKYBUCKET |
MF_E_CANNOT_INDEX_IN_PLACE
Что означает MF_E_CANNOT_INDEX_IN_PLACE
MF_E_CANNOT_INDEX_IN_PLACE (0xC00D4657) — Запрошенный индекс нельзя добавить непосредственно в указанное содержимое ASF.
Индекс ASF можно вычислить, но текущая структура файла не позволяет записать его поверх существующего содержимого без изменения размещения контейнерных объектов. Проблема не в размере временного буфера, а в том, куда должен попасть готовый индекс и обновлённый объект заголовка ASF.
Что проверить и как подтвердить исправление
В режиме записи IMFASFIndexer сначала сформируйте и зафиксируйте индекс, получите требуемый размер и позицию записи. Если в исходном ASF нет подходящего места, создайте новый выходной байтовый поток и перепишите контейнер вместо перезаписи соседних байтов.
После добавления индекса нужно заново сформировать заголовок ASF, чтобы он описывал новую структуру и размеры файла. Исправление подтверждается открытием перестроенного файла и работой позиционирования по новому индексу.
Документация для результата 0xC00D4657: IMFASFIndexer read/write model · writing completed index data and regenerating the header · FFmpeg ASF muxer source.
Нужно найти другой код? Найти другой код состояния или ошибки.
