Cleaning things up
authorPaul Kocialkowski <contact@paulk.fr>
Sat, 19 Jan 2013 21:27:12 +0000 (22:27 +0100)
committerPaul Kocialkowski <contact@paulk.fr>
Sat, 19 Jan 2013 21:27:12 +0000 (22:27 +0100)
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
exynos_camera.c

index 58cb16f..3320305 100644 (file)
@@ -254,117 +254,7 @@ int exynos_camera_preview(struct exynos_camera *exynos_camera)
        if (exynos_camera == NULL)
                return -EINVAL;
 
-       exynos_camera->preview_window->dequeue_buffer(exynos_camera->preview_window,
-               &buffer, &stride);
-       exynos_camera->gralloc->lock(exynos_camera->gralloc, *buffer, GRALLOC_USAGE_SW_WRITE_OFTEN,
-               0, 0, 640, 480, &addr);
-
-       // FIMC1 V4L2
-#if 0
-       rc = exynos_v4l2_g_fmt_out(exynos_camera, 1, &width_out, &height_out, &fmt_out);
-       if (rc < 0) {
-               LOGE("%s: g fmt failed!", __func__);
-               return -1;
-       }
-
-       width = 640;
-       height = 480;
-       fmt = V4L2_PIX_FMT_NV12;
-
-       if (width_out != width || height_out != height || fmt_out != fmt) {
-               rc = exynos_v4l2_s_fmt_pix_out(exynos_camera, 1, width, height, fmt);
-               if (rc < 0) {
-                       LOGE("%s: s fmt failed!", __func__);
-                       return -1;
-               }
-       }
-
-       rc = exynos_v4l2_s_crop_out(exynos_camera, 1, 0, 0, width, height);
-       if (rc < 0) {
-               LOGE("%s: s crop failed!", __func__);
-               return -1;
-       }
-
-       rc = exynos_v4l2_reqbufs_out(exynos_camera, 1, 1);
-       if (rc < 0) {
-               LOGE("%s: reqbufs failed!", __func__);
-               return -1;
-       }
-
-       rc = exynos_v4l2_s_ctrl(exynos_camera, 1, V4L2_CID_ROTATION, 90);
-       if (rc < 0) {
-               LOGE("%s: s ctrl failed!", __func__);
-               return -1;
-       }
-
-       rc = exynos_v4l2_s_ctrl(exynos_camera, 1, V4L2_CID_HFLIP, 0);
-       if (rc < 0) {
-               LOGE("%s: s ctrl failed!", __func__);
-               return -1;
-       }
-
-       rc = exynos_v4l2_s_ctrl(exynos_camera, 1, V4L2_CID_VFLIP, 0);
-       if (rc < 0) {
-               LOGE("%s: s ctrl failed!", __func__);
-               return -1;
-       }
-
-       rc = exynos_v4l2_g_fbuf(exynos_camera, 1, &base, &width_out, &height_out, &fmt_out);
-       if (rc < 0) {
-               LOGE("%s: g fbuf failed!", __func__);
-               return -1;
-       }
-
-       base = addr;
-
-       if (base_out != base || width_out != width || height_out != height || fmt_out != fmt) {
-               rc = exynos_v4l2_s_fbuf(exynos_camera, 1, base, width, height, fmt);
-               if (rc < 0) {
-                       LOGE("%s: s fbuf failed!", __func__);
-                       return -1;
-               }
-       }
-
-       memset(&fimc_buf, 0, sizeof(fimc_buf));
-       fimc_buf.base[0] = base;
-
-       rc = exynos_v4l2_s_ctrl(exynos_camera, 1, V4L2_CID_DST_INFO, (int) &fimc_buf);
-       if (rc < 0) {
-               LOGE("%s: s ctrl failed!", __func__);
-               return -1;
-       }
-
-       rc = exynos_v4l2_s_fmt_win(exynos_camera, 1, 0, 0, width, height);
-       if (rc < 0) {
-               LOGE("%s: s fmt failed!", __func__);
-               return -1;
-       }
-
-       rc = exynos_v4l2_streamon_out(exynos_camera, 1);
-       if (rc < 0) {
-               LOGE("%s: streamon failed!", __func__);
-               return -1;
-       }
-
-       rc = exynos_v4l2_qbuf_out(exynos_camera, 1, 0);
-       if (rc < 0) {
-               LOGE("%s: qbuf failed!", __func__);
-               return -1;
-       }
-
-       index = exynos_v4l2_dqbuf_out(exynos_camera, 1);
-       if (index < 0) {
-               LOGE("%s: dqbuf failed!", __func__);
-               return -1;
-       }
-
-       rc = exynos_v4l2_streamoff_out(exynos_camera, 1);
-       if (rc < 0) {
-               LOGE("%s: streamon failed!", __func__);
-               return -1;
-       }
-#endif
-       // FIMC0 V4L2
+       // V4L2
 
        rc = exynos_v4l2_poll(exynos_camera, 0);
        if (rc < 0) {
@@ -390,6 +280,11 @@ int exynos_camera_preview(struct exynos_camera *exynos_camera)
 
        // Preview window
 
+       exynos_camera->preview_window->dequeue_buffer(exynos_camera->preview_window,
+               &buffer, &stride);
+       exynos_camera->gralloc->lock(exynos_camera->gralloc, *buffer, GRALLOC_USAGE_SW_WRITE_OFTEN,
+               0, 0, 640, 480, &addr);
+
        if (addr == NULL) {
                LOGE("Unable to get addr");
                return -1;
@@ -397,39 +292,7 @@ int exynos_camera_preview(struct exynos_camera *exynos_camera)
        offset = index*640*480*1.5;
 
        void *frame = (void *) ((int) exynos_camera->preview_memory->data + offset);
-/*
-            // the code below assumes YUV, not RGB
-            {
-                int h;
-                char *src = frame;
-                char *ptr = (char *)addr;
-
-                // Copy the Y plane, while observing the stride
-                for (h = 0; h < height; h++) {
-                    memcpy(ptr, src, width);
-                    ptr += stride;
-                    src += width;
-                }
-
-                {
-                    // U
-                    char *v = ptr;
-                    ptr += stride * height / 4;
-                    for (h = 0; h < height / 2; h++) {
-                        memcpy(ptr, src, width / 2);
-                        ptr += stride / 2;
-                        src += width / 2;
-                    }
-                    // V
-                    ptr = v;
-                    for (h = 0; h < height / 2; h++) {
-                        memcpy(ptr, src, width / 2);
-                        ptr += stride / 2;
-                        src += width / 2;
-                    }
-                }
-            }
-*/
+
        memcpy(addr, frame, 640*480*1.5);
 
        exynos_camera->gralloc->unlock(exynos_camera->gralloc, *buffer);