--- a/source_sync_rls_25c/source/unisoc/multimedia/camera/libcamera/UT/OemUnitTest/OemUnitTest.cpp +++ b/source_sync_rls_25c/source/unisoc/multimedia/camera/libcamera/UT/OemUnitTest/OemUnitTest.cpp @@ -303,6 +303,7 @@ int OemUnitTest::zslSnapshot() { int ret = CMR_CAMERA_SUCCESS; + Sprd_camera_state preview_state = getPreviewState(); /* * ZSL is disabled on the current single-camera SBC bring-up path. Keep the @@ -317,18 +318,26 @@ mCaptureMode = CAMERA_NORMAL_MODE; mSprdZslEnabled = false; - if (!isPreviewing()) { + if (SPRD_IDLE == preview_state) { ret = startPreview(); if (ret) { CMR_LOGE("zslSnapshot: fail to start preview dump"); return ret; } + } else { + printf("OemUnitTest zslSnapshot reuse preview state %s\n", + getCameraStateStr(preview_state)); } usleep(1000 * 1000); printf("OemUnitTest zslSnapshot preview-dump saved %d frame(s)\n", camera_dump_cnt_pre); + if (camera_dump_cnt_pre <= 0) { + CMR_LOGE("zslSnapshot: no preview frame dumped"); + return CMR_CAMERA_FAIL; + } + return CMR_CAMERA_SUCCESS; } @@ -369,6 +378,7 @@ int OemUnitTest::takePicture() { int ret = CMR_CAMERA_SUCCESS; + Sprd_camera_state preview_state = getPreviewState(); /* * SBC bring-up path: the normal snapshot/JPEG pipeline still depends on @@ -389,18 +399,26 @@ mCaptureMode = CAMERA_NORMAL_MODE; mSprdZslEnabled = false; - if (!isPreviewing()) { + if (SPRD_IDLE == preview_state) { ret = startPreview(); if (ret) { CMR_LOGE("takePicture: fail to start preview dump"); return ret; } + } else { + printf("OemUnitTest takePicture reuse preview state %s\n", + getCameraStateStr(preview_state)); } usleep(1000 * 1000); printf("OemUnitTest takePicture preview-dump saved %d frame(s)\n", camera_dump_cnt_pre); + if (camera_dump_cnt_pre <= 0) { + CMR_LOGE("takePicture: no preview frame dumped"); + return CMR_CAMERA_FAIL; + } + return CMR_CAMERA_SUCCESS; }