diff options
author | Owen Lin <owenlin@google.com> | 2009-11-24 16:50:54 +0800 |
---|---|---|
committer | Owen Lin <owenlin@google.com> | 2009-11-27 12:52:32 +0800 |
commit | d82f452fdcfbaa057c5db3491417c49c86247970 (patch) | |
tree | aa71a7351016556655e4e25359be1d17af82bd13 /camera/libcameraservice/CameraHardwareStub.cpp | |
parent | 429a8eaccc133b2ebf610cccf26c4ad323a18ef3 (diff) | |
download | frameworks_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.cpp | 31 |
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; |