Update the fuzzers to use the flag SurfaceTypes
We are currently limitig the use of IGBPs outside of libgui to allow for
further development of bufferqueues without external breakages. More
information at go/warren-buffers.
BYPASS_IGBP_IGBC_API_REASON: this CL is part of the migration.
Bug: 342197851
Test: atest camera_client_test
Flag: com.android.graphics.libgui.flags.wb_libcameraservice
Change-Id: I4e7f57a11f536baf0902b83480f4191dad775368
diff --git a/camera/tests/CameraBinderTests.cpp b/camera/tests/CameraBinderTests.cpp
index 5f7f2f6..89fc033 100644
--- a/camera/tests/CameraBinderTests.cpp
+++ b/camera/tests/CameraBinderTests.cpp
@@ -548,10 +548,9 @@
opaqueConsumer->setDefaultBufferFormat(HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED));
sp<Surface> surface = opaqueConsumer->getSurface();
-
- sp<IGraphicBufferProducer> producer = surface->getIGraphicBufferProducer();
+ ParcelableSurfaceType pSurface = flagtools::surfaceToParcelableSurfaceType(surface);
std::string noPhysicalId;
- OutputConfiguration output(producer, /*rotation*/ 0, noPhysicalId);
+ OutputConfiguration output(pSurface, /*rotation*/ 0, noPhysicalId);
#else
sp<IGraphicBufferProducer> gbProducer;
sp<IGraphicBufferConsumer> gbConsumer;
diff --git a/camera/tests/fuzzer/camera_c2OutputConfiguration_fuzzer.cpp b/camera/tests/fuzzer/camera_c2OutputConfiguration_fuzzer.cpp
index 22e04fc..836bdab 100644
--- a/camera/tests/fuzzer/camera_c2OutputConfiguration_fuzzer.cpp
+++ b/camera/tests/fuzzer/camera_c2OutputConfiguration_fuzzer.cpp
@@ -70,8 +70,10 @@
int32_t surfaceSetID = mFDP->ConsumeIntegral<int32_t>();
bool isShared = mFDP->ConsumeBool();
sp<SurfaceType> surface = createSurface();
+ ParcelableSurfaceType pSurface =
+ flagtools::convertSurfaceTypeToParcelable(surface);
outputConfiguration = make_unique<OutputConfiguration>(
- surface, rotation, physicalCameraId, surfaceSetID, isShared);
+ pSurface, rotation, physicalCameraId, surfaceSetID, isShared);
},
[&]() {
@@ -81,10 +83,12 @@
bool isShared = mFDP->ConsumeBool();
size_t surfaceSize =
mFDP->ConsumeIntegralInRange<size_t>(kSizeMin, kSizeMax);
- vector<sp<SurfaceType>> surfaces;
+ vector<ParcelableSurfaceType> surfaces;
for (size_t idx = 0; idx < surfaceSize; ++idx) {
sp<SurfaceType> surface = createSurface();
- surfaces.push_back(surface);
+ ParcelableSurfaceType pSurface =
+ flagtools::convertSurfaceTypeToParcelable(surface);
+ surfaces.push_back(pSurface);
}
outputConfiguration = make_unique<OutputConfiguration>(
surfaces, rotation, physicalCameraId, surfaceSetID, isShared);
@@ -115,7 +119,9 @@
[&]() { outputConfiguration->getSurfaces(); },
[&]() {
sp<SurfaceType> surface = createSurface();
- outputConfiguration->addSurface(surface);
+ ParcelableSurfaceType pSurface =
+ flagtools::convertSurfaceTypeToParcelable(surface);
+ outputConfiguration->addSurface(pSurface);
},
[&]() { outputConfiguration->isMultiResolution(); },
[&]() { outputConfiguration->getColorSpace(); },
@@ -123,7 +129,9 @@
[&]() { outputConfiguration->getTimestampBase(); },
[&]() {
sp<SurfaceType> surface = createSurface();
- outputConfiguration->getMirrorMode(surface);
+ ParcelableSurfaceType pSurface =
+ flagtools::convertSurfaceTypeToParcelable(surface);
+ outputConfiguration->getMirrorMode(pSurface);
},
[&]() { outputConfiguration->useReadoutTimestamp(); },
});
diff --git a/camera/tests/fuzzer/camera_c2SessionConfiguration_fuzzer.cpp b/camera/tests/fuzzer/camera_c2SessionConfiguration_fuzzer.cpp
index 7cd0e59..b19ffc8 100644
--- a/camera/tests/fuzzer/camera_c2SessionConfiguration_fuzzer.cpp
+++ b/camera/tests/fuzzer/camera_c2SessionConfiguration_fuzzer.cpp
@@ -17,7 +17,12 @@
#include <camera2/OutputConfiguration.h>
#include <camera2/SessionConfiguration.h>
#include <fuzzer/FuzzedDataProvider.h>
+#include <gui/Flags.h> // remove with WB_LIBCAMERASERVICE_WITH_DEPENDENCIES
+#if WB_LIBCAMERASERVICE_WITH_DEPENDENCIES
+#include <gui/Surface.h>
+#else
#include <gui/IGraphicBufferProducer.h>
+#endif
#include <gui/Surface.h>
#include <gui/SurfaceComposerClient.h>
#include "camera2common.h"
@@ -53,7 +58,7 @@
outputConfiguration = new OutputConfiguration();
sessionConfiguration->addOutputConfiguration(*outputConfiguration);
} else {
- sp<IGraphicBufferProducer> iGBP = nullptr;
+ ParcelableSurfaceType pSurface;
sp<SurfaceComposerClient> composerClient = new SurfaceComposerClient;
sp<SurfaceControl> surfaceControl = composerClient->createSurface(
static_cast<String8>(fdp.ConsumeRandomLengthString().c_str()),
@@ -61,7 +66,7 @@
fdp.ConsumeIntegral<int32_t>(), fdp.ConsumeIntegral<int32_t>());
if (surfaceControl) {
sp<Surface> surface = surfaceControl->getSurface();
- iGBP = surface->getIGraphicBufferProducer();
+ pSurface = flagtools::surfaceToParcelableSurfaceType(surface);
surface.clear();
}
int32_t rotation = fdp.ConsumeIntegral<int32_t>();
@@ -69,7 +74,7 @@
int32_t surfaceSetID = fdp.ConsumeIntegral<int32_t>();
bool isShared = fdp.ConsumeBool();
outputConfiguration =
- new OutputConfiguration(iGBP, rotation, physicalCameraId, surfaceSetID, isShared);
+ new OutputConfiguration(pSurface, rotation, physicalCameraId, surfaceSetID, isShared);
sessionConfiguration->addOutputConfiguration(*outputConfiguration);
}