Что означает код HRESULT 0xC00D36B1 (MF_E_BUFFERTOOSMALL)?

 
Предыдущий Следующий
MF_E_PLATFORM_NOT_INITIALIZED MF_E_INVALIDREQUEST

MF_E_BUFFERTOOSMALL

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

MF_E_BUFFERTOOSMALL: Предоставленный буфер Media Foundation недостаточен для результата или медиа-данных, которые должен вернуть компонент. Требуемый размер зависит от конкретного API и текущего типа медиа.

Что проверить

  • Получите или сохраните требуемый размер, если API его сообщает.
  • После смены формата пересчитайте требования к буферу и не используйте кэшированный размер от предыдущего типа.
  • Проверьте, не передаётся ли размер в байтах там, где обёртка ожидает количество элементов.

Что делать

Выделите буфер требуемого размера и повторите только операцию чтения/запроса. Для вызовов, меняющих состояние, сначала проверьте контракт, чтобы повтор не продублировал побочный эффект.

Технические ссылки


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