summaryrefslogtreecommitdiffstats
path: root/camera/libcameraservice/CameraHardwareStub.cpp
diff options
context:
space:
mode:
authorOwen Lin <owenlin@google.com>2009-11-24 16:50:54 +0800
committerOwen Lin <owenlin@google.com>2009-11-27 12:52:32 +0800
commitd82f452fdcfbaa057c5db3491417c49c86247970 (patch)
treeaa71a7351016556655e4e25359be1d17af82bd13 /camera/libcameraservice/CameraHardwareStub.cpp
parent429a8eaccc133b2ebf610cccf26c4ad323a18ef3 (diff)
downloadframeworks_base-d82f452fdcfbaa057c5db3491417c49c86247970.zip
frameworks_base-d82f452fdcfbaa057c5db3491417c49c86247970.tar.gz
frameworks_base-d82f452fdcfbaa057c5db3491417c49c86247970.tar.bz2
Set more camera parameters initial values.
We will need those values for new camera framework. And change the canned jpeg image to match the new width and height setting. Change-Id: I49f8fb63d2b859b9e9f1c5d27657a10203315bb6
Diffstat (limited to 'camera/libcameraservice/CameraHardwareStub.cpp')
-rw-r--r--camera/libcameraservice/CameraHardwareStub.cpp31
1 files changed, 16 insertions, 15 deletions
diff --git a/camera/libcameraservice/CameraHardwareStub.cpp b/camera/libcameraservice/CameraHardwareStub.cpp
index 8ad1f69..8b66389 100644
--- a/camera/libcameraservice/CameraHardwareStub.cpp
+++ b/camera/libcameraservice/CameraHardwareStub.cpp
@@ -47,16 +47,18 @@ void CameraHardwareStub::initDefaultParameters()
{
CameraParameters p;
- p.setPreviewSize(176, 144);
+ p.set("preview-size-values","320x240");
+ p.setPreviewSize(320, 240);
p.setPreviewFrameRate(15);
p.setPreviewFormat("yuv422sp");
- p.setPictureSize(kCannedJpegWidth, kCannedJpegHeight);
+ p.set("picture-size-values", "320x240");
+ p.setPictureSize(320, 240);
p.setPictureFormat("jpeg");
if (setParameters(p) != NO_ERROR) {
LOGE("Failed to set default parameters?!");
- }
+ }
}
void CameraHardwareStub::initHeapLocked()
@@ -80,14 +82,14 @@ void CameraHardwareStub::initHeapLocked()
mPreviewFrameSize = how_big;
- // Make a new mmap'ed heap that can be shared across processes.
+ // Make a new mmap'ed heap that can be shared across processes.
// use code below to test with pmem
mPreviewHeap = new MemoryHeapBase(mPreviewFrameSize * kBufferCount);
// Make an IMemory for each frame so that we can reuse them in callbacks.
for (int i = 0; i < kBufferCount; i++) {
mBuffers[i] = new MemoryBase(mPreviewHeap, i * mPreviewFrameSize, mPreviewFrameSize);
}
-
+
// Recreate the fake camera to reflect the current size.
delete mFakeCamera;
mFakeCamera = new FakeCamera(preview_width, preview_height);
@@ -153,34 +155,34 @@ int CameraHardwareStub::previewThread()
ssize_t offset = mCurrentPreviewFrame * mPreviewFrameSize;
sp<MemoryHeapBase> heap = mPreviewHeap;
-
+
// this assumes the internal state of fake camera doesn't change
// (or is thread safe)
FakeCamera* fakeCamera = mFakeCamera;
-
+
sp<MemoryBase> buffer = mBuffers[mCurrentPreviewFrame];
-
+
mLock.unlock();
// TODO: here check all the conditions that could go wrong
if (buffer != 0) {
// Calculate how long to wait between frames.
int delay = (int)(1000000.0f / float(previewFrameRate));
-
+
// This is always valid, even if the client died -- the memory
// is still mapped in our process.
void *base = heap->base();
-
+
// Fill the current frame with the fake camera.
uint8_t *frame = ((uint8_t *)base) + offset;
fakeCamera->getNextFrameAsYuv422(frame);
-
+
//LOGV("previewThread: generated frame to buffer %d", mCurrentPreviewFrame);
-
+
// Notify the client of a new frame.
if (mMsgEnabled & CAMERA_MSG_PREVIEW_FRAME)
mDataCb(CAMERA_MSG_PREVIEW_FRAME, buffer, mCallbackCookie);
-
+
// Advance the buffer pointer.
mCurrentPreviewFrame = (mCurrentPreviewFrame + 1) % kBufferCount;
@@ -205,7 +207,7 @@ status_t CameraHardwareStub::startPreview()
void CameraHardwareStub::stopPreview()
{
sp<PreviewThread> previewThread;
-
+
{ // scope for the lock
Mutex::Autolock lock(mLock);
previewThread = mPreviewThread;
@@ -356,7 +358,6 @@ status_t CameraHardwareStub::setParameters(const CameraParameters& params)
}
mParameters = params;
-
initHeapLocked();
return NO_ERROR;