cameraservice: Migrate all internal String8/String16s to std::string
String8 and String16 are deprecated classes. It is recommended to use
std::string or std::u16string wherever possible. String16 is the native
string class for aidl, but Strings marked @utf8InCpp can use std::string
directly.
This patch standardizes libcameraservice's use of strings to
std::string, which is capable of storing utf-8 strings. This makes the
code more readable and potentially reduces the number of string copies
to a minimum.
A new set of string utils is added to frameworks/av/camera to aid this
migration.
Bug: 265487852
Test: Presubmit, ran CtsCameraTestCases on Cuttlefish, adb shell dumpsys media camera and observed output
Change-Id: I2b258a8636030dc4b7751140db43981b39c64f0d
Merged-In: I59330ac03c8a52b6c21a2388bba0c143e68af4cf
diff --git a/services/camera/libcameraservice/hidl/Utils.cpp b/services/camera/libcameraservice/hidl/Utils.cpp
index 057a6e9..ea05636 100644
--- a/services/camera/libcameraservice/hidl/Utils.cpp
+++ b/services/camera/libcameraservice/hidl/Utils.cpp
@@ -19,6 +19,7 @@
#include <gui/bufferqueue/1.0/H2BGraphicBufferProducer.h>
#include <cutils/native_handle.h>
#include <mediautils/AImageReaderUtils.h>
+#include <camera/StringUtils.h>
namespace android {
namespace hardware {
@@ -90,9 +91,9 @@
for (auto &handle : windowHandles) {
iGBPs.push_back(new H2BGraphicBufferProducer(AImageReader_getHGBPFromHandle(handle)));
}
- String16 physicalCameraId16(hOutputConfiguration.physicalCameraId.c_str());
hardware::camera2::params::OutputConfiguration outputConfiguration(
- iGBPs, convertFromHidl(hOutputConfiguration.rotation), physicalCameraId16,
+ iGBPs, convertFromHidl(hOutputConfiguration.rotation),
+ hOutputConfiguration.physicalCameraId,
hOutputConfiguration.windowGroupId, OutputConfiguration::SURFACE_TYPE_UNKNOWN, 0, 0,
(windowHandles.size() > 1));
return outputConfiguration;
@@ -158,8 +159,8 @@
hCaptureResultExtras.frameNumber = captureResultExtras.frameNumber;
hCaptureResultExtras.partialResultCount = captureResultExtras.partialResultCount;
hCaptureResultExtras.errorStreamId = captureResultExtras.errorStreamId;
- hCaptureResultExtras.errorPhysicalCameraId = hidl_string(String8(
- captureResultExtras.errorPhysicalCameraId).string());
+ hCaptureResultExtras.errorPhysicalCameraId = hidl_string(
+ captureResultExtras.errorPhysicalCameraId.c_str());
return hCaptureResultExtras;
}
@@ -192,7 +193,7 @@
size_t i = 0;
for (auto &statusAndId : src) {
auto &a = (*dst)[i++];
- a.cameraId = statusAndId.cameraId.c_str();
+ a.cameraId = statusAndId.cameraId;
a.deviceStatus = convertToHidlCameraDeviceStatus(statusAndId.status);
}
return;
@@ -204,12 +205,12 @@
size_t i = 0;
for (const auto &statusAndId : src) {
auto &a = (*dst)[i++];
- a.v2_0.cameraId = statusAndId.cameraId.c_str();
+ a.v2_0.cameraId = statusAndId.cameraId;
a.v2_0.deviceStatus = convertToHidlCameraDeviceStatus(statusAndId.status);
size_t numUnvailPhysicalCameras = statusAndId.unavailablePhysicalIds.size();
a.unavailPhysicalCameraIds.resize(numUnvailPhysicalCameras);
for (size_t j = 0; j < numUnvailPhysicalCameras; j++) {
- a.unavailPhysicalCameraIds[j] = statusAndId.unavailablePhysicalIds[j].c_str();
+ a.unavailPhysicalCameraIds[j] = statusAndId.unavailablePhysicalIds[j];
}
}
return;
@@ -266,7 +267,7 @@
std::shared_ptr<CaptureResultMetadataQueue> &captureResultMetadataQueue) {
HPhysicalCaptureResultInfo hPhysicalCaptureResultInfo;
hPhysicalCaptureResultInfo.physicalCameraId =
- String8(physicalCaptureResultInfo.mPhysicalCameraId).string();
+ toString8(physicalCaptureResultInfo.mPhysicalCameraId);
const camera_metadata_t *rawMetadata =
physicalCaptureResultInfo.mPhysicalCameraMetadata.getAndLock();
// Try using fmq at first.