| Предыдущий | Следующий |
| MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS | MF_E_INVALID_KEY |
MF_E_SAMPLE_NOT_WRITABLE
Что означает MF_E_SAMPLE_NOT_WRITABLE
MF_E_SAMPLE_NOT_WRITABLE (0xC00D36E0) — Предоставленный образец недоступен для записи.
Компонент пытается изменить данные медиасэмпла или записать результат обработки, но предоставленное хранилище не допускает требуемую запись. Это может быть обычный буфер в системной памяти, двумерный видеобуфер или ресурс Direct3D с иными правилами доступа.
Что проверить и как подтвердить исправление
Определите конкретную требуемую операцию: изменение байтов, длины данных, списка буферов либо запись нового кадра. Для обычного IMFMediaBuffer проверяйте результат Lock и после записи устанавливайте корректную текущую длину данных.
Для двумерного видео или ресурса в видеопамяти обычный IMFMediaBuffer::Lock может быть неправильным путём; используйте интерфейс и режим блокировки, предусмотренные типом ресурса, например IMF2DBuffer2 там, где он доступен.
Если исходный медиасэмпл по контракту доступен только для чтения, создайте подходящий выходной медиасэмпл, доступный для записи, и копируйте данные только когда это действительно требуется. Повторный вызов Lock не меняет свойства самого ресурса.
Документация для результата 0xC00D36E0: IMFMediaBuffer::Lock · IMF2DBuffer2::Lock2DSize · Wine: sample and buffer interfaces.
Нужно найти другой код? Найти другой код состояния или ошибки.