Что означает код HRESULT 0xC00DABEA (MF_E_CAPTURE_PROPERTY_SET_DURING_PHOTO)?

 
Предыдущий Следующий
MF_E_CAPTURE_SOURCE_DEVICE_EXTENDEDPROP_OP_IN_PROGRESS MF_E_CAPTURE_NO_SAMPLES_IN_QUEUE

MF_E_CAPTURE_PROPERTY_SET_DURING_PHOTO

MF_E_CAPTURE_PROPERTY_SET_DURING_PHOTO (0xC00DABEA) означает, что приложение попыталось изменить свойство устройства во время незавершённой съёмки фотографии или серии фотографий.

IMFCaptureEngine::TakePhoto работает асинхронно: возврат S_OK подтверждает принятие запроса, но сама съёмка заканчивается позже событием механизм захвата. До этого момента некоторые параметры камеры должны оставаться стабильными, иначе экспозиция, фокус, баланс белого или другой контроль могут измениться посреди операции.

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

  • Зафиксируйте момент вызова TakePhoto и соответствующее событие MF_CAPTURE_ENGINE_PHOTO_TAKEN. Между ними считайте фотосъёмку незавершённой.
  • Проверьте, не отправляет ли UI или автоматическая настройка камеры новый запрос изменения свойства до получения события завершения.
  • Если свойство должно определять текущий кадр, завершите его изменение до TakePhoto. Если оно относится к следующему кадру, применяйте его после завершения текущей съёмки.
  • Не заменяйте событие фиксированной задержкой: длительность захвата зависит от камеры, активного формата и режима серии.

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


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