diff options
author | Eino-Ville Talvala <etalvala@google.com> | 2015-06-09 13:44:19 -0700 |
---|---|---|
committer | Eino-Ville Talvala <etalvala@google.com> | 2015-06-09 14:52:26 -0700 |
commit | 727d172137b4f32681c098de8e2623c0b65a6406 (patch) | |
tree | 8e7a403274d5a770ecd473d6ef66f3a5f32f45da /services/camera/libcameraservice/device3 | |
parent | 9a17941fa70e43119d2c3464bc00a3cd30b2bd14 (diff) | |
download | frameworks_av-727d172137b4f32681c098de8e2623c0b65a6406.zip frameworks_av-727d172137b4f32681c098de8e2623c0b65a6406.tar.gz frameworks_av-727d172137b4f32681c098de8e2623c0b65a6406.tar.bz2 |
CameraService: Add consumer name to output stream dumpsys
Also switch use of ANativeWindow to Surface, to get to the
getConsumerName() method where necessary.
Surface can always be cast to ANativeWindow, but not the other way
around, so it's a better option anyway.
Change-Id: Ie5c2d30821c1a754f9e382699ff50b4b328288b3
Diffstat (limited to 'services/camera/libcameraservice/device3')
5 files changed, 17 insertions, 9 deletions
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp index b16b881..c28a57e 100644 --- a/services/camera/libcameraservice/device3/Camera3Device.cpp +++ b/services/camera/libcameraservice/device3/Camera3Device.cpp @@ -817,7 +817,7 @@ status_t Camera3Device::createZslStream( return OK; } -status_t Camera3Device::createStream(sp<ANativeWindow> consumer, +status_t Camera3Device::createStream(sp<Surface> consumer, uint32_t width, uint32_t height, int format, android_dataspace dataSpace, camera3_stream_rotation_t rotation, int *id) { ATRACE_CALL(); diff --git a/services/camera/libcameraservice/device3/Camera3Device.h b/services/camera/libcameraservice/device3/Camera3Device.h index 180b1f8..e2fd8d4 100644 --- a/services/camera/libcameraservice/device3/Camera3Device.h +++ b/services/camera/libcameraservice/device3/Camera3Device.h @@ -94,7 +94,7 @@ class Camera3Device : // Actual stream creation/deletion is delayed until first request is submitted // If adding streams while actively capturing, will pause device before adding // stream, reconfiguring device, and unpausing. - virtual status_t createStream(sp<ANativeWindow> consumer, + virtual status_t createStream(sp<Surface> consumer, uint32_t width, uint32_t height, int format, android_dataspace dataSpace, camera3_stream_rotation_t rotation, int *id); virtual status_t createInputStream( diff --git a/services/camera/libcameraservice/device3/Camera3OutputStream.cpp b/services/camera/libcameraservice/device3/Camera3OutputStream.cpp index 7a0331b..8c611d5 100644 --- a/services/camera/libcameraservice/device3/Camera3OutputStream.cpp +++ b/services/camera/libcameraservice/device3/Camera3OutputStream.cpp @@ -32,7 +32,7 @@ namespace android { namespace camera3 { Camera3OutputStream::Camera3OutputStream(int id, - sp<ANativeWindow> consumer, + sp<Surface> consumer, uint32_t width, uint32_t height, int format, android_dataspace dataSpace, camera3_stream_rotation_t rotation) : Camera3IOStreamBase(id, CAMERA3_STREAM_OUTPUT, width, height, @@ -48,7 +48,7 @@ Camera3OutputStream::Camera3OutputStream(int id, } Camera3OutputStream::Camera3OutputStream(int id, - sp<ANativeWindow> consumer, + sp<Surface> consumer, uint32_t width, uint32_t height, size_t maxSize, int format, android_dataspace dataSpace, camera3_stream_rotation_t rotation) : Camera3IOStreamBase(id, CAMERA3_STREAM_OUTPUT, width, height, maxSize, @@ -229,6 +229,7 @@ void Camera3OutputStream::dump(int fd, const Vector<String16> &args) const { (void) args; String8 lines; lines.appendFormat(" Stream[%d]: Output\n", mId); + lines.appendFormat(" Consumer name: %s\n", mConsumerName.string()); write(fd, lines.string(), lines.size()); Camera3IOStreamBase::dump(fd, args); @@ -278,6 +279,8 @@ status_t Camera3OutputStream::configureQueueLocked() { return res; } + mConsumerName = mConsumer->getConsumerName(); + res = native_window_set_usage(mConsumer.get(), camera3_stream::usage); if (res != OK) { ALOGE("%s: Unable to configure usage %08x for stream %d", @@ -326,7 +329,8 @@ status_t Camera3OutputStream::configureQueueLocked() { } int maxConsumerBuffers; - res = mConsumer->query(mConsumer.get(), + res = static_cast<ANativeWindow*>(mConsumer.get())->query( + mConsumer.get(), NATIVE_WINDOW_MIN_UNDEQUEUED_BUFFERS, &maxConsumerBuffers); if (res != OK) { ALOGE("%s: Unable to query consumer undequeued" @@ -401,7 +405,7 @@ status_t Camera3OutputStream::getEndpointUsage(uint32_t *usage) const { status_t res; int32_t u = 0; - res = mConsumer->query(mConsumer.get(), + res = static_cast<ANativeWindow*>(mConsumer.get())->query(mConsumer.get(), NATIVE_WINDOW_CONSUMER_USAGE_BITS, &u); // If an opaque output stream's endpoint is ImageReader, add diff --git a/services/camera/libcameraservice/device3/Camera3OutputStream.h b/services/camera/libcameraservice/device3/Camera3OutputStream.h index 513b695..941d693 100644 --- a/services/camera/libcameraservice/device3/Camera3OutputStream.h +++ b/services/camera/libcameraservice/device3/Camera3OutputStream.h @@ -38,7 +38,7 @@ class Camera3OutputStream : /** * Set up a stream for formats that have 2 dimensions, such as RAW and YUV. */ - Camera3OutputStream(int id, sp<ANativeWindow> consumer, + Camera3OutputStream(int id, sp<Surface> consumer, uint32_t width, uint32_t height, int format, android_dataspace dataSpace, camera3_stream_rotation_t rotation); @@ -46,7 +46,7 @@ class Camera3OutputStream : * Set up a stream for formats that have a variable buffer size for the same * dimensions, such as compressed JPEG. */ - Camera3OutputStream(int id, sp<ANativeWindow> consumer, + Camera3OutputStream(int id, sp<Surface> consumer, uint32_t width, uint32_t height, size_t maxSize, int format, android_dataspace dataSpace, camera3_stream_rotation_t rotation); @@ -81,7 +81,7 @@ class Camera3OutputStream : virtual status_t disconnectLocked(); - sp<ANativeWindow> mConsumer; + sp<Surface> mConsumer; private: int mTransform; @@ -89,6 +89,9 @@ class Camera3OutputStream : bool mTraceFirstBuffer; + // Name of Surface consumer + String8 mConsumerName; + /** * Internal Camera3Stream interface */ diff --git a/services/camera/libcameraservice/device3/Camera3ZslStream.cpp b/services/camera/libcameraservice/device3/Camera3ZslStream.cpp index 10d7f2e..eefcb44 100644 --- a/services/camera/libcameraservice/device3/Camera3ZslStream.cpp +++ b/services/camera/libcameraservice/device3/Camera3ZslStream.cpp @@ -122,6 +122,7 @@ Camera3ZslStream::Camera3ZslStream(int id, uint32_t width, uint32_t height, sp<IGraphicBufferConsumer> consumer; BufferQueue::createBufferQueue(&producer, &consumer); mProducer = new RingBufferConsumer(consumer, GRALLOC_USAGE_HW_CAMERA_ZSL, bufferCount); + mProducer->setName(String8("Camera2-ZslRingBufferConsumer")); mConsumer = new Surface(producer); } |