mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
vts: ConsumerBase-based classes now create their own BufferQueues
Using ConsumerBase-based classes is now the recommended way to create BufferQueues. This is an important step for go/warren-buffers, because it consolidates usages of BufferQueues to supported APIs and reduces the libgui API surface that exposes IGBP/IGBC. BYPASS_IGBP_IGBC_API_REASON: this CL is part of the migration. Bug: 340933754 Flag: com.android.graphics.libgui.flags.wb_consumer_base_owns_bq Test: atest, presubmit, compiles Change-Id: Ie424a300f4d391fcb5c73fadcea9d19fdae27c8b
This commit is contained in:
@@ -52,6 +52,7 @@
|
||||
#include <android/hardware/camera/provider/2.7/ICameraProvider.h>
|
||||
#include <android/hidl/manager/1.0/IServiceManager.h>
|
||||
#include <binder/MemoryHeapBase.h>
|
||||
#include <com_android_graphics_libgui_flags.h>
|
||||
#include <cutils/properties.h>
|
||||
#include <fmq/MessageQueue.h>
|
||||
#include <grallocusage/GrallocUsageConversion.h>
|
||||
@@ -8714,16 +8715,25 @@ void CameraHidlTest::setupPreviewWindow(
|
||||
ASSERT_NE(nullptr, bufferItemConsumer);
|
||||
ASSERT_NE(nullptr, bufferHandler);
|
||||
|
||||
#if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
|
||||
*bufferItemConsumer = new BufferItemConsumer(
|
||||
GraphicBuffer::USAGE_HW_TEXTURE); // Use GLConsumer default usage flags
|
||||
#else
|
||||
sp<IGraphicBufferProducer> producer;
|
||||
sp<IGraphicBufferConsumer> consumer;
|
||||
BufferQueue::createBufferQueue(&producer, &consumer);
|
||||
*bufferItemConsumer = new BufferItemConsumer(consumer,
|
||||
GraphicBuffer::USAGE_HW_TEXTURE); //Use GLConsumer default usage flags
|
||||
#endif // COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
|
||||
ASSERT_NE(nullptr, (*bufferItemConsumer).get());
|
||||
*bufferHandler = new BufferItemHander(*bufferItemConsumer);
|
||||
ASSERT_NE(nullptr, (*bufferHandler).get());
|
||||
(*bufferItemConsumer)->setFrameAvailableListener(*bufferHandler);
|
||||
#if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
|
||||
sp<Surface> surface = (*bufferItemConsumer)->getSurface();
|
||||
#else
|
||||
sp<Surface> surface = new Surface(producer);
|
||||
#endif // COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
|
||||
sp<PreviewWindowCb> previewCb = new PreviewWindowCb(surface);
|
||||
|
||||
auto rc = device->setPreviewWindow(previewCb);
|
||||
|
||||
Reference in New Issue
Block a user