int mm_app_stop_snapshot(int cam_id) { int rc = MM_CAMERA_OK; int i; mm_camera_app_obj_t *pme = mm_app_get_cam_obj(cam_id); if (pme->current_job_id) { /* have current jpeg encoding running, abort the job */ if (pme->jpeg_ops.abort_job) { pme->jpeg_ops.abort_job(pme->jpeg_hdl, pme->current_job_id); pme->current_job_id = 0; } if (pme->current_job_frames) { for (i=0; i<pme->current_job_frames->num_bufs; i++) { if (MM_CAMERA_OK != pme->cam->ops->qbuf(pme->current_job_frames->camera_handle, pme->current_job_frames->ch_id, pme->current_job_frames->bufs[i])) { CDBG_ERROR("%s: Failed in Qbuf\n", __func__); } mm_stream_invalid_cache(pme,pme->current_job_frames->bufs[i]); } free(pme->current_job_frames); pme->current_job_frames = NULL; } } if (MM_CAMERA_OK != (rc = mm_app_streamoff_snapshot(cam_id))) { CDBG_ERROR("%s : Stream off Snapshot stream err",__func__); } pme->cam_state = CAMERA_STATE_OPEN; /* deinit jpeg buf */ rc = mm_stream_release_bufs(pme, &pme->jpeg_buf); end: CDBG("%s: END, rc=%d\n", __func__, rc); return rc; }
int mm_app_stop_snapshot(int cam_id) { int rc = MM_CAMERA_OK; int stream[2]; mm_camera_app_obj_t *pme = mm_app_get_cam_obj(cam_id); stream[0] = pme->stream[MM_CAMERA_SNAPSHOT_MAIN].id; stream[1] = pme->stream[MM_CAMERA_SNAPSHOT_THUMBNAIL].id; if (MM_CAMERA_OK != (rc = mm_app_streamoff_snapshot(cam_id))) { CDBG_ERROR("%s : Stream off Snapshot stream err",__func__); } pme->cam_state = CAMERA_STATE_OPEN; #if 0 #ifndef DISABLE_JPEG_ENCODING my_cam_app.hal_lib.omxJpegClose(); #endif #endif end: CDBG("%s: END, rc=%d\n", __func__, rc); return rc; }