Exemple #1
0
int main()
{
	int ret = 0;
	void * mV4l2_ctx = NULL;
	int mCaptureFormat;
	int width = 1280;
	int height = 720;

	int number = 0;

	struct v4l2_buffer buf;
	memset(&buf, 0, sizeof(buf));
	
	mV4l2_ctx = CreateV4l2Context();

	setV4L2DeviceName(mV4l2_ctx, "/dev/video1");

	// open v4l2 camera device
	ret = OpenCamera(mV4l2_ctx);

	if (ret != 0)
	{
		LOGE("openCameraDevice failed\n");
		return ret;
	}

	StartCamera(mV4l2_ctx, &width, &height);

	while(number < 300) {

		CameraGetOneframe(mV4l2_ctx,&buf);
		CameraReturnOneframe(mV4l2_ctx,buf.index);
		LOGD("test, number: %d",number);

		number ++;
	}
	
	StopCamera(mV4l2_ctx);

	CloseCamera(mV4l2_ctx);
	DestroyV4l2Context(mV4l2_ctx);
	mV4l2_ctx = NULL;

	return 0;
}
Exemple #2
0
static int startcamera(AWCameraDevice *p)
{	
	AWCameraDevice* camera_dev = (AWCameraDevice *)(p);
	AWCameraContext* CameraCtx = NULL;
	int err = 0;
	
	if(!camera_dev)
		return -1;

	CameraCtx = (AWCameraContext*)(camera_dev->context);

	if(CameraCtx->callback.cookie == NULL) {
		LOGE("should set callback before start Camera");
		return -1;
	}
        camera_dev->isYUYV = 0;
	setV4L2DeviceName(CameraCtx->v4l2ctx, camera_dev->deviceName );
	OpenCamera(CameraCtx->v4l2ctx);

	StartCamera(CameraCtx->v4l2ctx, &CameraCtx->width, &CameraCtx->height);

        camera_dev->isYUYV = V4L2_PIX_FMT_YUYV == v4l2GetCaptureFmt(CameraCtx->v4l2ctx);

	err = getFrameRate(CameraCtx->v4l2ctx);
	LOGD("Camera FPS=%d", err );
	
	set_state(CameraCtx, 1);
	
	// Create the camera thread
	err = pthread_create(&CameraCtx->thread_id, NULL, CameraThread, camera_dev);
	if (err || !CameraCtx->thread_id) {
		LOGE("Create thread error");
		return -1;
	}
	
	return 0;
}