diff --git a/libcamera2/ExynosCameraHWInterface2.cpp b/libcamera2/ExynosCameraHWInterface2.cpp
index 2cdb41e..ea90d05 100644
--- a/libcamera2/ExynosCameraHWInterface2.cpp
+++ b/libcamera2/ExynosCameraHWInterface2.cpp
@@ -3340,18 +3340,12 @@
                 m_ctlInfo.flash.m_flashDecisionResult = false;
             }
 
-            // TODO : set torch mode for video recording. need to find proper position.
-            // m_wideAspect is will be changed to recording hint
-            if ((shot_ext->shot.ctl.flash.flashMode == CAM2_FLASH_MODE_SINGLE) && m_wideAspect) {
-                shot_ext->shot.ctl.flash.flashMode = CAM2_FLASH_MODE_TORCH;
-                shot_ext->shot.ctl.flash.firingPower = 10;
-                m_ctlInfo.flash.m_flashTorchMode = true;
-            } else if (m_wideAspect){
-                shot_ext->shot.ctl.flash.flashMode = CAM2_FLASH_MODE_OFF;
-                shot_ext->shot.ctl.flash.firingPower = 0;
-                m_ctlInfo.flash.m_flashTorchMode = false;
+            if (shot_ext->shot.ctl.flash.flashMode == CAM2_FLASH_MODE_TORCH) {
+                if (m_ctlInfo.flash.m_flashTorchMode == false) {
+                    m_ctlInfo.flash.m_flashTorchMode = true;
+                }
             } else {
-                if (m_ctlInfo.flash.m_flashTorchMode) {
+                if (m_ctlInfo.flash.m_flashTorchMode == true) {
                     shot_ext->shot.ctl.flash.flashMode = CAM2_FLASH_MODE_OFF;
                     shot_ext->shot.ctl.flash.firingPower = 0;
                     m_ctlInfo.flash.m_flashTorchMode = false;
@@ -4765,7 +4759,7 @@
     switch (m_afMode) {
     case AA_AFMODE_AUTO:
     case AA_AFMODE_MACRO:
-    case AA_AFMODE_OFF:
+    case AA_AFMODE_MANUAL:
         ALOGV("[AF] OnAfTrigger - AUTO,MACRO,OFF (Mode %d) ", m_afMode);
         // If flash is enable, Flash operation is executed before triggering AF
         if ((m_ctlInfo.flash.i_flashMode >= AA_AEMODE_ON_AUTO_FLASH)
@@ -4788,6 +4782,7 @@
         OnAfTriggerCAFPicture(id);
         break;
 
+    case AA_AFMODE_OFF:
     default:
         break;
     }
diff --git a/libcamera2/MetadataConverter.cpp b/libcamera2/MetadataConverter.cpp
index e4092bc..d3dd2b3 100644
--- a/libcamera2/MetadataConverter.cpp
+++ b/libcamera2/MetadataConverter.cpp
@@ -154,7 +154,7 @@
             case ANDROID_FLASH_MODE:
                 if (NO_ERROR != CheckEntryTypeMismatch(&curr_entry, TYPE_BYTE, 1))
                     break;
-                dst->ctl.flash.flashMode = (enum flash_mode)curr_entry.data.u8[0];
+                dst->ctl.flash.flashMode = (enum flash_mode)(curr_entry.data.u8[0] + 1);
                 break;
 
             case ANDROID_FLASH_FIRING_POWER:
