Exemple #1
0
DriverFrame* Camera::grabTemporaryFrame()
{
	if(!isStreaming() && !streamOn()) {
		fprintf(stderr, 
			"Camera could not grab frame: streaming could not be turned on.\n");
		return NULL;
	}
	if(buffers == NULL) {
		setupBuffers();
	}
	return buffers->grabTemporaryFrame();
}
status_t QCameraStream_preview::start()
{
    ALOGV("%s: E", __func__);
    status_t ret = NO_ERROR;

    Mutex::Autolock lock(mLock);

    /* call start() in parent class to start the monitor thread*/
    //QCameraStream::start ();

#if 0
    ret = cam_config_prepare_buf(mCameraId, &mDisplayBuf);
    ALOGE("Debug : %s : cam_config_prepare_buf",__func__);
    if(ret != MM_CAMERA_OK) {
        ALOGV("%s:reg preview buf err=%d\n", __func__, ret);
        ret = BAD_VALUE;
        goto error;
    }else {
        ret = NO_ERROR;
    }
#endif
    /* For preview, the OP_MODE we set is dependent upon whether we are
       starting camera or camcorder. For snapshot, anyway we disable preview.
       However, for ZSL we need to set OP_MODE to OP_MODE_ZSL and not
       OP_MODE_VIDEO. We'll set that for now in CamCtrl. So in case of
       ZSL we skip setting Mode here */


    /* call mm_camera action start(...)  */
    ALOGE("Starting Preview/Video Stream. ");
    mFirstFrameRcvd = false;

    ALOGE("Starting Preview/Video Stream. ");
    ret = streamOn();
    if (MM_CAMERA_OK != ret) {
      ALOGE ("%s: preview streaming start err=%d\n", __func__, ret);
      ret = BAD_VALUE;
      goto end;
    }

    ALOGE("Debug : %s : Preview streaming Started",__func__);
    ret = NO_ERROR;

    mActive =  true;
    goto end;

end:
    ALOGE("%s: X", __func__);
    return ret;
  }