Android camera qcom HAL doesn't like it when no consumer usage bits are set. Set...
authorJüri Aedla <juri.aedla@gmail.com>
Thu, 1 May 2014 12:37:12 +0000 (15:37 +0300)
committerDikay900 <dark900@xyz.de>
Sat, 23 May 2015 15:36:39 +0000 (17:36 +0200)
modules/androidcamera/camera_wrapper/camera_wrapper.cpp

index 66678c5..351a6fe 100644 (file)
@@ -25,6 +25,7 @@
 #elif defined(ANDROID_r4_3_0) || defined(ANDROID_r4_4_0)
 # include <gui/IGraphicBufferProducer.h>
 # include <gui/BufferQueue.h>
+# include <ui/GraphicBuffer.h>
 #else
 # include <surfaceflinger/ISurface.h>
 #endif
@@ -683,6 +684,7 @@ CameraHandler* CameraHandler::initCameraConnect(const CameraCallback& callback,
 # elif defined(ANDROID_r4_4_0)
     void* buffer_queue_obj = operator new(sizeof(BufferQueue) + MAGIC_TAIL);
     handler->queue = new(buffer_queue_obj) BufferQueue();
+    handler->queue->setConsumerUsageBits(GraphicBuffer::USAGE_HW_TEXTURE);
     void* consumer_listener_obj = operator new(sizeof(ConsumerListenerStub) + MAGIC_TAIL);
     handler->listener = new(consumer_listener_obj) ConsumerListenerStub();
     handler->queue->consumerConnect(handler->listener, true);
@@ -1087,6 +1089,7 @@ void CameraHandler::applyProperties(CameraHandler** ppcameraHandler)
 # elif defined(ANDROID_r4_4_0)
     void* buffer_queue_obj = operator new(sizeof(BufferQueue) + MAGIC_TAIL);
     handler->queue = new(buffer_queue_obj) BufferQueue();
+    handler->queue->setConsumerUsageBits(GraphicBuffer::USAGE_HW_TEXTURE);
     handler->queue->consumerConnect(handler->listener, true);
     bufferStatus = handler->camera->setPreviewTarget(handler->queue);
     if (bufferStatus != 0)