Site icon EfmSoft

Что означает код HRESULT 0xC00DABE4 (MF_E_CAPTURE_ENGINE_INVALID_OP)?

 
Предыдущий Следующий
MF_E_CAPTURE_SINK_ROTATE_ERROR MF_E_CAPTURE_ENGINE_ALL_EFFECTS_REMOVED

MF_E_CAPTURE_ENGINE_INVALID_OP

MF_E_CAPTURE_ENGINE_INVALID_OP (0xC00DABE4) означает, что запрошенная операция механизм захвата недопустима в его текущем состоянии.

Захват в Media Foundation построен как асинхронный автомат состояний. Initialize, запуск и остановка предварительного просмотра/записи, а также TakePhoto могут принять запрос сейчас, а завершить его позже событием через IMFCaptureEngineOnEventCallback::OnEvent. Поэтому успешный возврат метода ещё не означает, что переход состояния завершён и можно немедленно запускать следующую конфликтующую операцию.

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

  • Запишите последовательность Initialize, StartPreview, StopPreview, StartRecord, StopRecord и TakePhoto вместе с соответствующими событиями механизм захвата.
  • Храните отдельно состояние «запрос отправлен» и «получено событие завершения». Ошибка часто возникает, когда код считает эти два момента одним состоянием.
  • Проверьте повторные команды из UI, таймеров и параллельных обработчиков: две логически одинаковые команды могут попасть в механизм захвата до завершения первой.
  • Не лечите HRESULT циклическим повтором того же вызова. Исправление должно менять логику переходов и разрешать следующую операцию только после документированного события завершения.

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


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

Exit mobile version