gpointer user_cb[MUSE_CAMERA_EVENT_TYPE_NUM];
gpointer user_data[MUSE_CAMERA_EVENT_TYPE_NUM];
GMutex user_cb_mutex[MUSE_CAMERA_EVENT_TYPE_NUM];
+ gboolean invoke_preview_cb;
/* tbm */
tbm_bufmgr bufmgr;
ret_fd = preview_fd;
CAMERA_MSG_PARAM_SET(param, INT, ret_fd);
+ if (cb_info->invoke_preview_cb == FALSE) {
+ CAM_LOG_WARNING("Skip preview callback for fd[%d] due to preview stop.", ret_fd);
+ goto _PREVIEW_CB_HANDLER_DONE;
+ }
+
if (num_buffer_fd < 0 || num_buffer_fd > BUFFER_MAX_PLANE_NUM) {
CAM_LOG_ERROR("invalid num buffer fd %d", num_buffer_fd);
goto _PREVIEW_CB_HANDLER_DONE;
}
}
+ pc->cb_info->invoke_preview_cb = TRUE;
+
_camera_msg_send(api, fds, pc->cb_info, &ret,
#ifdef TIZEN_FEATURE_NO_TIMEOUT_FOR_PREVIEW
CAMERA_CB_NO_TIMEOUT);
}
}
//LCOV_EXCL_STOP
- /* send stop preview message */
+
+ pc->cb_info->invoke_preview_cb = FALSE;
+
_camera_msg_send(api, NULL, pc->cb_info, &ret, CAMERA_CB_TIMEOUT);
if (ret == CAMERA_ERROR_NONE) {
g_print("\n\t## for MM_CAMCORDER_EXTRA_PREVIEW_MODE_PIPELINE_ELEMENT ##\n");
g_print("\n\tSet device for extra preview[0 ~ 9] : ");
- err = scanf("%d", (int *)&device);
+ err = scanf("%d", &device);
flush_stdin();
err = camera_set_extra_preview_device(hcamcorder->camera, 0, device);