QCamera2: fix bugs in HAL
- Add event handling for focus event in prepare_snapshot_state
- change to correct stream state when put_buf fails in case of
daemon crash, to handle gracefully exit
Change-Id: I6eebd945c46e1d9c52476318ee3b70f8a2a748af
diff --git a/QCamera2/HAL/QCameraStateMachine.cpp b/QCamera2/HAL/QCameraStateMachine.cpp
index 42fe32e..71e5d7d 100644
--- a/QCamera2/HAL/QCameraStateMachine.cpp
+++ b/QCamera2/HAL/QCameraStateMachine.cpp
@@ -1273,6 +1273,9 @@
qcamera_sm_internal_evt_payload_t *internal_evt =
(qcamera_sm_internal_evt_payload_t *)payload;
switch (internal_evt->evt_type) {
+ case QCAMERA_INTERNAL_EVT_FOCUS_UPDATE:
+ rc = m_parent->processAutoFocusEvent(internal_evt->focus_data);
+ break;
case QCAMERA_INTERNAL_EVT_PREP_SNAPSHOT_DONE:
ALOGI("%s: Received QCAMERA_INTERNAL_EVT_PREP_SNAPSHOT_DONE event",
__func__);
diff --git a/QCamera2/stack/mm-camera-interface/src/mm_camera_stream.c b/QCamera2/stack/mm-camera-interface/src/mm_camera_stream.c
index c79c3c4..9bd4006 100644
--- a/QCamera2/stack/mm-camera-interface/src/mm_camera_stream.c
+++ b/QCamera2/stack/mm-camera-interface/src/mm_camera_stream.c
@@ -598,9 +598,7 @@
case MM_STREAM_EVT_PUT_BUF:
rc = mm_stream_deinit_bufs(my_obj);
/* change state to configed */
- if(0 == rc) {
- my_obj->state = MM_STREAM_STATE_CFG;
- }
+ my_obj->state = MM_STREAM_STATE_CFG;
break;
case MM_STREAM_EVT_REG_BUF:
rc = mm_stream_reg_buf(my_obj);