Android camera qcom HAL doesn't like it when no consumer usage bits are set. Set a usage bit for preview BufferQueue.
This commit is contained in:
parent
acbc7362db
commit
22c0238bf1
@ -25,6 +25,7 @@
|
|||||||
#elif defined(ANDROID_r4_3_0) || defined(ANDROID_r4_4_0)
|
#elif defined(ANDROID_r4_3_0) || defined(ANDROID_r4_4_0)
|
||||||
# include <gui/IGraphicBufferProducer.h>
|
# include <gui/IGraphicBufferProducer.h>
|
||||||
# include <gui/BufferQueue.h>
|
# include <gui/BufferQueue.h>
|
||||||
|
# include <ui/GraphicBuffer.h>
|
||||||
#else
|
#else
|
||||||
# include <surfaceflinger/ISurface.h>
|
# include <surfaceflinger/ISurface.h>
|
||||||
#endif
|
#endif
|
||||||
@ -683,6 +684,7 @@ CameraHandler* CameraHandler::initCameraConnect(const CameraCallback& callback,
|
|||||||
# elif defined(ANDROID_r4_4_0)
|
# elif defined(ANDROID_r4_4_0)
|
||||||
void* buffer_queue_obj = operator new(sizeof(BufferQueue) + MAGIC_TAIL);
|
void* buffer_queue_obj = operator new(sizeof(BufferQueue) + MAGIC_TAIL);
|
||||||
handler->queue = new(buffer_queue_obj) BufferQueue();
|
handler->queue = new(buffer_queue_obj) BufferQueue();
|
||||||
|
handler->queue->setConsumerUsageBits(GraphicBuffer::USAGE_HW_TEXTURE);
|
||||||
void* consumer_listener_obj = operator new(sizeof(ConsumerListenerStub) + MAGIC_TAIL);
|
void* consumer_listener_obj = operator new(sizeof(ConsumerListenerStub) + MAGIC_TAIL);
|
||||||
handler->listener = new(consumer_listener_obj) ConsumerListenerStub();
|
handler->listener = new(consumer_listener_obj) ConsumerListenerStub();
|
||||||
handler->queue->consumerConnect(handler->listener, true);
|
handler->queue->consumerConnect(handler->listener, true);
|
||||||
@ -1087,6 +1089,7 @@ void CameraHandler::applyProperties(CameraHandler** ppcameraHandler)
|
|||||||
# elif defined(ANDROID_r4_4_0)
|
# elif defined(ANDROID_r4_4_0)
|
||||||
void* buffer_queue_obj = operator new(sizeof(BufferQueue) + MAGIC_TAIL);
|
void* buffer_queue_obj = operator new(sizeof(BufferQueue) + MAGIC_TAIL);
|
||||||
handler->queue = new(buffer_queue_obj) BufferQueue();
|
handler->queue = new(buffer_queue_obj) BufferQueue();
|
||||||
|
handler->queue->setConsumerUsageBits(GraphicBuffer::USAGE_HW_TEXTURE);
|
||||||
handler->queue->consumerConnect(handler->listener, true);
|
handler->queue->consumerConnect(handler->listener, true);
|
||||||
bufferStatus = handler->camera->setPreviewTarget(handler->queue);
|
bufferStatus = handler->camera->setPreviewTarget(handler->queue);
|
||||||
if (bufferStatus != 0)
|
if (bufferStatus != 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user