Loading camera/libcameraservice/CameraService.cpp +17 −38 Original line number Diff line number Diff line Loading @@ -158,7 +158,6 @@ CameraService::Client::Client(const sp<CameraService>& cameraService, mCameraClient = cameraClient; mClientPid = clientPid; mHardware = openCameraHardware(); mUseOverlay = mHardware->useOverlay(); // Callback is disabled by default mFrameCallbackFlag = FRAME_CALLBACK_FLAG_NOOP; Loading Loading @@ -234,7 +233,7 @@ CameraService::Client::~Client() { // tear down client LOGD("Client E destructor"); if (mSurface != 0 && !mUseOverlay) { if (mSurface != 0) { #if HAVE_ANDROID_OS pthread_t thr; // We unregister the buffers in a different thread because binder does Loading Loading @@ -289,7 +288,7 @@ status_t CameraService::Client::setPreviewDisplay(const sp<ISurface>& surface) Mutex::Autolock surfaceLock(mSurfaceLock); // asBinder() is safe on NULL (returns NULL) if (surface->asBinder() != mSurface->asBinder()) { if (mSurface != 0 && !mUseOverlay) { if (mSurface != 0) { LOGD("clearing old preview surface %p", mSurface.get()); mSurface->unregisterBuffers(); } Loading Loading @@ -342,39 +341,17 @@ status_t CameraService::Client::startPreview() #if DEBUG_DUMP_PREVIEW_FRAME_TO_FILE debug_frame_cnt = 0; #endif status_t ret; if (mUseOverlay) { const char *format = params.getPreviewFormat(); int fmt; LOGD("Use Overlays"); if (!strcmp(format, "yuv422i")) fmt = OVERLAY_FORMAT_YCbCr_422_I; else if (!strcmp(format, "rgb565")) fmt = OVERLAY_FORMAT_RGB_565; else { LOGE("Invalid preview format for overlays"); return -EINVAL; } sp<OverlayRef> ref = mSurface->createOverlay(w, h, fmt); ret = mHardware->setOverlay(new Overlay(ref)); if (ret != NO_ERROR) { LOGE("mHardware->setOverlay() failed with status %d\n", ret); return ret; } ret = mHardware->startPreview(NULL, mCameraService.get()); if (ret != NO_ERROR) LOGE("mHardware->startPreview() failed with status %d\n", ret); } else { LOGD("Don't use Overlays"); ret = mHardware->startPreview(previewCallback, status_t ret = mHardware->startPreview(previewCallback, mCameraService.get()); if (ret == NO_ERROR) { mSurface->unregisterBuffers(); mSurface->registerBuffers(w, h, w, h, PIXEL_FORMAT_YCbCr_420_SP, mSurface->registerBuffers(w,h,w,h, PIXEL_FORMAT_YCbCr_420_SP, mHardware->getPreviewHeap()); } else LOGE("mHardware->startPreview() failed with status %d\n", ret); } else LOGE("mHardware->startPreview() failed with status %d\n", ret); return ret; } Loading @@ -395,7 +372,7 @@ void CameraService::Client::stopPreview() mHardware->stopPreview(); LOGD("stopPreview(), hardware stopped OK"); if (mSurface != 0 && !mUseOverlay) { if (mSurface != 0) { mSurface->unregisterBuffers(); } mPreviewBuffer.clear(); Loading Loading @@ -543,7 +520,7 @@ status_t CameraService::Client::takePicture() return INVALID_OPERATION; } if (mSurface != NULL && !mUseOverlay) if (mSurface != NULL) mSurface->unregisterBuffers(); return mHardware->takePicture(shutterCallback, Loading Loading @@ -596,7 +573,7 @@ void CameraService::Client::yuvPictureCallback(const sp<IMemory>& mem, params.getPictureSize(&w, &h); // Mutex::Autolock clientLock(client->mLock); if (client->mSurface != 0 && !client->mUseOverlay) { if (client->mSurface != 0) { client->mSurface->unregisterBuffers(); client->mSurface->registerBuffers(w,h,w,h, PIXEL_FORMAT_YCbCr_420_SP, heap); Loading Loading @@ -903,3 +880,5 @@ status_t CameraService::onTransact( #endif // DEBUG_HEAP_LEAKS }; // namespace android camera/libcameraservice/CameraService.h +0 −1 Original line number Diff line number Diff line Loading @@ -159,7 +159,6 @@ private: sp<ICameraClient> mCameraClient; sp<CameraHardwareInterface> mHardware; pid_t mClientPid; bool mUseOverlay; }; // ---------------------------------------------------------------------------- Loading include/ui/CameraHardwareInterface.h +0 −6 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ #include <utils/IMemory.h> #include <utils/RefBase.h> #include <ui/CameraParameters.h> #include <ui/Overlay.h> namespace android { Loading Loading @@ -90,11 +89,6 @@ public: * call back parameter may be null. */ virtual status_t startPreview(preview_callback cb, void* user) = 0; /** * Only used if overlays are used for camera preview. */ virtual bool useOverlay() {return false;} virtual status_t setOverlay(const sp<Overlay> &overlay) {return BAD_VALUE;} /** * Stop a previously started preview. Loading Loading
camera/libcameraservice/CameraService.cpp +17 −38 Original line number Diff line number Diff line Loading @@ -158,7 +158,6 @@ CameraService::Client::Client(const sp<CameraService>& cameraService, mCameraClient = cameraClient; mClientPid = clientPid; mHardware = openCameraHardware(); mUseOverlay = mHardware->useOverlay(); // Callback is disabled by default mFrameCallbackFlag = FRAME_CALLBACK_FLAG_NOOP; Loading Loading @@ -234,7 +233,7 @@ CameraService::Client::~Client() { // tear down client LOGD("Client E destructor"); if (mSurface != 0 && !mUseOverlay) { if (mSurface != 0) { #if HAVE_ANDROID_OS pthread_t thr; // We unregister the buffers in a different thread because binder does Loading Loading @@ -289,7 +288,7 @@ status_t CameraService::Client::setPreviewDisplay(const sp<ISurface>& surface) Mutex::Autolock surfaceLock(mSurfaceLock); // asBinder() is safe on NULL (returns NULL) if (surface->asBinder() != mSurface->asBinder()) { if (mSurface != 0 && !mUseOverlay) { if (mSurface != 0) { LOGD("clearing old preview surface %p", mSurface.get()); mSurface->unregisterBuffers(); } Loading Loading @@ -342,39 +341,17 @@ status_t CameraService::Client::startPreview() #if DEBUG_DUMP_PREVIEW_FRAME_TO_FILE debug_frame_cnt = 0; #endif status_t ret; if (mUseOverlay) { const char *format = params.getPreviewFormat(); int fmt; LOGD("Use Overlays"); if (!strcmp(format, "yuv422i")) fmt = OVERLAY_FORMAT_YCbCr_422_I; else if (!strcmp(format, "rgb565")) fmt = OVERLAY_FORMAT_RGB_565; else { LOGE("Invalid preview format for overlays"); return -EINVAL; } sp<OverlayRef> ref = mSurface->createOverlay(w, h, fmt); ret = mHardware->setOverlay(new Overlay(ref)); if (ret != NO_ERROR) { LOGE("mHardware->setOverlay() failed with status %d\n", ret); return ret; } ret = mHardware->startPreview(NULL, mCameraService.get()); if (ret != NO_ERROR) LOGE("mHardware->startPreview() failed with status %d\n", ret); } else { LOGD("Don't use Overlays"); ret = mHardware->startPreview(previewCallback, status_t ret = mHardware->startPreview(previewCallback, mCameraService.get()); if (ret == NO_ERROR) { mSurface->unregisterBuffers(); mSurface->registerBuffers(w, h, w, h, PIXEL_FORMAT_YCbCr_420_SP, mSurface->registerBuffers(w,h,w,h, PIXEL_FORMAT_YCbCr_420_SP, mHardware->getPreviewHeap()); } else LOGE("mHardware->startPreview() failed with status %d\n", ret); } else LOGE("mHardware->startPreview() failed with status %d\n", ret); return ret; } Loading @@ -395,7 +372,7 @@ void CameraService::Client::stopPreview() mHardware->stopPreview(); LOGD("stopPreview(), hardware stopped OK"); if (mSurface != 0 && !mUseOverlay) { if (mSurface != 0) { mSurface->unregisterBuffers(); } mPreviewBuffer.clear(); Loading Loading @@ -543,7 +520,7 @@ status_t CameraService::Client::takePicture() return INVALID_OPERATION; } if (mSurface != NULL && !mUseOverlay) if (mSurface != NULL) mSurface->unregisterBuffers(); return mHardware->takePicture(shutterCallback, Loading Loading @@ -596,7 +573,7 @@ void CameraService::Client::yuvPictureCallback(const sp<IMemory>& mem, params.getPictureSize(&w, &h); // Mutex::Autolock clientLock(client->mLock); if (client->mSurface != 0 && !client->mUseOverlay) { if (client->mSurface != 0) { client->mSurface->unregisterBuffers(); client->mSurface->registerBuffers(w,h,w,h, PIXEL_FORMAT_YCbCr_420_SP, heap); Loading Loading @@ -903,3 +880,5 @@ status_t CameraService::onTransact( #endif // DEBUG_HEAP_LEAKS }; // namespace android
camera/libcameraservice/CameraService.h +0 −1 Original line number Diff line number Diff line Loading @@ -159,7 +159,6 @@ private: sp<ICameraClient> mCameraClient; sp<CameraHardwareInterface> mHardware; pid_t mClientPid; bool mUseOverlay; }; // ---------------------------------------------------------------------------- Loading
include/ui/CameraHardwareInterface.h +0 −6 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ #include <utils/IMemory.h> #include <utils/RefBase.h> #include <ui/CameraParameters.h> #include <ui/Overlay.h> namespace android { Loading Loading @@ -90,11 +89,6 @@ public: * call back parameter may be null. */ virtual status_t startPreview(preview_callback cb, void* user) = 0; /** * Only used if overlays are used for camera preview. */ virtual bool useOverlay() {return false;} virtual status_t setOverlay(const sp<Overlay> &overlay) {return BAD_VALUE;} /** * Stop a previously started preview. Loading