summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorJamie Gennis <jgennis@google.com>2012-06-13 16:29:51 -0700
committerJesse Hall <jessehall@google.com>2012-06-21 16:54:43 -0700
commit1e5b2b3361ddd07259bf4b29820ca4aa5f3a861b (patch)
tree75bbec756f6a14bdcbd0d8100a2af5ca25d95074 /services
parent95e6e6efcac831874b3d08947d1751d8f65503f9 (diff)
downloadframeworks_av-1e5b2b3361ddd07259bf4b29820ca4aa5f3a861b.zip
frameworks_av-1e5b2b3361ddd07259bf4b29820ca4aa5f3a861b.tar.gz
frameworks_av-1e5b2b3361ddd07259bf4b29820ca4aa5f3a861b.tar.bz2
Update ANativeWindow client code for sync
This change updates all the uses of ANativeWindow to use the new ANW functions that accept and return Sync HAL fence file descriptors. Change-Id: Id7db42d8d6380f8b440d88476ce9211c6225fb16
Diffstat (limited to 'services')
-rw-r--r--services/camera/libcameraservice/Android.mk1
-rw-r--r--services/camera/libcameraservice/Camera2Device.cpp21
-rw-r--r--services/camera/libcameraservice/CameraHardwareInterface.h9
3 files changed, 10 insertions, 21 deletions
diff --git a/services/camera/libcameraservice/Android.mk b/services/camera/libcameraservice/Android.mk
index 9f713fa..8cccf49 100644
--- a/services/camera/libcameraservice/Android.mk
+++ b/services/camera/libcameraservice/Android.mk
@@ -22,6 +22,7 @@ LOCAL_SHARED_LIBRARIES:= \
libcamera_client \
libgui \
libhardware \
+ libsync \
libcamera_metadata
LOCAL_C_INCLUDES += \
diff --git a/services/camera/libcameraservice/Camera2Device.cpp b/services/camera/libcameraservice/Camera2Device.cpp
index 5a37c8d..8d07eee 100644
--- a/services/camera/libcameraservice/Camera2Device.cpp
+++ b/services/camera/libcameraservice/Camera2Device.cpp
@@ -758,7 +758,7 @@ status_t Camera2Device::StreamAdapter::connectToDevice(
ANativeWindowBuffer **anwBuffers = new ANativeWindowBuffer*[mTotalBuffers];
uint32_t bufferIdx = 0;
for (; bufferIdx < mTotalBuffers; bufferIdx++) {
- res = mConsumerInterface->dequeueBuffer(mConsumerInterface.get(),
+ res = native_window_dequeue_buffer_and_wait(mConsumerInterface.get(),
&anwBuffers[bufferIdx]);
if (res != OK) {
ALOGE("%s: Unable to dequeue buffer %d for initial registration for"
@@ -766,15 +766,6 @@ status_t Camera2Device::StreamAdapter::connectToDevice(
goto cleanUpBuffers;
}
- res = mConsumerInterface->lockBuffer(mConsumerInterface.get(),
- anwBuffers[bufferIdx]);
- if (res != OK) {
- ALOGE("%s: Unable to lock buffer %d for initial registration for"
- "stream %d", __FUNCTION__, bufferIdx, mId);
- bufferIdx++;
- goto cleanUpBuffers;
- }
-
buffers[bufferIdx] = anwBuffers[bufferIdx]->handle;
}
@@ -792,7 +783,7 @@ status_t Camera2Device::StreamAdapter::connectToDevice(
cleanUpBuffers:
for (uint32_t i = 0; i < bufferIdx; i++) {
res = mConsumerInterface->cancelBuffer(mConsumerInterface.get(),
- anwBuffers[i]);
+ anwBuffers[i], -1);
if (res != OK) {
ALOGE("%s: Unable to cancel buffer %d after registration",
__FUNCTION__, i);
@@ -878,9 +869,7 @@ int Camera2Device::StreamAdapter::dequeue_buffer(const camera2_stream_ops_t *w,
ANativeWindow *a = toANW(w);
ANativeWindowBuffer* anb;
- res = a->dequeueBuffer(a, &anb);
- if (res != OK) return res;
- res = a->lockBuffer(a, anb);
+ res = native_window_dequeue_buffer_and_wait(a, &anb);
if (res != OK) return res;
*buffer = &(anb->handle);
@@ -911,7 +900,7 @@ int Camera2Device::StreamAdapter::enqueue_buffer(const camera2_stream_ops_t* w,
return err;
}
err = a->queueBuffer(a,
- container_of(buffer, ANativeWindowBuffer, handle));
+ container_of(buffer, ANativeWindowBuffer, handle), -1);
if (err != OK) {
ALOGE("%s: Error queueing buffer to native window: %s (%d)",
__FUNCTION__, strerror(-err), err);
@@ -933,7 +922,7 @@ int Camera2Device::StreamAdapter::cancel_buffer(const camera2_stream_ops_t* w,
stream->mActiveBuffers--;
ANativeWindow *a = toANW(w);
return a->cancelBuffer(a,
- container_of(buffer, ANativeWindowBuffer, handle));
+ container_of(buffer, ANativeWindowBuffer, handle), -1);
}
int Camera2Device::StreamAdapter::set_crop(const camera2_stream_ops_t* w,
diff --git a/services/camera/libcameraservice/CameraHardwareInterface.h b/services/camera/libcameraservice/CameraHardwareInterface.h
index 87a0802..05ac9fa 100644
--- a/services/camera/libcameraservice/CameraHardwareInterface.h
+++ b/services/camera/libcameraservice/CameraHardwareInterface.h
@@ -569,7 +569,7 @@ private:
int rc;
ANativeWindow *a = anw(w);
ANativeWindowBuffer* anb;
- rc = a->dequeueBuffer(a, &anb);
+ rc = native_window_dequeue_buffer_and_wait(a, &anb);
if (!rc) {
*buffer = &anb->handle;
*stride = anb->stride;
@@ -587,8 +587,7 @@ private:
buffer_handle_t* buffer)
{
ANativeWindow *a = anw(w);
- return a->lockBuffer(a,
- container_of(buffer, ANativeWindowBuffer, handle));
+ return 0;
}
static int __enqueue_buffer(struct preview_stream_ops* w,
@@ -596,7 +595,7 @@ private:
{
ANativeWindow *a = anw(w);
return a->queueBuffer(a,
- container_of(buffer, ANativeWindowBuffer, handle));
+ container_of(buffer, ANativeWindowBuffer, handle), -1);
}
static int __cancel_buffer(struct preview_stream_ops* w,
@@ -604,7 +603,7 @@ private:
{
ANativeWindow *a = anw(w);
return a->cancelBuffer(a,
- container_of(buffer, ANativeWindowBuffer, handle));
+ container_of(buffer, ANativeWindowBuffer, handle), -1);
}
static int __set_buffer_count(struct preview_stream_ops* w, int count)