summaryrefslogtreecommitdiffstats
path: root/camera/smdk4x12_utils.c
diff options
context:
space:
mode:
authorWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2016-03-18 14:40:14 (GMT)
committerWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2016-03-18 14:40:26 (GMT)
commit5fe9b2c621b08a16b00e7080c30b9875155fdc43 (patch)
tree91b3a5569c4300bff48e3ba935b9d8d9634a4593 /camera/smdk4x12_utils.c
parent062cf13b091d82edc08f3d8fa8bfa3961aae9ee2 (diff)
downloaddevice_samsung_smdk4412-common-5fe9b2c621b08a16b00e7080c30b9875155fdc43.zip
device_samsung_smdk4412-common-5fe9b2c621b08a16b00e7080c30b9875155fdc43.tar.gz
device_samsung_smdk4412-common-5fe9b2c621b08a16b00e7080c30b9875155fdc43.tar.bz2
camera: switch to CyanogenMod's version of the free software camera
Replicant's version locks up, sometimes already after taking only one picture. CyanogenMod's camera seems more stable. Only the preview format was changed to RGB565. TODO: Incorporate fixes from both version. Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de>
Diffstat (limited to 'camera/smdk4x12_utils.c')
-rw-r--r--camera/smdk4x12_utils.c174
1 files changed, 0 insertions, 174 deletions
diff --git a/camera/smdk4x12_utils.c b/camera/smdk4x12_utils.c
deleted file mode 100644
index 90d2167..0000000
--- a/camera/smdk4x12_utils.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright (C) 2013 Paul Kocialkowski <contact@paulk.fr>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <fcntl.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <malloc.h>
-#include <ctype.h>
-
-#define LOG_TAG "smdk4x12_utils"
-#include <utils/Log.h>
-
-#include "smdk4x12_camera.h"
-
-int list_head_insert(struct list_head *list, struct list_head *prev,
- struct list_head *next)
-{
- if (list == NULL)
- return -EINVAL;
-
- list->prev = prev;
- list->next = next;
-
- if(prev != NULL)
- prev->next = list;
- if(next != NULL)
- next->prev = list;
-
- return 0;
-}
-
-void list_head_remove(struct list_head *list)
-{
- if(list == NULL)
- return;
-
- if(list->next != NULL)
- list->next->prev = list->prev;
- if(list->prev != NULL)
- list->prev->next = list->next;
-}
-
-
-int smdk4x12_camera_buffer_length(int width, int height, int format)
-{
- float bpp;
- int buffer_length;
-
- switch (format) {
- case V4L2_PIX_FMT_RGB32:
- bpp = 4.0f;
- buffer_length = (int) ((float) width * (float) height * bpp);
- break;
- case V4L2_PIX_FMT_RGB565:
- case V4L2_PIX_FMT_YUYV:
- case V4L2_PIX_FMT_UYVY:
- case V4L2_PIX_FMT_VYUY:
- case V4L2_PIX_FMT_YVYU:
- case V4L2_PIX_FMT_YUV422P:
- case V4L2_PIX_FMT_NV16:
- case V4L2_PIX_FMT_NV61:
- bpp = 2.0f;
- buffer_length = (int) ((float) width * (float) height * bpp);
- break;
- case V4L2_PIX_FMT_NV12:
- case V4L2_PIX_FMT_NV12T:
- case V4L2_PIX_FMT_YUV420:
- case V4L2_PIX_FMT_YVU420:
- bpp = 1.5f;
- buffer_length = SMDK4x12_CAMERA_ALIGN(width * height);
- buffer_length += SMDK4x12_CAMERA_ALIGN(width * height / 2);
- break;
- case V4L2_PIX_FMT_NV21:
- bpp = 1.5f;
- buffer_length = (int) ((float) width * (float) height * bpp);
- break;
- case V4L2_PIX_FMT_JPEG:
- case V4L2_PIX_FMT_INTERLEAVED:
- default:
- buffer_length = -1;
- bpp = 0;
- break;
- }
-
- return buffer_length;
-}
-
-void smdk4x12_camera_yuv_planes(int width, int height, int format, int address, int *address_y, int *address_cb, int *address_cr)
-{
- switch (format) {
- case V4L2_PIX_FMT_RGB32:
- case V4L2_PIX_FMT_RGB565:
- case V4L2_PIX_FMT_YUYV:
- case V4L2_PIX_FMT_UYVY:
- case V4L2_PIX_FMT_VYUY:
- case V4L2_PIX_FMT_YVYU:
- if (address_y != NULL)
- *address_y = address;
- break;
- case V4L2_PIX_FMT_YUV420:
- if (address_y != NULL)
- *address_y = address;
-
- address += SMDK4x12_CAMERA_ALIGN(width * height);
-
- if (address_cb != NULL)
- *address_cb = address;
-
- address += SMDK4x12_CAMERA_ALIGN(width * height / 4);
-
- if (address_cr != NULL)
- *address_cr = address;
- break;
- case V4L2_PIX_FMT_NV12:
- case V4L2_PIX_FMT_NV12T:
- if (address_y != NULL)
- *address_y = address;
-
- address += SMDK4x12_CAMERA_ALIGN(width * height);
-
- if (address_cb != NULL)
- *address_cb = address;
-
- if (address_cr != NULL)
- *address_cr = address;
- break;
- case V4L2_PIX_FMT_NV21:
- case V4L2_PIX_FMT_NV16:
- case V4L2_PIX_FMT_NV61:
- default:
- if (address_y != NULL)
- *address_y = address;
-
- address += width * height;
-
- if (address_cb != NULL)
- *address_cb = address;
-
- if (address_cr != NULL)
- *address_cr = address;
- break;
- }
-}
-
-int smdk4x12_gralloc_format(int format)
-{
- switch (format) {
- case V4L2_PIX_FMT_NV21:
- return HAL_PIXEL_FORMAT_YCrCb_420_SP;
- case V4L2_PIX_FMT_YUV420:
- return HAL_PIXEL_FORMAT_YV12;
- case V4L2_PIX_FMT_RGB565:
- return HAL_PIXEL_FORMAT_RGB_565;
- case V4L2_PIX_FMT_RGB32:
- return HAL_PIXEL_FORMAT_RGBX_8888;
- default:
- return HAL_PIXEL_FORMAT_YCrCb_420_SP;
- }
-}