summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Kocialkowski <contact@paulk.fr>2012-10-06 16:38:51 +0200
committerPaul Kocialkowski <contact@paulk.fr>2012-11-08 15:29:05 +0100
commit7f99635af4d8ef899302e0746bede3162708652a (patch)
tree124dfad46bcc2b4db77642e565bee61f0d95fced
parent79038c7ed52de607811294cea21f055d8427dcf6 (diff)
downloaddevice_samsung_aries-common-7f99635af4d8ef899302e0746bede3162708652a.zip
device_samsung_aries-common-7f99635af4d8ef899302e0746bede3162708652a.tar.gz
device_samsung_aries-common-7f99635af4d8ef899302e0746bede3162708652a.tar.bz2
libcamera: Use RGB565 preview format
Change-Id: Ieafe36965c12e4407752270114662c75f8a81cca Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
-rwxr-xr-xlibcamera/SecCameraHWInterface.cpp47
1 files changed, 9 insertions, 38 deletions
diff --git a/libcamera/SecCameraHWInterface.cpp b/libcamera/SecCameraHWInterface.cpp
index bbc5b64..e1e9524 100755
--- a/libcamera/SecCameraHWInterface.cpp
+++ b/libcamera/SecCameraHWInterface.cpp
@@ -183,10 +183,10 @@ void CameraHardwareSec::initDefaultParameters(int cameraId)
LOGE("getSnapshotMaxSize fail (%d / %d) \n",
snapshot_max_width, snapshot_max_height);
String8 previewColorString;
- previewColorString = CameraParameters::PIXEL_FORMAT_YUV420SP;
+ previewColorString = CameraParameters::PIXEL_FORMAT_RGB565;
previewColorString.append(",");
- previewColorString.append(CameraParameters::PIXEL_FORMAT_YUV420P);
- p.setPreviewFormat(CameraParameters::PIXEL_FORMAT_YUV420SP);
+ previewColorString.append(CameraParameters::PIXEL_FORMAT_RGB565);
+ p.setPreviewFormat(CameraParameters::PIXEL_FORMAT_RGB565);
p.set(CameraParameters::KEY_SUPPORTED_PREVIEW_FORMATS, previewColorString.string());
p.set(CameraParameters::KEY_VIDEO_FRAME_FORMAT, CameraParameters::PIXEL_FORMAT_YUV420P);
p.setPreviewSize(preview_max_width, preview_max_height);
@@ -420,7 +420,7 @@ status_t CameraHardwareSec::setPreviewWindow(preview_stream_ops *w)
int preview_width;
int preview_height;
mParameters.getPreviewSize(&preview_width, &preview_height);
- int hal_pixel_format = HAL_PIXEL_FORMAT_YV12;
+ int hal_pixel_format = HAL_PIXEL_FORMAT_RGB_565;
const char *str_preview_format = mParameters.getPreviewFormat();
LOGV("%s: preview format %s", __func__, str_preview_format);
@@ -577,37 +577,8 @@ int CameraHardwareSec::previewThread()
0, 0, width, height, &vaddr)) {
char *frame = ((char *)mPreviewHeap->data) + offset;
- // the code below assumes YUV, not RGB
- {
- int h;
- char *src = frame;
- char *ptr = (char *)vaddr;
-
- // 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;
- }
- }
- }
+ // Copy RGB565 frame
+ memcpy(vaddr, frame, width * height * 2);
mGrallocHal->unlock(mGrallocHal, *buf_handle);
}
@@ -1390,17 +1361,17 @@ status_t CameraHardwareSec::setParameters(const CameraParameters& params)
const char *new_str_preview_format = params.getPreviewFormat();
LOGV("%s : new_preview_width x new_preview_height = %dx%d, format = %s",
__func__, new_preview_width, new_preview_height, new_str_preview_format);
-
+/*
if (strcmp(new_str_preview_format, CameraParameters::PIXEL_FORMAT_YUV420SP) &&
strcmp(new_str_preview_format, CameraParameters::PIXEL_FORMAT_YUV420P)) {
LOGE("Unsupported preview color format: %s", new_str_preview_format);
return BAD_VALUE;
}
-
+*/
if (0 < new_preview_width && 0 < new_preview_height &&
new_str_preview_format != NULL &&
isSupportedPreviewSize(new_preview_width, new_preview_height)) {
- int new_preview_format = V4L2_PIX_FMT_YUV420;
+ int new_preview_format = V4L2_PIX_FMT_RGB565;
int current_preview_width, current_preview_height, current_frame_size;
mSecCamera->getPreviewSize(&current_preview_width,