Пример #1
0
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;
}
Пример #2
0
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;
}