diff options
author | Jamie Gennis <jgennis@google.com> | 2010-08-10 16:37:53 -0700 |
---|---|---|
committer | Jamie Gennis <jgennis@google.com> | 2010-08-23 14:31:30 -0700 |
commit | 4b79168835965cf0fc41ebe2a367e22b4cb20d08 (patch) | |
tree | d70a673d243fdc72171ecbcf51094554f947987a /camera/Camera.cpp | |
parent | 82252a9a732c7325166c36589c1dfa9f2cb8ac04 (diff) | |
download | frameworks_av-4b79168835965cf0fc41ebe2a367e22b4cb20d08.zip frameworks_av-4b79168835965cf0fc41ebe2a367e22b4cb20d08.tar.gz frameworks_av-4b79168835965cf0fc41ebe2a367e22b4cb20d08.tar.bz2 |
Change the framework to use the new camera preview path.
This change makes the camera HAL interface take an ANativeWindow interface from
which all the camera preview buffers will be allocated. The framework code
running in application processes now passes a Surface object rather than an
ISurface to the camera server via Binder when setting the preview surface. The
camera server then forwards that Surface object (which implements the
ANativeWindow interface) to the camera HAL, which uses it to communicate with
SurfaceFlinger to allocate the camera preview buffers.
Change-Id: Ie438f721559cd7de5e4f848a26d96360dda07b5f
Diffstat (limited to 'camera/Camera.cpp')
-rw-r--r-- | camera/Camera.cpp | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/camera/Camera.cpp b/camera/Camera.cpp index 7efc6d7..b5f78e8 100644 --- a/camera/Camera.cpp +++ b/camera/Camera.cpp @@ -167,32 +167,20 @@ status_t Camera::unlock() return c->unlock(); } -// pass the buffered ISurface to the camera service +// pass the buffered Surface to the camera service status_t Camera::setPreviewDisplay(const sp<Surface>& surface) { - LOGV("setPreviewDisplay"); + LOGV("setPreviewDisplay(%p)", surface.get()); sp <ICamera> c = mCamera; if (c == 0) return NO_INIT; if (surface != 0) { - return c->setPreviewDisplay(surface->getISurface()); + return c->setPreviewDisplay(surface); } else { LOGD("app passed NULL surface"); return c->setPreviewDisplay(0); } } -status_t Camera::setPreviewDisplay(const sp<ISurface>& surface) -{ - LOGV("setPreviewDisplay"); - if (surface == 0) { - LOGD("app passed NULL surface"); - } - sp <ICamera> c = mCamera; - if (c == 0) return NO_INIT; - return c->setPreviewDisplay(surface); -} - - // start preview mode status_t Camera::startPreview() { @@ -375,4 +363,3 @@ void Camera::DeathNotifier::binderDied(const wp<IBinder>& who) { } }; // namespace android - |