int mm_app_start_rdi(int cam_id)
{
    int rc = MM_CAMERA_OK;

    mm_camera_app_obj_t *pme = mm_app_get_cam_obj(cam_id);
    int op_mode = 0;

    CDBG("pme = %p, pme->cam =%p, pme->cam->camera_handle = %d",
         pme,pme->cam,pme->cam->camera_handle);

    if (pme->cam_state == CAMERA_STATE_RDI) {
        return rc;
    }

    if (MM_CAMERA_OK != (rc = mm_app_prepare_rdi(cam_id))) {
        CDBG_ERROR("%s:Prepare RDI failed rc=%d\n", __func__, rc);
        goto end;
    }

    if (MM_CAMERA_OK != (rc = mm_app_streamon_rdi(cam_id))) {
        CDBG_ERROR("%s:Stream On RDI failed rc=%d\n", __func__, rc);
        goto end;
    }

    end:
    CDBG("%s: END, rc=%d\n", __func__, rc); 
    return rc;
}
Пример #2
0
int takePicture_rdi(int cam_id)
{
    int rc = MM_CAMERA_OK;
    mm_camera_app_obj_t *pme = mm_app_get_cam_obj(cam_id);

    mm_app_streamoff_rdi(cam_id);
    rdi_op_mode = MM_CAMERA_OP_MODE_CAPTURE;
    mm_app_set_opmode(cam_id, MM_CAMERA_OP_MODE_CAPTURE);
    if (MM_CAMERA_OK != (rc = mm_app_prepare_rdi(cam_id, 1))) {
        CDBG_ERROR("%s:Prepare RDI failed rc=%d\n", __func__, rc);
        goto end;
    }
    if (MM_CAMERA_OK != (rc = mm_app_streamon_rdi(cam_id))) {
        CDBG_ERROR("%s:Stream On RDI failed rc=%d\n", __func__, rc);
        goto end;
    }
    mm_camera_app_wait(cam_id);
    usleep(50*1000);
    mm_app_streamoff_rdi(cam_id);
    mm_app_start_rdi(cam_id);
end:
    return rc;
}