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/camera/CaptureResult.cpp b/camera/CaptureResult.cpp
index bb880d1..9ff2578 100644
--- a/camera/CaptureResult.cpp
+++ b/camera/CaptureResult.cpp
@@ -18,6 +18,7 @@
#include <utils/Log.h>
#include <camera/CaptureResult.h>
+#include <camera/StringUtils.h>
#include <binder/Parcel.h>
namespace android {
@@ -47,7 +48,7 @@
ALOGE("%s: Failed to read camera id: %d", __FUNCTION__, res);
return res;
}
- errorPhysicalCameraId = cameraId;
+ errorPhysicalCameraId = toStdString(cameraId);
}
parcel->readInt64(&lastCompletedRegularFrameNumber);
parcel->readInt64(&lastCompletedReprocessFrameNumber);
@@ -75,7 +76,7 @@
if (errorPhysicalCameraId.size() > 0) {
parcel->writeBool(true);
status_t res = OK;
- if ((res = parcel->writeString16(errorPhysicalCameraId)) != OK) {
+ if ((res = parcel->writeString16(toString16(errorPhysicalCameraId))) != OK) {
ALOGE("%s: Failed to write physical camera ID to parcel: %d", __FUNCTION__, res);
return res;
}
@@ -96,13 +97,15 @@
status_t PhysicalCaptureResultInfo::readFromParcel(const android::Parcel* parcel) {
status_t res;
- mPhysicalCameraId.setTo(u"");
+ mPhysicalCameraId = "";
mPhysicalCameraMetadata.clear();
- if ((res = parcel->readString16(&mPhysicalCameraId)) != OK) {
+ String16 physicalCameraId;
+ if ((res = parcel->readString16(&physicalCameraId)) != OK) {
ALOGE("%s: Failed to read camera id: %d", __FUNCTION__, res);
return res;
}
+ mPhysicalCameraId = toStdString(physicalCameraId);
if ((res = mPhysicalCameraMetadata.readFromParcel(parcel)) != OK) {
ALOGE("%s: Failed to read metadata from parcel: %d", __FUNCTION__, res);
@@ -113,7 +116,7 @@
status_t PhysicalCaptureResultInfo::writeToParcel(android::Parcel* parcel) const {
status_t res;
- if ((res = parcel->writeString16(mPhysicalCameraId)) != OK) {
+ if ((res = parcel->writeString16(toString16(mPhysicalCameraId))) != OK) {
ALOGE("%s: Failed to write physical camera ID to parcel: %d",
__FUNCTION__, res);
return res;
@@ -187,7 +190,8 @@
return res;
}
- mPhysicalMetadatas.emplace(mPhysicalMetadatas.end(), cameraId, physicalMetadata);
+ mPhysicalMetadatas.emplace(mPhysicalMetadatas.end(), toStdString(cameraId),
+ physicalMetadata);
}
ALOGV("%s: Read physical metadata from parcel", __FUNCTION__);
@@ -228,7 +232,7 @@
return BAD_VALUE;
}
for (const auto& physicalMetadata : mPhysicalMetadatas) {
- if ((res = parcel->writeString16(physicalMetadata.mPhysicalCameraId)) != OK) {
+ if ((res = parcel->writeString16(toString16(physicalMetadata.mPhysicalCameraId))) != OK) {
ALOGE("%s: Failed to write physical camera ID to parcel: %d",
__FUNCTION__, res);
return res;