From 3942f9c6325e8d3bed3247f3dedb274ea5d4c9cf Mon Sep 17 00:00:00 2001 From: Jim Shargo Date: Tue, 25 Jun 2024 17:42:15 +0000 Subject: [PATCH] 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 --- .../functional/VtsHalCameraProviderV2_4TargetTest.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp b/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp index 82666ae3df..49c8410d78 100644 --- a/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp +++ b/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp @@ -52,6 +52,7 @@ #include #include #include +#include #include #include #include @@ -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 producer; sp 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 = (*bufferItemConsumer)->getSurface(); +#else sp surface = new Surface(producer); +#endif // COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ) sp previewCb = new PreviewWindowCb(surface); auto rc = device->setPreviewWindow(previewCb);