int mm_app_start_preview(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_PREVIEW) {
        return rc;
    }

    if (!my_cam_app.run_sanity) {
        if (MM_CAMERA_OK != initDisplay()) {
            CDBG_ERROR("%s : Could not initalize display",__func__);
            goto end;
        }
    }

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

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

    end:
    CDBG("%s: END, rc=%d\n", __func__, rc); 
    return rc;
}
int mm_app_open_recorder(int cam_id)
{
	int rc = MM_CAMERA_OK;
	int value = 1;
	int powermode = 1;

	mm_camera_app_obj_t *pme = mm_app_get_cam_obj(cam_id);

	CDBG("%s: mm_app_open_recorder",__func__);
	if(pme->cam_mode == RECORDER_MODE) {
		CDBG("%s : Already in record mode",__func__);
		return rc;
	}

	if(MM_CAMERA_OK != (rc = mm_app_stop_preview(cam_id))){
		CDBG_ERROR("%s:Stop preview err=%d\n", __func__, rc);
		goto end;
	}

	if(MM_CAMERA_OK != initDisplay())
	{
		CDBG_ERROR("%s : Could not initalize display",__func__);
		goto end;
	}

	pme->cam->ops->set_parm(pme->cam->camera_handle,MM_CAMERA_PARM_RECORDING_HINT, &value);

	pme->cam->ops->set_parm(pme->cam->camera_handle,MM_CAMERA_PARM_LOW_POWER_MODE, &powermode);


	if(MM_CAMERA_OK != (rc = mm_app_prepare_preview(cam_id))){
		CDBG_ERROR("%s:stream on preview err=%d\n", __func__, rc);
		goto end;
	}

	if(MM_CAMERA_OK != (rc = mm_app_prepare_video(cam_id))){
		CDBG_ERROR("%s:stream on video err=%d\n", __func__, rc);
		goto end;
	}

	if(MM_CAMERA_OK != (rc = mm_app_streamon_preview(cam_id))){
		CDBG_ERROR("%s:start preview err=%d\n", __func__, rc);
		goto end;
	}
	pme->cam_mode = RECORDER_MODE;
end:
	CDBG("%s: END, rc=%d\n", __func__, rc);
	return rc;
}