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/device3/Camera3BufferManager.cpp b/services/camera/libcameraservice/device3/Camera3BufferManager.cpp
index 2ac38d5..c42e51a 100644
--- a/services/camera/libcameraservice/device3/Camera3BufferManager.cpp
+++ b/services/camera/libcameraservice/device3/Camera3BufferManager.cpp
@@ -18,10 +18,13 @@
#define LOG_TAG "Camera3-BufferManager"
#define ATRACE_TAG ATRACE_TAG_CAMERA
+#include <sstream>
+
#include <gui/ISurfaceComposer.h>
#include <private/gui/ComposerService.h>
#include <utils/Log.h>
#include <utils/Trace.h>
+#include <camera/StringUtils.h>
#include "utils/CameraTraces.h"
#include "Camera3BufferManager.h"
@@ -454,34 +457,36 @@
void Camera3BufferManager::dump(int fd, [[maybe_unused]] const Vector<String16>& args) const {
Mutex::Autolock l(mLock);
- String8 lines;
- lines.appendFormat(" Total stream sets: %zu\n", mStreamSetMap.size());
+ std::ostringstream lines;
+ lines << fmt::sprintf(" Total stream sets: %zu\n", mStreamSetMap.size());
for (size_t i = 0; i < mStreamSetMap.size(); i++) {
- lines.appendFormat(" Stream set %d(%d) has below streams:\n",
+ lines << fmt::sprintf(" Stream set %d(%d) has below streams:\n",
mStreamSetMap.keyAt(i).id, mStreamSetMap.keyAt(i).isMultiRes);
for (size_t j = 0; j < mStreamSetMap[i].streamInfoMap.size(); j++) {
- lines.appendFormat(" Stream %d\n", mStreamSetMap[i].streamInfoMap[j].streamId);
+ lines << fmt::sprintf(" Stream %d\n",
+ mStreamSetMap[i].streamInfoMap[j].streamId);
}
- lines.appendFormat(" Stream set max allowed buffer count: %zu\n",
+ lines << fmt::sprintf(" Stream set max allowed buffer count: %zu\n",
mStreamSetMap[i].maxAllowedBufferCount);
- lines.appendFormat(" Stream set buffer count water mark: %zu\n",
+ lines << fmt::sprintf(" Stream set buffer count water mark: %zu\n",
mStreamSetMap[i].allocatedBufferWaterMark);
- lines.appendFormat(" Handout buffer counts:\n");
+ lines << " Handout buffer counts:\n";
for (size_t m = 0; m < mStreamSetMap[i].handoutBufferCountMap.size(); m++) {
int streamId = mStreamSetMap[i].handoutBufferCountMap.keyAt(m);
size_t bufferCount = mStreamSetMap[i].handoutBufferCountMap.valueAt(m);
- lines.appendFormat(" stream id: %d, buffer count: %zu.\n",
+ lines << fmt::sprintf(" stream id: %d, buffer count: %zu.\n",
streamId, bufferCount);
}
- lines.appendFormat(" Attached buffer counts:\n");
+ lines << " Attached buffer counts:\n";
for (size_t m = 0; m < mStreamSetMap[i].attachedBufferCountMap.size(); m++) {
int streamId = mStreamSetMap[i].attachedBufferCountMap.keyAt(m);
size_t bufferCount = mStreamSetMap[i].attachedBufferCountMap.valueAt(m);
- lines.appendFormat(" stream id: %d, attached buffer count: %zu.\n",
+ lines << fmt::sprintf(" stream id: %d, attached buffer count: %zu.\n",
streamId, bufferCount);
}
}
- write(fd, lines.string(), lines.size());
+ std::string linesStr = std::move(lines.str());
+ write(fd, linesStr.c_str(), linesStr.size());
}
bool Camera3BufferManager::checkIfStreamRegisteredLocked(int streamId,
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp
index 74dbe27..3f380ea 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
@@ -26,10 +26,10 @@
#endif
// Convenience macro for transient errors
-#define CLOGE(fmt, ...) ALOGE("Camera %s: %s: " fmt, mId.string(), __FUNCTION__, \
+#define CLOGE(fmt, ...) ALOGE("Camera %s: %s: " fmt, mId.c_str(), __FUNCTION__, \
##__VA_ARGS__)
-#define CLOGW(fmt, ...) ALOGW("Camera %s: %s: " fmt, mId.string(), __FUNCTION__, \
+#define CLOGW(fmt, ...) ALOGW("Camera %s: %s: " fmt, mId.c_str(), __FUNCTION__, \
##__VA_ARGS__)
// Convenience macros for transitioning to the error state
@@ -44,10 +44,12 @@
#include <utility>
+#include <android-base/stringprintf.h>
#include <utils/Log.h>
#include <utils/Trace.h>
#include <utils/Timers.h>
#include <cutils/properties.h>
+#include <camera/StringUtils.h>
#include <android/hardware/camera/device/3.7/ICameraInjectionSession.h>
#include <android/hardware/camera2/ICameraDeviceUser.h>
@@ -73,7 +75,7 @@
namespace android {
-Camera3Device::Camera3Device(const String8 &id, bool overrideForPerfClass, bool overrideToPortrait,
+Camera3Device::Camera3Device(const std::string &id, bool overrideForPerfClass, bool overrideToPortrait,
bool legacyClient):
mId(id),
mLegacyClient(legacyClient),
@@ -102,17 +104,17 @@
mActivePhysicalId("")
{
ATRACE_CALL();
- ALOGV("%s: Created device for camera %s", __FUNCTION__, mId.string());
+ ALOGV("%s: Created device for camera %s", __FUNCTION__, mId.c_str());
}
Camera3Device::~Camera3Device()
{
ATRACE_CALL();
- ALOGV("%s: Tearing down for camera id %s", __FUNCTION__, mId.string());
+ ALOGV("%s: Tearing down for camera id %s", __FUNCTION__, mId.c_str());
disconnectImpl();
}
-const String8& Camera3Device::getId() const {
+const std::string& Camera3Device::getId() const {
return mId;
}
@@ -120,7 +122,7 @@
/** Start up status tracker thread */
mStatusTracker = new StatusTracker(this);
- status_t res = mStatusTracker->run(String8::format("C3Dev-%s-Status", mId.string()).string());
+ status_t res = mStatusTracker->run((std::string("C3Dev-") + mId + "-Status").c_str());
if (res != OK) {
SET_ERR_L("Unable to start status tracking thread: %s (%d)",
strerror(-res), res);
@@ -172,7 +174,7 @@
mRequestThread = createNewRequestThread(
this, mStatusTracker, mInterface, sessionParamKeys,
mUseHalBufManager, mSupportCameraMute, mOverrideToPortrait);
- res = mRequestThread->run(String8::format("C3Dev-%s-ReqQueue", mId.string()).string());
+ res = mRequestThread->run((std::string("C3Dev-") + mId + "-ReqQueue").c_str());
if (res != OK) {
SET_ERR_L("Unable to start request queue thread: %s (%d)",
strerror(-res), res);
@@ -209,23 +211,23 @@
bool usePrecorrectArray = DistortionMapper::isDistortionSupported(mDeviceInfo);
if (usePrecorrectArray) {
- res = mDistortionMappers[mId.c_str()].setupStaticInfo(mDeviceInfo);
+ res = mDistortionMappers[mId].setupStaticInfo(mDeviceInfo);
if (res != OK) {
SET_ERR_L("Unable to read necessary calibration fields for distortion correction");
return res;
}
}
- mZoomRatioMappers[mId.c_str()] = ZoomRatioMapper(&mDeviceInfo,
+ mZoomRatioMappers[mId] = ZoomRatioMapper(&mDeviceInfo,
mSupportNativeZoomRatio, usePrecorrectArray);
if (SessionConfigurationUtils::isUltraHighResolutionSensor(mDeviceInfo)) {
- mUHRCropAndMeteringRegionMappers[mId.c_str()] =
+ mUHRCropAndMeteringRegionMappers[mId] =
UHRCropAndMeteringRegionMapper(mDeviceInfo, usePrecorrectArray);
}
if (RotateAndCropMapper::isNeeded(&mDeviceInfo)) {
- mRotateAndCropMappers.emplace(mId.c_str(), &mDeviceInfo);
+ mRotateAndCropMappers.emplace(mId, &mDeviceInfo);
}
// Hidl/AidlCamera3DeviceInjectionMethods
@@ -415,7 +417,7 @@
/*isUltraHighResolution*/true);
if (maxDefaultJpegResolution.width == 0) {
ALOGE("%s: Camera %s: Can't find valid available jpeg sizes in static metadata!",
- __FUNCTION__, mId.string());
+ __FUNCTION__, mId.c_str());
return BAD_VALUE;
}
bool useMaxSensorPixelModeThreshold = false;
@@ -430,7 +432,7 @@
camera_metadata_ro_entry jpegBufMaxSize = info.find(ANDROID_JPEG_MAX_SIZE);
if (jpegBufMaxSize.count == 0) {
ALOGE("%s: Camera %s: Can't find maximum JPEG size in static metadata!", __FUNCTION__,
- mId.string());
+ mId.c_str());
return BAD_VALUE;
}
maxJpegBufferSize = jpegBufMaxSize.data.i32[0];
@@ -462,7 +464,7 @@
camera_metadata_ro_entry maxPointCount = info.find(ANDROID_DEPTH_MAX_DEPTH_SAMPLES);
if (maxPointCount.count == 0) {
ALOGE("%s: Camera %s: Can't find maximum depth point cloud size in static metadata!",
- __FUNCTION__, mId.string());
+ __FUNCTION__, mId.c_str());
return BAD_VALUE;
}
ssize_t maxBytesForPointCloud = sizeof(android_depth_points) +
@@ -484,7 +486,7 @@
size_t count = rawOpaqueSizes.count;
if (count == 0 || (count % PER_CONFIGURATION_SIZE)) {
ALOGE("%s: Camera %s: bad opaque RAW size static metadata length(%zu)!",
- __FUNCTION__, mId.string(), count);
+ __FUNCTION__, mId.c_str(), count);
return BAD_VALUE;
}
@@ -496,7 +498,7 @@
}
ALOGE("%s: Camera %s: cannot find size for %dx%d opaque RAW image!",
- __FUNCTION__, mId.string(), width, height);
+ __FUNCTION__, mId.c_str(), width, height);
return BAD_VALUE;
}
@@ -510,10 +512,10 @@
ALOGW_IF(!gotInterfaceLock,
"Camera %s: %s: Unable to lock interface lock, proceeding anyway",
- mId.string(), __FUNCTION__);
+ mId.c_str(), __FUNCTION__);
ALOGW_IF(!gotLock,
"Camera %s: %s: Unable to lock main lock, proceeding anyway",
- mId.string(), __FUNCTION__);
+ mId.c_str(), __FUNCTION__);
bool dumpTemplates = false;
@@ -523,9 +525,9 @@
if (args[i] == templatesOption) {
dumpTemplates = true;
}
- if (args[i] == TagMonitor::kMonitorOption) {
+ if (args[i] == toString16(TagMonitor::kMonitorOption)) {
if (i + 1 < n) {
- String8 monitorTags = String8(args[i + 1]);
+ std::string monitorTags = toStdString(args[i + 1]);
if (monitorTags == "off") {
mTagMonitor.disableMonitoring();
} else {
@@ -537,7 +539,7 @@
}
}
- String8 lines;
+ std::string lines;
const char *status =
mStatus == STATUS_ERROR ? "ERROR" :
@@ -547,42 +549,42 @@
mStatus == STATUS_ACTIVE ? "ACTIVE" :
"Unknown";
- lines.appendFormat(" Device status: %s\n", status);
+ lines += fmt::sprintf(" Device status: %s\n", status);
if (mStatus == STATUS_ERROR) {
- lines.appendFormat(" Error cause: %s\n", mErrorCause.string());
+ lines += fmt::sprintf(" Error cause: %s\n", mErrorCause.c_str());
}
- lines.appendFormat(" Stream configuration:\n");
+ lines += " Stream configuration:\n";
const char *mode =
mOperatingMode == CAMERA_STREAM_CONFIGURATION_NORMAL_MODE ? "NORMAL" :
mOperatingMode == CAMERA_STREAM_CONFIGURATION_CONSTRAINED_HIGH_SPEED_MODE ?
"CONSTRAINED_HIGH_SPEED" : "CUSTOM";
- lines.appendFormat(" Operation mode: %s (%d) \n", mode, mOperatingMode);
+ lines += fmt::sprintf(" Operation mode: %s (%d) \n", mode, mOperatingMode);
if (mInputStream != NULL) {
- write(fd, lines.string(), lines.size());
+ write(fd, lines.c_str(), lines.size());
mInputStream->dump(fd, args);
} else {
- lines.appendFormat(" No input stream.\n");
- write(fd, lines.string(), lines.size());
+ lines += " No input stream.\n";
+ write(fd, lines.c_str(), lines.size());
}
for (size_t i = 0; i < mOutputStreams.size(); i++) {
mOutputStreams[i]->dump(fd,args);
}
if (mBufferManager != NULL) {
- lines = String8(" Camera3 Buffer Manager:\n");
- write(fd, lines.string(), lines.size());
+ lines = " Camera3 Buffer Manager:\n";
+ write(fd, lines.c_str(), lines.size());
mBufferManager->dump(fd, args);
}
- lines = String8(" In-flight requests:\n");
+ lines = " In-flight requests:\n";
if (mInFlightLock.try_lock()) {
if (mInFlightMap.size() == 0) {
- lines.append(" None\n");
+ lines += " None\n";
} else {
for (size_t i = 0; i < mInFlightMap.size(); i++) {
InFlightRequest r = mInFlightMap.valueAt(i);
- lines.appendFormat(" Frame %d | Timestamp: %" PRId64 ", metadata"
+ lines += fmt::sprintf(" Frame %d | Timestamp: %" PRId64 ", metadata"
" arrived: %s, buffers left: %d\n", mInFlightMap.keyAt(i),
r.shutterTimestamp, r.haveResultMetadata ? "true" : "false",
r.numBuffersLeft);
@@ -590,9 +592,9 @@
}
mInFlightLock.unlock();
} else {
- lines.append(" Failed to acquire In-flight lock!\n");
+ lines += " Failed to acquire In-flight lock!\n";
}
- write(fd, lines.string(), lines.size());
+ write(fd, lines.c_str(), lines.size());
if (mRequestThread != NULL) {
mRequestThread->dumpCaptureRequestLatency(fd,
@@ -600,8 +602,8 @@
}
{
- lines = String8(" Last request sent:\n");
- write(fd, lines.string(), lines.size());
+ lines = " Last request sent:\n";
+ write(fd, lines.c_str(), lines.size());
CameraMetadata lastRequest = getLatestRequestLocked();
lastRequest.dump(fd, /*verbosity*/2, /*indentation*/6);
@@ -621,12 +623,12 @@
camera_metadata_t *templateRequest = nullptr;
mInterface->constructDefaultRequestSettings(
(camera_request_template_t) i, &templateRequest);
- lines = String8::format(" HAL Request %s:\n", templateNames[i-1]);
+ lines = fmt::sprintf(" HAL Request %s:\n", templateNames[i-1]);
if (templateRequest == nullptr) {
- lines.append(" Not supported\n");
- write(fd, lines.string(), lines.size());
+ lines += " Not supported\n";
+ write(fd, lines.c_str(), lines.size());
} else {
- write(fd, lines.string(), lines.size());
+ write(fd, lines.c_str(), lines.size());
dump_indented_camera_metadata(templateRequest,
fd, /*verbosity*/2, /*indentation*/8);
}
@@ -637,8 +639,8 @@
mTagMonitor.dumpMonitoredMetadata(fd);
if (mInterface->valid()) {
- lines = String8(" HAL device dump:\n");
- write(fd, lines.string(), lines.size());
+ lines = " HAL device dump:\n";
+ write(fd, lines.c_str(), lines.size());
mInterface->dump(fd);
}
@@ -648,7 +650,7 @@
return OK;
}
-status_t Camera3Device::startWatchingTags(const String8 &tags) {
+status_t Camera3Device::startWatchingTags(const std::string &tags) {
mTagMonitor.parseTagsToMonitor(tags);
return OK;
}
@@ -663,7 +665,7 @@
return OK;
}
-const CameraMetadata& Camera3Device::infoPhysical(const String8& physicalId) const {
+const CameraMetadata& Camera3Device::infoPhysical(const std::string& physicalId) const {
ALOGVV("%s: E", __FUNCTION__);
if (CC_UNLIKELY(mStatus == STATUS_UNINITIALIZED ||
mStatus == STATUS_ERROR)) {
@@ -671,12 +673,11 @@
mStatus == STATUS_ERROR ?
"when in error state" : "before init");
}
- if (physicalId.isEmpty()) {
+ if (physicalId.empty()) {
return mDeviceInfo;
} else {
- std::string id(physicalId.c_str());
- if (mPhysicalDeviceInfoMap.find(id) != mPhysicalDeviceInfoMap.end()) {
- return mPhysicalDeviceInfoMap.at(id);
+ if (mPhysicalDeviceInfoMap.find(physicalId) != mPhysicalDeviceInfoMap.end()) {
+ return mPhysicalDeviceInfoMap.at(physicalId);
} else {
ALOGE("%s: Invalid physical camera id %s", __FUNCTION__, physicalId.c_str());
return mDeviceInfo;
@@ -685,8 +686,7 @@
}
const CameraMetadata& Camera3Device::info() const {
- String8 emptyId;
- return infoPhysical(emptyId);
+ return infoPhysical(/*physicalId*/ std::string());
}
status_t Camera3Device::checkStatusOkToCaptureLocked() {
@@ -780,7 +780,7 @@
std::list<const SurfaceMap>& surfaceMaps,
const CameraMetadata& request) {
PhysicalCameraSettingsList requestList;
- requestList.push_back({std::string(getId().string()), request});
+ requestList.push_back({getId(), request});
requestsList.push_back(requestList);
SurfaceMap surfaceMap;
@@ -832,7 +832,7 @@
SET_ERR_L("Can't transition to active in %f seconds!",
kActiveTimeout/1e9);
}
- ALOGV("Camera %s: Capture request %" PRId32 " enqueued", mId.string(),
+ ALOGV("Camera %s: Capture request %" PRId32 " enqueued", mId.c_str(),
(*(requestList.begin()))->mResultExtras.requestId);
} else {
CLOGE("Cannot queue request. Impossible.");
@@ -915,7 +915,7 @@
SET_ERR_L("Unexpected status: %d", mStatus);
return INVALID_OPERATION;
}
- ALOGV("Camera %s: Clearing repeating request", mId.string());
+ ALOGV("Camera %s: Clearing repeating request", mId.c_str());
return mRequestThread->clearRepeatingRequests(lastFrameNumber);
}
@@ -934,7 +934,7 @@
nsecs_t maxExpectedDuration = getExpectedInFlightDuration();
Mutex::Autolock l(mLock);
ALOGV("Camera %s: Creating new input stream %d: %d x %d, format %d",
- mId.string(), mNextStreamId, width, height, format);
+ mId.c_str(), mNextStreamId, width, height, format);
status_t res;
bool wasActive = false;
@@ -992,14 +992,14 @@
internalResumeLocked();
}
- ALOGV("Camera %s: Created input stream", mId.string());
+ ALOGV("Camera %s: Created input stream", mId.c_str());
return OK;
}
status_t Camera3Device::createStream(sp<Surface> consumer,
uint32_t width, uint32_t height, int format,
android_dataspace dataSpace, camera_stream_rotation_t rotation, int *id,
- const String8& physicalCameraId,
+ const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed,
std::vector<int> *surfaceIds, int streamSetId, bool isShared, bool isMultiResolution,
uint64_t consumerUsage, int64_t dynamicRangeProfile, int64_t streamUseCase,
@@ -1035,7 +1035,8 @@
status_t Camera3Device::createStream(const std::vector<sp<Surface>>& consumers,
bool hasDeferredConsumer, uint32_t width, uint32_t height, int format,
android_dataspace dataSpace, camera_stream_rotation_t rotation, int *id,
- const String8& physicalCameraId, const std::unordered_set<int32_t> &sensorPixelModesUsed,
+ const std::string& physicalCameraId,
+ const std::unordered_set<int32_t> &sensorPixelModesUsed,
std::vector<int> *surfaceIds, int streamSetId, bool isShared, bool isMultiResolution,
uint64_t consumerUsage, int64_t dynamicRangeProfile, int64_t streamUseCase,
int timestampBase, int mirrorMode) {
@@ -1048,8 +1049,8 @@
" consumer usage %" PRIu64 ", isShared %d, physicalCameraId %s, isMultiResolution %d"
" dynamicRangeProfile 0x%" PRIx64 ", streamUseCase %" PRId64 ", timestampBase %d,"
" mirrorMode %d",
- mId.string(), mNextStreamId, width, height, format, dataSpace, rotation,
- consumerUsage, isShared, physicalCameraId.string(), isMultiResolution,
+ mId.c_str(), mNextStreamId, width, height, format, dataSpace, rotation,
+ consumerUsage, isShared, physicalCameraId.c_str(), isMultiResolution,
dynamicRangeProfile, streamUseCase, timestampBase, mirrorMode);
status_t res;
@@ -1198,7 +1199,7 @@
}
internalResumeLocked();
}
- ALOGV("Camera %s: Created new stream", mId.string());
+ ALOGV("Camera %s: Created new stream", mId.c_str());
return OK;
}
@@ -1282,18 +1283,18 @@
Mutex::Autolock l(mLock);
status_t res;
- ALOGV("%s: Camera %s: Deleting stream %d", __FUNCTION__, mId.string(), id);
+ ALOGV("%s: Camera %s: Deleting stream %d", __FUNCTION__, mId.c_str(), id);
// CameraDevice semantics require device to already be idle before
// deleteStream is called, unlike for createStream.
if (mStatus == STATUS_ACTIVE) {
- ALOGW("%s: Camera %s: Device not idle", __FUNCTION__, mId.string());
+ ALOGW("%s: Camera %s: Device not idle", __FUNCTION__, mId.c_str());
return -EBUSY;
}
if (mStatus == STATUS_ERROR) {
ALOGW("%s: Camera %s: deleteStream not allowed in ERROR state",
- __FUNCTION__, mId.string());
+ __FUNCTION__, mId.c_str());
return -EBUSY;
}
@@ -1470,7 +1471,7 @@
mRequestTemplateCache[templateId].acquire(rawRequest);
// Override the template request with zoomRatioMapper
- res = mZoomRatioMappers[mId.c_str()].initZoomRatioInTemplate(
+ res = mZoomRatioMappers[mId].initZoomRatioInTemplate(
&mRequestTemplateCache[templateId]);
if (res != OK) {
CLOGE("Failed to update zoom ratio for template %d: %s (%d)",
@@ -1516,7 +1517,7 @@
SET_ERR_L("Unexpected status: %d",mStatus);
return INVALID_OPERATION;
}
- ALOGV("%s: Camera %s: Waiting until idle (%" PRIi64 "ns)", __FUNCTION__, mId.string(),
+ ALOGV("%s: Camera %s: Waiting until idle (%" PRIi64 "ns)", __FUNCTION__, mId.c_str(),
maxExpectedDuration);
status_t res = waitUntilStateThenRelock(/*active*/ false, maxExpectedDuration);
if (res != OK) {
@@ -1541,7 +1542,7 @@
return NO_INIT;
}
- ALOGV("%s: Camera %s: Internal wait until idle (% " PRIi64 " ns)", __FUNCTION__, mId.string(),
+ ALOGV("%s: Camera %s: Internal wait until idle (% " PRIi64 " ns)", __FUNCTION__, mId.c_str(),
maxExpectedDuration);
status_t res = waitUntilStateThenRelock(/*active*/ false, maxExpectedDuration);
if (res != OK) {
@@ -1558,7 +1559,7 @@
mRequestThread->setPaused(false);
- ALOGV("%s: Camera %s: Internal wait until active (% " PRIi64 " ns)", __FUNCTION__, mId.string(),
+ ALOGV("%s: Camera %s: Internal wait until active (% " PRIi64 " ns)", __FUNCTION__, mId.c_str(),
kActiveTimeout);
res = waitUntilStateThenRelock(/*active*/ true, kActiveTimeout);
if (res != OK) {
@@ -1757,7 +1758,7 @@
status_t Camera3Device::flush(int64_t *frameNumber) {
ATRACE_CALL();
- ALOGV("%s: Camera %s: Flushing all requests", __FUNCTION__, mId.string());
+ ALOGV("%s: Camera %s: Flushing all requests", __FUNCTION__, mId.c_str());
Mutex::Autolock il(mInterfaceLock);
{
@@ -1789,7 +1790,7 @@
status_t Camera3Device::prepare(int maxCount, int streamId) {
ATRACE_CALL();
- ALOGV("%s: Camera %s: Preparing stream %d", __FUNCTION__, mId.string(), streamId);
+ ALOGV("%s: Camera %s: Preparing stream %d", __FUNCTION__, mId.c_str(), streamId);
Mutex::Autolock il(mInterfaceLock);
Mutex::Autolock l(mLock);
@@ -1814,7 +1815,7 @@
status_t Camera3Device::tearDown(int streamId) {
ATRACE_CALL();
- ALOGV("%s: Camera %s: Tearing down stream %d", __FUNCTION__, mId.string(), streamId);
+ ALOGV("%s: Camera %s: Tearing down stream %d", __FUNCTION__, mId.c_str(), streamId);
Mutex::Autolock il(mInterfaceLock);
Mutex::Autolock l(mLock);
@@ -1835,7 +1836,8 @@
status_t Camera3Device::addBufferListenerForStream(int streamId,
wp<Camera3StreamBufferListener> listener) {
ATRACE_CALL();
- ALOGV("%s: Camera %s: Adding buffer listener for stream %d", __FUNCTION__, mId.string(), streamId);
+ ALOGV("%s: Camera %s: Adding buffer listener for stream %d", __FUNCTION__, mId.c_str(),
+ streamId);
Mutex::Autolock il(mInterfaceLock);
Mutex::Autolock l(mLock);
@@ -1883,7 +1885,7 @@
if (mStatus != STATUS_ACTIVE && mStatus != STATUS_CONFIGURED) {
return;
}
- ALOGV("%s: Camera %s: Now %s, pauseState: %s", __FUNCTION__, mId.string(),
+ ALOGV("%s: Camera %s: Now %s, pauseState: %s", __FUNCTION__, mId.c_str(),
idle ? "idle" : "active", mPauseStateNotify ? "true" : "false");
internalUpdateStatusLocked(idle ? STATUS_CONFIGURED : STATUS_ACTIVE);
@@ -1963,7 +1965,7 @@
const std::vector<sp<Surface>>& consumers, std::vector<int> *surfaceIds) {
ATRACE_CALL();
ALOGV("%s: Camera %s: set consumer surface for stream %d",
- __FUNCTION__, mId.string(), streamId);
+ __FUNCTION__, mId.c_str(), streamId);
if (surfaceIds == nullptr) {
return BAD_VALUE;
@@ -2224,7 +2226,7 @@
res = mPreparerThread->resume();
if (res != OK) {
- ALOGE("%s: Camera %s: Preparer thread failed to resume!", __FUNCTION__, mId.string());
+ ALOGE("%s: Camera %s: Preparer thread failed to resume!", __FUNCTION__, mId.c_str());
}
}
@@ -2373,7 +2375,7 @@
overrideStreamUseCaseLocked();
// Start configuring the streams
- ALOGV("%s: Camera %s: Starting stream configuration", __FUNCTION__, mId.string());
+ ALOGV("%s: Camera %s: Starting stream configuration", __FUNCTION__, mId.c_str());
mPreparerThread->pause();
@@ -2426,7 +2428,7 @@
// always occupy the initial entry.
if (outputStream->data_space == HAL_DATASPACE_V0_JFIF) {
bufferSizes[k] = static_cast<uint32_t>(
- getJpegBufferSize(infoPhysical(String8(outputStream->physical_camera_id)),
+ getJpegBufferSize(infoPhysical(outputStream->physical_camera_id),
outputStream->width, outputStream->height));
} else if (outputStream->data_space ==
static_cast<android_dataspace>(HAL_DATASPACE_JPEG_APP_SEGMENTS)) {
@@ -2439,7 +2441,7 @@
if (mOutputStreams[i]->isMultiResolution()) {
int32_t streamGroupId = mOutputStreams[i]->getHalStreamGroupId();
- const String8& physicalCameraId = mOutputStreams[i]->getPhysicalCameraId();
+ const std::string &physicalCameraId = mOutputStreams[i]->getPhysicalCameraId();
mGroupIdPhysicalCameraMap[streamGroupId].insert(physicalCameraId);
}
@@ -2553,14 +2555,14 @@
internalUpdateStatusLocked((mFakeStreamId == NO_STREAM) ?
STATUS_CONFIGURED : STATUS_UNCONFIGURED);
- ALOGV("%s: Camera %s: Stream configuration complete", __FUNCTION__, mId.string());
+ ALOGV("%s: Camera %s: Stream configuration complete", __FUNCTION__, mId.c_str());
// tear down the deleted streams after configure streams.
mDeletedStreams.clear();
auto rc = mPreparerThread->resume();
if (rc != OK) {
- SET_ERR_L("%s: Camera %s: Preparer thread failed to resume!", __FUNCTION__, mId.string());
+ SET_ERR_L("%s: Camera %s: Preparer thread failed to resume!", __FUNCTION__, mId.c_str());
return rc;
}
@@ -2574,7 +2576,7 @@
// configure the injection streams.
if (mInjectionMethods->isInjecting()) {
ALOGD("%s: Injection camera %s: Start to configure streams.",
- __FUNCTION__, mInjectionMethods->getInjectedCamId().string());
+ __FUNCTION__, mInjectionMethods->getInjectedCamId().c_str());
res = mInjectionMethods->injectCamera(config, bufferSizes);
if (res != OK) {
ALOGE("Can't finish inject camera process!");
@@ -2603,11 +2605,11 @@
// Should never be adding a second fake stream when one is already
// active
SET_ERR_L("%s: Camera %s: A fake stream already exists!",
- __FUNCTION__, mId.string());
+ __FUNCTION__, mId.c_str());
return INVALID_OPERATION;
}
- ALOGV("%s: Camera %s: Adding a fake stream", __FUNCTION__, mId.string());
+ ALOGV("%s: Camera %s: Adding a fake stream", __FUNCTION__, mId.c_str());
sp<Camera3OutputStreamInterface> fakeStream =
new Camera3FakeStream(mNextStreamId);
@@ -2631,7 +2633,7 @@
if (mFakeStreamId == NO_STREAM) return OK;
if (mOutputStreams.size() == 1) return OK;
- ALOGV("%s: Camera %s: Removing the fake stream", __FUNCTION__, mId.string());
+ ALOGV("%s: Camera %s: Removing the fake stream", __FUNCTION__, mId.c_str());
// Ok, have a fake stream and there's at least one other output stream,
// so remove the fake
@@ -2683,8 +2685,9 @@
void Camera3Device::setErrorStateLockedV(const char *fmt, va_list args) {
// Print out all error messages to log
- String8 errorCause = String8::formatV(fmt, args);
- ALOGE("Camera %s: %s", mId.string(), errorCause.string());
+ std::string errorCause;
+ base::StringAppendV(&errorCause, fmt, args);
+ ALOGE("Camera %s: %s", mId.c_str(), errorCause.c_str());
// But only do error state transition steps for the first error
if (mStatus == STATUS_ERROR || mStatus == STATUS_UNINITIALIZED) return;
@@ -2716,7 +2719,7 @@
status_t Camera3Device::registerInFlight(uint32_t frameNumber,
int32_t numBuffers, CaptureResultExtras resultExtras, bool hasInput,
bool hasAppCallback, nsecs_t minExpectedDuration, nsecs_t maxExpectedDuration,
- bool isFixedFps, const std::set<std::set<String8>>& physicalCameraIds,
+ bool isFixedFps, const std::set<std::set<std::string>>& physicalCameraIds,
bool isStillCapture, bool isZslCapture, bool rotateAndCropAuto,
const std::set<std::string>& cameraIdsWithZoom,
const SurfaceMap& outputSurfaces, nsecs_t requestTimeNs) {
@@ -2962,7 +2965,7 @@
void Camera3Device::RequestThread::configurationComplete(bool isConstrainedHighSpeed,
const CameraMetadata& sessionParams,
- const std::map<int32_t, std::set<String8>>& groupIdPhysicalCameraMap) {
+ const std::map<int32_t, std::set<std::string>>& groupIdPhysicalCameraMap) {
ATRACE_CALL();
Mutex::Autolock l(mRequestLock);
mReconfigured = true;
@@ -3015,8 +3018,8 @@
return OK;
}
-const String8& Camera3Device::RequestThread::getId(const wp<Camera3Device> &device) {
- static String8 deadId("<DeadDevice>");
+const std::string& Camera3Device::RequestThread::getId(const wp<Camera3Device> &device) {
+ static std::string deadId("<DeadDevice>");
sp<Camera3Device> d = device.promote();
if (d != nullptr) return d->mId;
return deadId;
@@ -3812,7 +3815,7 @@
outputBuffers->insertAt(camera_stream_buffer_t(), 0,
captureRequest->mOutputStreams.size());
halRequest->output_buffers = outputBuffers->array();
- std::set<std::set<String8>> requestedPhysicalCameras;
+ std::set<std::set<std::string>> requestedPhysicalCameras;
sp<Camera3Device> parent = mParent.promote();
if (parent == NULL) {
@@ -3893,11 +3896,11 @@
{
sp<Camera3Device> parent = mParent.promote();
if (parent != nullptr) {
- const String8& streamCameraId = outputStream->getPhysicalCameraId();
+ const std::string& streamCameraId = outputStream->getPhysicalCameraId();
for (const auto& settings : captureRequest->mSettingsList) {
- if ((streamCameraId.isEmpty() &&
- parent->getId() == settings.cameraId.c_str()) ||
- streamCameraId == settings.cameraId.c_str()) {
+ if ((streamCameraId.empty() &&
+ parent->getId() == settings.cameraId) ||
+ streamCameraId == settings.cameraId) {
outputStream->fireBufferRequestForFrameNumber(
captureRequest->mResultExtras.frameNumber,
settings.metadata);
@@ -3906,12 +3909,12 @@
}
}
- String8 physicalCameraId = outputStream->getPhysicalCameraId();
+ const std::string &physicalCameraId = outputStream->getPhysicalCameraId();
int32_t streamGroupId = outputStream->getHalStreamGroupId();
if (streamGroupId != -1 && mGroupIdPhysicalCameraMap.count(streamGroupId) == 1) {
requestedPhysicalCameras.insert(mGroupIdPhysicalCameraMap[streamGroupId]);
- } else if (!physicalCameraId.isEmpty()) {
- requestedPhysicalCameras.insert(std::set<String8>({physicalCameraId}));
+ } else if (!physicalCameraId.empty()) {
+ requestedPhysicalCameras.insert(std::set<std::string>({physicalCameraId}));
}
halRequest->num_output_buffers++;
}
@@ -5223,9 +5226,9 @@
return mRequestThread->setCameraMute(muteMode);
}
-status_t Camera3Device::injectCamera(const String8& injectedCamId,
+status_t Camera3Device::injectCamera(const std::string& injectedCamId,
sp<CameraProviderManager> manager) {
- ALOGI("%s Injection camera: injectedCamId = %s", __FUNCTION__, injectedCamId.string());
+ ALOGI("%s Injection camera: injectedCamId = %s", __FUNCTION__, injectedCamId.c_str());
ATRACE_CALL();
Mutex::Autolock il(mInterfaceLock);
// When the camera device is active, injectCamera() and stopInjection() will call
diff --git a/services/camera/libcameraservice/device3/Camera3Device.h b/services/camera/libcameraservice/device3/Camera3Device.h
index a3acb4e..7b89f9f 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.h
+++ b/services/camera/libcameraservice/device3/Camera3Device.h
@@ -82,7 +82,7 @@
friend class AidlCamera3Device;
public:
- explicit Camera3Device(const String8& id, bool overrideForPerfClass, bool overrideToPortrait,
+ explicit Camera3Device(const std::string& id, bool overrideForPerfClass, bool overrideToPortrait,
bool legacyClient = false);
virtual ~Camera3Device();
@@ -98,7 +98,7 @@
* CameraDeviceBase interface
*/
- const String8& getId() const override;
+ const std::string& getId() const override;
metadata_vendor_id_t getVendorTagId() const override { return mVendorTagId; }
@@ -107,15 +107,15 @@
// Transitions to idle state on success.
virtual status_t initialize(sp<CameraProviderManager> /*manager*/,
- const String8& /*monitorTags*/) = 0;
+ const std::string& /*monitorTags*/) = 0;
status_t disconnect() override;
status_t dump(int fd, const Vector<String16> &args) override;
- status_t startWatchingTags(const String8 &tags) override;
+ status_t startWatchingTags(const std::string &tags) override;
status_t stopWatchingTags() override;
status_t dumpWatchedEventsToVector(std::vector<std::string> &out) override;
const CameraMetadata& info() const override;
- const CameraMetadata& infoPhysical(const String8& physicalId) const override;
+ const CameraMetadata& infoPhysical(const std::string& physicalId) const override;
// Capture and setStreamingRequest will configure streams if currently in
// idle state
@@ -140,7 +140,7 @@
status_t createStream(sp<Surface> consumer,
uint32_t width, uint32_t height, int format,
android_dataspace dataSpace, camera_stream_rotation_t rotation, int *id,
- const String8& physicalCameraId,
+ const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed,
std::vector<int> *surfaceIds = nullptr,
int streamSetId = camera3::CAMERA3_STREAM_SET_ID_INVALID,
@@ -155,7 +155,7 @@
status_t createStream(const std::vector<sp<Surface>>& consumers,
bool hasDeferredConsumer, uint32_t width, uint32_t height, int format,
android_dataspace dataSpace, camera_stream_rotation_t rotation, int *id,
- const String8& physicalCameraId,
+ const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed,
std::vector<int> *surfaceIds = nullptr,
int streamSetId = camera3::CAMERA3_STREAM_SET_ID_INVALID,
@@ -301,7 +301,7 @@
* The injection camera session to replace the internal camera
* session.
*/
- status_t injectCamera(const String8& injectedCamId,
+ status_t injectCamera(const std::string& injectedCamId,
sp<CameraProviderManager> manager);
/**
@@ -344,7 +344,7 @@
Mutex mLock;
// Camera device ID
- const String8 mId;
+ const std::string mId;
// Legacy camera client flag
bool mLegacyClient;
@@ -546,14 +546,14 @@
Condition mStatusChanged;
// Tracking cause of fatal errors when in STATUS_ERROR
- String8 mErrorCause;
+ std::string mErrorCause;
camera3::StreamSet mOutputStreams;
sp<camera3::Camera3Stream> mInputStream;
bool mIsInputStreamMultiResolution;
SessionStatsBuilder mSessionStatsBuilder;
// Map from stream group ID to physical cameras backing the stream group
- std::map<int32_t, std::set<String8>> mGroupIdPhysicalCameraMap;
+ std::map<int32_t, std::set<std::string>> mGroupIdPhysicalCameraMap;
int mNextStreamId;
bool mNeedConfig;
@@ -662,7 +662,7 @@
*/
virtual CameraMetadata getLatestRequestLocked();
- virtual status_t injectionCameraInitialize(const String8 &injectCamId,
+ virtual status_t injectionCameraInitialize(const std::string &injectCamId,
sp<CameraProviderManager> manager) = 0;
/**
@@ -837,7 +837,7 @@
*/
void configurationComplete(bool isConstrainedHighSpeed,
const CameraMetadata& sessionParams,
- const std::map<int32_t, std::set<String8>>& groupIdPhysicalCameraMap);
+ const std::map<int32_t, std::set<std::string>>& groupIdPhysicalCameraMap);
/**
* Set or clear the list of repeating requests. Does not block
@@ -936,7 +936,7 @@
virtual bool threadLoop();
- static const String8& getId(const wp<Camera3Device> &device);
+ static const std::string& getId(const wp<Camera3Device> &device);
status_t queueTriggerLocked(RequestTrigger trigger);
// Mix-in queued triggers into this request
@@ -1035,7 +1035,7 @@
wp<NotificationListener> mListener;
- const String8 mId; // The camera ID
+ const std::string mId; // The camera ID
int mStatusId; // The RequestThread's component ID for
// status tracking
@@ -1103,7 +1103,7 @@
Vector<int32_t> mSessionParamKeys;
CameraMetadata mLatestSessionParams;
- std::map<int32_t, std::set<String8>> mGroupIdPhysicalCameraMap;
+ std::map<int32_t, std::set<std::string>> mGroupIdPhysicalCameraMap;
const bool mUseHalBufManager;
const bool mSupportCameraMute;
@@ -1136,7 +1136,7 @@
status_t registerInFlight(uint32_t frameNumber,
int32_t numBuffers, CaptureResultExtras resultExtras, bool hasInput,
bool callback, nsecs_t minExpectedDuration, nsecs_t maxExpectedDuration,
- bool isFixedFps, const std::set<std::set<String8>>& physicalCameraIds,
+ bool isFixedFps, const std::set<std::set<std::string>>& physicalCameraIds,
bool isStillCapture, bool isZslCapture, bool rotateAndCropAuto,
const std::set<std::string>& cameraIdsWithZoom, const SurfaceMap& outputSurfaces,
nsecs_t requestTimeNs);
@@ -1421,7 +1421,7 @@
bool isStreamConfigCompleteButNotInjected();
- const String8& getInjectedCamId() const;
+ const std::string& getInjectedCamId() const;
void getInjectionConfig(/*out*/ camera3::camera_stream_configuration* injectionConfig,
/*out*/ std::vector<uint32_t>* injectionBufferSizes);
@@ -1475,7 +1475,7 @@
Mutex mInjectionLock;
// The injection camera ID.
- String8 mInjectedCamId;
+ std::string mInjectedCamId;
};
virtual sp<Camera3DeviceInjectionMethods>
diff --git a/services/camera/libcameraservice/device3/Camera3DeviceInjectionMethods.cpp b/services/camera/libcameraservice/device3/Camera3DeviceInjectionMethods.cpp
index 031c255..4640f2d 100644
--- a/services/camera/libcameraservice/device3/Camera3DeviceInjectionMethods.cpp
+++ b/services/camera/libcameraservice/device3/Camera3DeviceInjectionMethods.cpp
@@ -155,7 +155,7 @@
return mIsStreamConfigCompleteButNotInjected;
}
-const String8& Camera3Device::Camera3DeviceInjectionMethods::getInjectedCamId()
+const std::string& Camera3Device::Camera3DeviceInjectionMethods::getInjectedCamId()
const {
return mInjectedCamId;
}
@@ -204,7 +204,7 @@
// Start configuring the streams
ALOGV("%s: Injection camera %s: Starting stream configuration", __FUNCTION__,
- mInjectedCamId.string());
+ mInjectedCamId.c_str());
parent->mPreparerThread->pause();
@@ -247,12 +247,12 @@
parent->internalUpdateStatusLocked(STATUS_CONFIGURED);
ALOGV("%s: Injection camera %s: Stream configuration complete", __FUNCTION__,
- mInjectedCamId.string());
+ mInjectedCamId.c_str());
auto rc = parent->mPreparerThread->resume();
if (rc != OK) {
ALOGE("%s: Injection camera %s: Preparer thread failed to resume!",
- __FUNCTION__, mInjectedCamId.string());
+ __FUNCTION__, mInjectedCamId.c_str());
return rc;
}
diff --git a/services/camera/libcameraservice/device3/Camera3FakeStream.cpp b/services/camera/libcameraservice/device3/Camera3FakeStream.cpp
index 8c0ac71..75162bf 100644
--- a/services/camera/libcameraservice/device3/Camera3FakeStream.cpp
+++ b/services/camera/libcameraservice/device3/Camera3FakeStream.cpp
@@ -20,13 +20,14 @@
#include <utils/Log.h>
#include <utils/Trace.h>
+#include <camera/StringUtils.h>
#include "Camera3FakeStream.h"
namespace android {
namespace camera3 {
-const String8 Camera3FakeStream::FAKE_ID;
+const std::string Camera3FakeStream::FAKE_ID;
Camera3FakeStream::Camera3FakeStream(int id) :
Camera3IOStreamBase(id, CAMERA_STREAM_OUTPUT, FAKE_WIDTH, FAKE_HEIGHT,
@@ -68,9 +69,9 @@
}
void Camera3FakeStream::dump(int fd, [[maybe_unused]] const Vector<String16> &args) const {
- String8 lines;
- lines.appendFormat(" Stream[%d]: Fake\n", mId);
- write(fd, lines.string(), lines.size());
+ std::string lines;
+ lines += fmt::sprintf(" Stream[%d]: Fake\n", mId);
+ write(fd, lines.c_str(), lines.size());
Camera3IOStreamBase::dump(fd, args);
}
@@ -115,7 +116,7 @@
return OK;
}
-const String8& Camera3FakeStream::getPhysicalCameraId() const {
+const std::string& Camera3FakeStream::getPhysicalCameraId() const {
return FAKE_ID;
}
diff --git a/services/camera/libcameraservice/device3/Camera3FakeStream.h b/services/camera/libcameraservice/device3/Camera3FakeStream.h
index 1e9f478..1d82190 100644
--- a/services/camera/libcameraservice/device3/Camera3FakeStream.h
+++ b/services/camera/libcameraservice/device3/Camera3FakeStream.h
@@ -65,7 +65,7 @@
/**
* Query the physical camera id for the output stream.
*/
- virtual const String8& getPhysicalCameraId() const override;
+ virtual const std::string& getPhysicalCameraId() const override;
/**
* Return if this output stream is for video encoding.
@@ -130,7 +130,7 @@
static const android_dataspace FAKE_DATASPACE = HAL_DATASPACE_UNKNOWN;
static const camera_stream_rotation_t FAKE_ROTATION = CAMERA_STREAM_ROTATION_0;
static const uint64_t FAKE_USAGE = GRALLOC_USAGE_HW_COMPOSER;
- static const String8 FAKE_ID;
+ static const std::string FAKE_ID;
/**
* Internal Camera3Stream interface
diff --git a/services/camera/libcameraservice/device3/Camera3IOStreamBase.cpp b/services/camera/libcameraservice/device3/Camera3IOStreamBase.cpp
index 314e007..7d08089 100644
--- a/services/camera/libcameraservice/device3/Camera3IOStreamBase.cpp
+++ b/services/camera/libcameraservice/device3/Camera3IOStreamBase.cpp
@@ -18,10 +18,13 @@
#define ATRACE_TAG ATRACE_TAG_CAMERA
//#define LOG_NDEBUG 0
+#include <sstream>
+
#include <inttypes.h>
#include <utils/Log.h>
#include <utils/Trace.h>
+#include <camera/StringUtils.h>
#include "device3/Camera3IOStreamBase.h"
#include "device3/StatusTracker.h"
@@ -32,7 +35,7 @@
Camera3IOStreamBase::Camera3IOStreamBase(int id, camera_stream_type_t type,
uint32_t width, uint32_t height, size_t maxSize, int format,
android_dataspace dataSpace, camera_stream_rotation_t rotation,
- const String8& physicalCameraId,
+ const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed,
int setId, bool isMultiResolution, int64_t dynamicRangeProfile, int64_t streamUseCase,
bool deviceTimeBaseIsRealtime, int timestampBase) :
@@ -74,31 +77,33 @@
}
void Camera3IOStreamBase::dump(int fd, [[maybe_unused]] const Vector<String16> &args) const {
- String8 lines;
+ std::ostringstream lines;
uint64_t consumerUsage = 0;
status_t res = getEndpointUsage(&consumerUsage);
if (res != OK) consumerUsage = 0;
- lines.appendFormat(" State: %d\n", mState);
- lines.appendFormat(" Dims: %d x %d, format 0x%x, dataspace 0x%x\n",
+ lines << fmt::sprintf(" State: %d\n", mState);
+ lines << fmt::sprintf(" Dims: %d x %d, format 0x%x, dataspace 0x%x\n",
camera_stream::width, camera_stream::height,
camera_stream::format, camera_stream::data_space);
- lines.appendFormat(" Max size: %zu\n", mMaxSize);
- lines.appendFormat(" Combined usage: 0x%" PRIx64 ", max HAL buffers: %d\n",
+ lines << fmt::sprintf(" Max size: %zu\n", mMaxSize);
+ lines << fmt::sprintf(" Combined usage: 0x%" PRIx64 ", max HAL buffers: %d\n",
mUsage | consumerUsage, camera_stream::max_buffers);
- if (strlen(camera_stream::physical_camera_id) > 0) {
- lines.appendFormat(" Physical camera id: %s\n", camera_stream::physical_camera_id);
+ if (!camera_stream::physical_camera_id.empty()) {
+ lines << " Physical camera id: " << camera_stream::physical_camera_id << "\n";
}
- lines.appendFormat(" Dynamic Range Profile: 0x%" PRIx64 "\n",
+ lines << fmt::sprintf(" Dynamic Range Profile: 0x%" PRIx64 "\n",
camera_stream::dynamic_range_profile);
- lines.appendFormat(" Stream use case: %" PRId64 "\n", camera_stream::use_case);
- lines.appendFormat(" Timestamp base: %d\n", getTimestampBase());
- lines.appendFormat(" Frames produced: %d, last timestamp: %" PRId64 " ns\n",
+ lines << fmt::sprintf(" Stream use case: %" PRId64 "\n", camera_stream::use_case);
+ lines << fmt::sprintf(" Timestamp base: %d\n", getTimestampBase());
+ lines << fmt::sprintf(" Frames produced: %d, last timestamp: %" PRId64 " ns\n",
mFrameCount, mLastTimestamp);
- lines.appendFormat(" Total buffers: %zu, currently dequeued: %zu, currently cached: %zu\n",
- mTotalBufferCount, mHandoutTotalBufferCount, mCachedOutputBufferCount);
- write(fd, lines.string(), lines.size());
+ lines << fmt::sprintf(" Total buffers: %zu, currently dequeued: %zu, "
+ "currently cached: %zu\n", mTotalBufferCount, mHandoutTotalBufferCount,
+ mCachedOutputBufferCount);
+ std::string linesStr = std::move(lines.str());
+ write(fd, linesStr.c_str(), linesStr.size());
Camera3Stream::dump(fd, args);
}
@@ -266,7 +271,7 @@
// carry on
if (releaseFence != 0) {
- mCombinedFence = Fence::merge(mName, mCombinedFence, releaseFence);
+ mCombinedFence = Fence::merge(toString8(mName), mCombinedFence, releaseFence);
}
if (output) {
diff --git a/services/camera/libcameraservice/device3/Camera3IOStreamBase.h b/services/camera/libcameraservice/device3/Camera3IOStreamBase.h
index ca1f238..1086955 100644
--- a/services/camera/libcameraservice/device3/Camera3IOStreamBase.h
+++ b/services/camera/libcameraservice/device3/Camera3IOStreamBase.h
@@ -35,7 +35,7 @@
Camera3IOStreamBase(int id, camera_stream_type_t type,
uint32_t width, uint32_t height, size_t maxSize, int format,
android_dataspace dataSpace, camera_stream_rotation_t rotation,
- const String8& physicalCameraId,
+ const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed,
int setId = CAMERA3_STREAM_SET_ID_INVALID, bool isMultiResolution = false,
int64_t dynamicProfile = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD,
diff --git a/services/camera/libcameraservice/device3/Camera3InputStream.cpp b/services/camera/libcameraservice/device3/Camera3InputStream.cpp
index 631bb43..54ffbd7 100644
--- a/services/camera/libcameraservice/device3/Camera3InputStream.cpp
+++ b/services/camera/libcameraservice/device3/Camera3InputStream.cpp
@@ -21,13 +21,14 @@
#include <gui/BufferItem.h>
#include <utils/Log.h>
#include <utils/Trace.h>
+#include <camera/StringUtils.h>
#include "Camera3InputStream.h"
namespace android {
namespace camera3 {
-const String8 Camera3InputStream::FAKE_ID;
+const std::string Camera3InputStream::FAKE_ID;
Camera3InputStream::Camera3InputStream(int id,
uint32_t width, uint32_t height, int format) :
@@ -216,9 +217,9 @@
}
void Camera3InputStream::dump(int fd, [[maybe_unused]] const Vector<String16> &args) const {
- String8 lines;
- lines.appendFormat(" Stream[%d]: Input\n", mId);
- write(fd, lines.string(), lines.size());
+ std::string lines;
+ lines += fmt::sprintf(" Stream[%d]: Input\n", mId);
+ write(fd, lines.c_str(), lines.size());
Camera3IOStreamBase::dump(fd, args);
}
diff --git a/services/camera/libcameraservice/device3/Camera3InputStream.h b/services/camera/libcameraservice/device3/Camera3InputStream.h
index 5e0587b..d4f4b15 100644
--- a/services/camera/libcameraservice/device3/Camera3InputStream.h
+++ b/services/camera/libcameraservice/device3/Camera3InputStream.h
@@ -53,7 +53,7 @@
sp<IGraphicBufferProducer> mProducer;
Vector<BufferItem> mBuffersInFlight;
- static const String8 FAKE_ID;
+ static const std::string FAKE_ID;
/**
* Camera3IOStreamBase
diff --git a/services/camera/libcameraservice/device3/Camera3OfflineSession.cpp b/services/camera/libcameraservice/device3/Camera3OfflineSession.cpp
index 1e7bd57..172b62a 100644
--- a/services/camera/libcameraservice/device3/Camera3OfflineSession.cpp
+++ b/services/camera/libcameraservice/device3/Camera3OfflineSession.cpp
@@ -27,7 +27,9 @@
#include <inttypes.h>
+#include <android-base/stringprintf.h>
#include <utils/Trace.h>
+#include <camera/StringUtils.h>
#include <android/hardware/camera2/ICameraDeviceCallbacks.h>
@@ -42,7 +44,7 @@
namespace android {
-Camera3OfflineSession::Camera3OfflineSession(const String8 &id,
+Camera3OfflineSession::Camera3OfflineSession(const std::string &id,
const sp<camera3::Camera3Stream>& inputStream,
const camera3::StreamSet& offlineStreamSet,
camera3::BufferRecords&& bufferRecords,
@@ -75,15 +77,15 @@
mRotateAndCropMappers(offlineStates.mRotateAndCropMappers),
mStatus(STATUS_UNINITIALIZED) {
ATRACE_CALL();
- ALOGV("%s: Created offline session for camera %s", __FUNCTION__, mId.string());
+ ALOGV("%s: Created offline session for camera %s", __FUNCTION__, mId.c_str());
}
Camera3OfflineSession::~Camera3OfflineSession() {
ATRACE_CALL();
- ALOGV("%s: Tearing down offline session for camera id %s", __FUNCTION__, mId.string());
+ ALOGV("%s: Tearing down offline session for camera id %s", __FUNCTION__, mId.c_str());
}
-const String8& Camera3OfflineSession::getId() const {
+const std::string& Camera3OfflineSession::getId() const {
return mId;
}
@@ -109,7 +111,7 @@
return OK; // don't close twice
} else if (mStatus == STATUS_ERROR) {
ALOGE("%s: offline session %s shutting down in error state",
- __FUNCTION__, mId.string());
+ __FUNCTION__, mId.c_str());
}
listener = mListener.promote();
}
@@ -217,8 +219,9 @@
void Camera3OfflineSession::setErrorStateLockedV(const char *fmt, va_list args) {
// Print out all error messages to log
- String8 errorCause = String8::formatV(fmt, args);
- ALOGE("Camera %s: %s", mId.string(), errorCause.string());
+ std::string errorCause;
+ base::StringAppendV(&errorCause, fmt, args);
+ ALOGE("Camera %s: %s", mId.c_str(), errorCause.c_str());
// But only do error state transition steps for the first error
if (mStatus == STATUS_ERROR || mStatus == STATUS_UNINITIALIZED) return;
diff --git a/services/camera/libcameraservice/device3/Camera3OfflineSession.h b/services/camera/libcameraservice/device3/Camera3OfflineSession.h
index e780043..b5fd486 100644
--- a/services/camera/libcameraservice/device3/Camera3OfflineSession.h
+++ b/services/camera/libcameraservice/device3/Camera3OfflineSession.h
@@ -20,9 +20,6 @@
#include <memory>
#include <mutex>
-#include <utils/String8.h>
-#include <utils/String16.h>
-
#include <android/hardware/camera/device/3.6/ICameraOfflineSession.h>
#include <fmq/MessageQueue.h>
@@ -138,7 +135,7 @@
public:
// initialize by Camera3Device.
- explicit Camera3OfflineSession(const String8& id,
+ explicit Camera3OfflineSession(const std::string& id,
const sp<camera3::Camera3Stream>& inputStream,
const camera3::StreamSet& offlineStreamSet,
camera3::BufferRecords&& bufferRecords,
@@ -158,7 +155,7 @@
/**
* FrameProducer interface
*/
- const String8& getId() const override;
+ const std::string& getId() const override;
const CameraMetadata& info() const override;
status_t waitForNextFrame(nsecs_t timeout) override;
status_t getNextResult(CaptureResult *frame) override;
@@ -171,7 +168,7 @@
protected:
// Camera device ID
- const String8 mId;
+ const std::string mId;
sp<camera3::Camera3Stream> mInputStream;
camera3::StreamSet mOutputStreams;
camera3::BufferRecords mBufferRecords;
@@ -236,7 +233,7 @@
std::mutex mProcessCaptureResultLock;
// Tracking cause of fatal errors when in STATUS_ERROR
- String8 mErrorCause;
+ std::string mErrorCause;
// Lock to ensure requestStreamBuffers() callbacks are serialized
std::mutex mRequestBufferInterfaceLock;
diff --git a/services/camera/libcameraservice/device3/Camera3OutputStream.cpp b/services/camera/libcameraservice/device3/Camera3OutputStream.cpp
index 4268e61..290836c 100644
--- a/services/camera/libcameraservice/device3/Camera3OutputStream.cpp
+++ b/services/camera/libcameraservice/device3/Camera3OutputStream.cpp
@@ -30,6 +30,7 @@
#include <ui/GraphicBuffer.h>
#include <utils/Log.h>
#include <utils/Trace.h>
+#include <camera/StringUtils.h>
#include <common/CameraDeviceBase.h>
#include "api1/client2/JpegProcessor.h"
@@ -52,7 +53,7 @@
sp<Surface> consumer,
uint32_t width, uint32_t height, int format,
android_dataspace dataSpace, camera_stream_rotation_t rotation,
- nsecs_t timestampOffset, const String8& physicalCameraId,
+ nsecs_t timestampOffset, const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed, IPCTransport transport,
int setId, bool isMultiResolution, int64_t dynamicRangeProfile,
int64_t streamUseCase, bool deviceTimeBaseIsRealtime, int timestampBase,
@@ -87,7 +88,7 @@
sp<Surface> consumer,
uint32_t width, uint32_t height, size_t maxSize, int format,
android_dataspace dataSpace, camera_stream_rotation_t rotation,
- nsecs_t timestampOffset, const String8& physicalCameraId,
+ nsecs_t timestampOffset, const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed, IPCTransport transport,
int setId, bool isMultiResolution, int64_t dynamicRangeProfile,
int64_t streamUseCase, bool deviceTimeBaseIsRealtime, int timestampBase,
@@ -127,7 +128,7 @@
uint32_t width, uint32_t height, int format,
uint64_t consumerUsage, android_dataspace dataSpace,
camera_stream_rotation_t rotation, nsecs_t timestampOffset,
- const String8& physicalCameraId,
+ const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed, IPCTransport transport,
int setId, bool isMultiResolution, int64_t dynamicRangeProfile,
int64_t streamUseCase, bool deviceTimeBaseIsRealtime, int timestampBase,
@@ -163,7 +164,7 @@
mState = STATE_ERROR;
}
- mConsumerName = String8("Deferred");
+ mConsumerName = "Deferred";
bool needsReleaseNotify = setId > CAMERA3_STREAM_SET_ID_INVALID;
mBufferProducerListener = new BufferProducerListener(this, needsReleaseNotify);
}
@@ -173,7 +174,7 @@
int format,
android_dataspace dataSpace,
camera_stream_rotation_t rotation,
- const String8& physicalCameraId,
+ const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed,
IPCTransport transport,
uint64_t consumerUsage, nsecs_t timestampOffset,
@@ -522,10 +523,10 @@
}
void Camera3OutputStream::dump(int fd, [[maybe_unused]] const Vector<String16> &args) const {
- String8 lines;
- lines.appendFormat(" Stream[%d]: Output\n", mId);
- lines.appendFormat(" Consumer name: %s\n", mConsumerName.string());
- write(fd, lines.string(), lines.size());
+ std::string lines;
+ lines += fmt::sprintf(" Stream[%d]: Output\n", mId);
+ lines += fmt::sprintf(" Consumer name: %s\n", mConsumerName);
+ write(fd, lines.c_str(), lines.size());
Camera3IOStreamBase::dump(fd, args);
@@ -709,7 +710,8 @@
// service. So update mMaxCachedBufferCount.
mMaxCachedBufferCount = 1;
mTotalBufferCount += mMaxCachedBufferCount;
- res = mPreviewFrameSpacer->run(String8::format("PreviewSpacer-%d", mId).string());
+ res = mPreviewFrameSpacer->run((std::string("PreviewSpacer-")
+ + std::to_string(mId)).c_str());
if (res != OK) {
ALOGE("%s: Unable to start preview spacer", __FUNCTION__);
return res;
@@ -1236,7 +1238,7 @@
return OK;
}
-const String8& Camera3OutputStream::getPhysicalCameraId() const {
+const std::string& Camera3OutputStream::getPhysicalCameraId() const {
Mutex::Autolock l(mLock);
return physicalCameraId();
}
@@ -1340,7 +1342,7 @@
// Output image data to file
std::string filePath = "/data/misc/cameraserver/";
filePath += imageFileName;
- std::ofstream imageFile(filePath.c_str(), std::ofstream::binary);
+ std::ofstream imageFile(filePath, std::ofstream::binary);
if (!imageFile.is_open()) {
ALOGE("%s: Unable to create file %s", __FUNCTION__, filePath.c_str());
graphicBuffer->unlock();
diff --git a/services/camera/libcameraservice/device3/Camera3OutputStream.h b/services/camera/libcameraservice/device3/Camera3OutputStream.h
index a719d6b..c44b842 100644
--- a/services/camera/libcameraservice/device3/Camera3OutputStream.h
+++ b/services/camera/libcameraservice/device3/Camera3OutputStream.h
@@ -89,7 +89,7 @@
Camera3OutputStream(int id, sp<Surface> consumer,
uint32_t width, uint32_t height, int format,
android_dataspace dataSpace, camera_stream_rotation_t rotation,
- nsecs_t timestampOffset, const String8& physicalCameraId,
+ nsecs_t timestampOffset, const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed, IPCTransport transport,
int setId = CAMERA3_STREAM_SET_ID_INVALID, bool isMultiResolution = false,
int64_t dynamicProfile = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD,
@@ -106,7 +106,7 @@
Camera3OutputStream(int id, sp<Surface> consumer,
uint32_t width, uint32_t height, size_t maxSize, int format,
android_dataspace dataSpace, camera_stream_rotation_t rotation,
- nsecs_t timestampOffset, const String8& physicalCameraId,
+ nsecs_t timestampOffset, const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed, IPCTransport transport,
int setId = CAMERA3_STREAM_SET_ID_INVALID, bool isMultiResolution = false,
int64_t dynamicProfile = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD,
@@ -122,7 +122,7 @@
Camera3OutputStream(int id, uint32_t width, uint32_t height, int format,
uint64_t consumerUsage, android_dataspace dataSpace,
camera_stream_rotation_t rotation, nsecs_t timestampOffset,
- const String8& physicalCameraId,
+ const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed, IPCTransport transport,
int setId = CAMERA3_STREAM_SET_ID_INVALID, bool isMultiResolution = false,
int64_t dynamicProfile = ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD,
@@ -208,7 +208,7 @@
/**
* Query the physical camera id for the output stream.
*/
- virtual const String8& getPhysicalCameraId() const override;
+ virtual const std::string& getPhysicalCameraId() const override;
/**
* Set the graphic buffer manager to get/return the stream buffers.
@@ -270,7 +270,7 @@
Camera3OutputStream(int id, camera_stream_type_t type,
uint32_t width, uint32_t height, int format,
android_dataspace dataSpace, camera_stream_rotation_t rotation,
- const String8& physicalCameraId,
+ const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed, IPCTransport transport,
uint64_t consumerUsage = 0, nsecs_t timestampOffset = 0,
int setId = CAMERA3_STREAM_SET_ID_INVALID, bool isMultiResolution = false,
@@ -319,7 +319,7 @@
bool mTraceFirstBuffer;
// Name of Surface consumer
- String8 mConsumerName;
+ std::string mConsumerName;
/**
* GraphicBuffer manager this stream is registered to. Used to replace the buffer
diff --git a/services/camera/libcameraservice/device3/Camera3OutputStreamInterface.h b/services/camera/libcameraservice/device3/Camera3OutputStreamInterface.h
index 4baa7e8..1ab8162 100644
--- a/services/camera/libcameraservice/device3/Camera3OutputStreamInterface.h
+++ b/services/camera/libcameraservice/device3/Camera3OutputStreamInterface.h
@@ -94,7 +94,7 @@
/**
* Query the physical camera id for the output stream.
*/
- virtual const String8& getPhysicalCameraId() const = 0;
+ virtual const std::string& getPhysicalCameraId() const = 0;
/**
* Set the batch size for buffer operations. The output stream will request
diff --git a/services/camera/libcameraservice/device3/Camera3OutputUtils.cpp b/services/camera/libcameraservice/device3/Camera3OutputUtils.cpp
index 5021f29..f25137a 100644
--- a/services/camera/libcameraservice/device3/Camera3OutputUtils.cpp
+++ b/services/camera/libcameraservice/device3/Camera3OutputUtils.cpp
@@ -43,6 +43,7 @@
#include <android/hardware/camera/device/3.5/ICameraDeviceSession.h>
#include <camera/CameraUtils.h>
+#include <camera/StringUtils.h>
#include <camera_metadata_hidden.h>
#include "device3/Camera3OutputUtils.h"
@@ -189,16 +190,16 @@
// and RotationAndCrop mappers.
std::set<uint32_t> keysToRemove;
- auto iter = states.distortionMappers.find(states.cameraId.c_str());
+ auto iter = states.distortionMappers.find(states.cameraId);
if (iter != states.distortionMappers.end()) {
const auto& remappedKeys = iter->second.getRemappedKeys();
keysToRemove.insert(remappedKeys.begin(), remappedKeys.end());
}
- const auto& remappedKeys = states.zoomRatioMappers[states.cameraId.c_str()].getRemappedKeys();
+ const auto& remappedKeys = states.zoomRatioMappers[states.cameraId].getRemappedKeys();
keysToRemove.insert(remappedKeys.begin(), remappedKeys.end());
- auto mapper = states.rotateAndCropMappers.find(states.cameraId.c_str());
+ auto mapper = states.rotateAndCropMappers.find(states.cameraId);
if (mapper != states.rotateAndCropMappers.end()) {
const auto& remappedKeys = iter->second.getRemappedKeys();
keysToRemove.insert(remappedKeys.begin(), remappedKeys.end());
@@ -282,14 +283,14 @@
physicalMetadata.mPhysicalCameraMetadata.find(ANDROID_SENSOR_TIMESTAMP);
if (timestamp.count == 0) {
SET_ERR("No timestamp provided by HAL for physical camera %s frame %d!",
- String8(physicalMetadata.mPhysicalCameraId).c_str(), frameNumber);
+ physicalMetadata.mPhysicalCameraId.c_str(), frameNumber);
return;
}
}
// Fix up some result metadata to account for HAL-level distortion correction
status_t res = OK;
- auto iter = states.distortionMappers.find(states.cameraId.c_str());
+ auto iter = states.distortionMappers.find(states.cameraId);
if (iter != states.distortionMappers.end()) {
res = iter->second.correctCaptureResult(&captureResult.mMetadata);
if (res != OK) {
@@ -301,8 +302,8 @@
// Fix up result metadata to account for zoom ratio availabilities between
// HAL and app.
- bool zoomRatioIs1 = cameraIdsWithZoom.find(states.cameraId.c_str()) == cameraIdsWithZoom.end();
- res = states.zoomRatioMappers[states.cameraId.c_str()].updateCaptureResult(
+ bool zoomRatioIs1 = cameraIdsWithZoom.find(states.cameraId) == cameraIdsWithZoom.end();
+ res = states.zoomRatioMappers[states.cameraId].updateCaptureResult(
&captureResult.mMetadata, zoomRatioIs1);
if (res != OK) {
SET_ERR("Failed to update capture result zoom ratio metadata for frame %d: %s (%d)",
@@ -312,7 +313,7 @@
// Fix up result metadata to account for rotateAndCrop in AUTO mode
if (rotateAndCropAuto) {
- auto mapper = states.rotateAndCropMappers.find(states.cameraId.c_str());
+ auto mapper = states.rotateAndCropMappers.find(states.cameraId);
if (mapper != states.rotateAndCropMappers.end()) {
res = mapper->second.updateCaptureResult(
&captureResult.mMetadata);
@@ -325,8 +326,8 @@
}
for (auto& physicalMetadata : captureResult.mPhysicalMetadatas) {
- String8 cameraId8(physicalMetadata.mPhysicalCameraId);
- auto mapper = states.distortionMappers.find(cameraId8.c_str());
+ const std::string cameraId = physicalMetadata.mPhysicalCameraId;
+ auto mapper = states.distortionMappers.find(cameraId);
if (mapper != states.distortionMappers.end()) {
res = mapper->second.correctCaptureResult(
&physicalMetadata.mPhysicalCameraMetadata);
@@ -337,12 +338,12 @@
}
}
- zoomRatioIs1 = cameraIdsWithZoom.find(cameraId8.c_str()) == cameraIdsWithZoom.end();
- res = states.zoomRatioMappers[cameraId8.c_str()].updateCaptureResult(
+ zoomRatioIs1 = cameraIdsWithZoom.find(cameraId) == cameraIdsWithZoom.end();
+ res = states.zoomRatioMappers[cameraId].updateCaptureResult(
&physicalMetadata.mPhysicalCameraMetadata, zoomRatioIs1);
if (res != OK) {
SET_ERR("Failed to update camera %s's physical zoom ratio metadata for "
- "frame %d: %s(%d)", cameraId8.c_str(), frameNumber, strerror(-res), res);
+ "frame %d: %s(%d)", cameraId.c_str(), frameNumber, strerror(-res), res);
return;
}
}
@@ -354,9 +355,9 @@
return;
}
for (auto& physicalMetadata : captureResult.mPhysicalMetadatas) {
- String8 cameraId8(physicalMetadata.mPhysicalCameraId);
+ const std::string &cameraId = physicalMetadata.mPhysicalCameraId;
res = fixupMonochromeTags(states,
- states.physicalDeviceInfoMap.at(cameraId8.c_str()),
+ states.physicalDeviceInfoMap.at(cameraId),
physicalMetadata.mPhysicalCameraMetadata);
if (res != OK) {
SET_ERR("Failed to override result metadata: %s (%d)", strerror(-res), res);
@@ -366,7 +367,7 @@
std::unordered_map<std::string, CameraMetadata> monitoredPhysicalMetadata;
for (auto& m : physicalMetadatas) {
- monitoredPhysicalMetadata.emplace(String8(m.mPhysicalCameraId).string(),
+ monitoredPhysicalMetadata.emplace(m.mPhysicalCameraId,
CameraMetadata(m.mPhysicalCameraMetadata));
}
states.tagMonitor.monitorMetadata(TagMonitor::RESULT,
@@ -452,7 +453,7 @@
// Erase the subset of physicalCameraIds that contains id
bool erasePhysicalCameraIdSet(
- std::set<std::set<String8>>& physicalCameraIds, const String8& id) {
+ std::set<std::set<std::string>>& physicalCameraIds, const std::string& id) {
bool found = false;
for (auto iter = physicalCameraIds.begin(); iter != physicalCameraIds.end(); iter++) {
if (iter->count(id) == 1) {
@@ -610,7 +611,7 @@
return;
}
for (uint32_t i = 0; i < result->num_physcam_metadata; i++) {
- String8 physicalId(result->physcam_ids[i]);
+ const std::string physicalId = result->physcam_ids[i];
bool validPhysicalCameraMetadata =
erasePhysicalCameraIdSet(request.physicalCameraIds, physicalId);
if (!validPhysicalCameraMetadata) {
@@ -666,7 +667,7 @@
for (uint32_t i = 0; i < result->num_physcam_metadata; i++) {
CameraMetadata physicalMetadata;
physicalMetadata.append(result->physcam_metadata[i]);
- request.physicalMetadatas.push_back({String16(result->physcam_ids[i]),
+ request.physicalMetadatas.push_back({result->physcam_ids[i],
physicalMetadata});
}
if (shutterTimestamp == 0) {
@@ -892,7 +893,7 @@
}
if (r.hasCallback) {
ALOGVV("Camera %s: %s: Shutter fired for frame %d (id %d) at %" PRId64,
- states.cameraId.string(), __FUNCTION__,
+ states.cameraId.c_str(), __FUNCTION__,
msg.frame_number, r.resultExtras.requestId, msg.timestamp);
// Call listener, if any
if (states.listener != nullptr) {
@@ -947,15 +948,15 @@
hardware::camera2::ICameraDeviceCallbacks::ERROR_CAMERA_INVALID_ERROR;
int streamId = 0;
- String16 physicalCameraId;
+ std::string physicalCameraId;
if (msg.error_stream != nullptr) {
Camera3Stream *stream =
Camera3Stream::cast(msg.error_stream);
streamId = stream->getId();
- physicalCameraId = String16(stream->physicalCameraId());
+ physicalCameraId = stream->physicalCameraId();
}
ALOGV("Camera %s: %s: HAL error, frame %d, stream %d: %d",
- states.cameraId.string(), __FUNCTION__, msg.frame_number,
+ states.cameraId.c_str(), __FUNCTION__, msg.frame_number,
streamId, msg.error_code);
CaptureResultExtras resultExtras;
@@ -977,13 +978,12 @@
if (hardware::camera2::ICameraDeviceCallbacks::ERROR_CAMERA_RESULT ==
errorCode) {
if (physicalCameraId.size() > 0) {
- String8 cameraId(physicalCameraId);
bool validPhysicalCameraId =
- erasePhysicalCameraIdSet(r.physicalCameraIds, cameraId);
+ erasePhysicalCameraIdSet(r.physicalCameraIds, physicalCameraId);
if (!validPhysicalCameraId) {
ALOGE("%s: Reported result failure for physical camera device: %s "
" which is not part of the respective request!",
- __FUNCTION__, cameraId.string());
+ __FUNCTION__, physicalCameraId.c_str());
break;
}
resultExtras.errorPhysicalCameraId = physicalCameraId;
@@ -1008,7 +1008,7 @@
} else {
resultExtras.frameNumber = msg.frame_number;
ALOGE("Camera %s: %s: cannot find in-flight request on "
- "frame %" PRId64 " error", states.cameraId.string(), __FUNCTION__,
+ "frame %" PRId64 " error", states.cameraId.c_str(), __FUNCTION__,
resultExtras.frameNumber);
}
}
@@ -1017,7 +1017,7 @@
states.listener->notifyError(errorCode, resultExtras);
} else {
ALOGE("Camera %s: %s: no listener available",
- states.cameraId.string(), __FUNCTION__);
+ states.cameraId.c_str(), __FUNCTION__);
}
break;
case hardware::camera2::ICameraDeviceCallbacks::ERROR_CAMERA_BUFFER:
diff --git a/services/camera/libcameraservice/device3/Camera3OutputUtils.h b/services/camera/libcameraservice/device3/Camera3OutputUtils.h
index d5328c5..134c037 100644
--- a/services/camera/libcameraservice/device3/Camera3OutputUtils.h
+++ b/services/camera/libcameraservice/device3/Camera3OutputUtils.h
@@ -71,7 +71,7 @@
// Camera3Device/Camera3OfflineSession internal states used in notify/processCaptureResult
// callbacks
struct CaptureOutputStates {
- const String8& cameraId;
+ const std::string& cameraId;
std::mutex& inflightLock;
int64_t& lastCompletedRegularFrameNumber;
int64_t& lastCompletedReprocessFrameNumber;
@@ -115,7 +115,7 @@
void notify(CaptureOutputStates& states, const camera_notify_msg *msg);
struct RequestBufferStates {
- const String8& cameraId;
+ const std::string& cameraId;
std::mutex& reqBufferLock; // lock to serialize request buffer calls
const bool useHalBufManager;
StreamSet& outputStreams;
@@ -126,7 +126,7 @@
};
struct ReturnBufferStates {
- const String8& cameraId;
+ const std::string& cameraId;
const bool useHalBufManager;
StreamSet& outputStreams;
SessionStatsBuilder& sessionStatsBuilder;
@@ -134,7 +134,7 @@
};
struct FlushInflightReqStates {
- const String8& cameraId;
+ const std::string& cameraId;
std::mutex& inflightLock;
InFlightRequestMap& inflightMap; // end of inflightLock scope
const bool useHalBufManager;
diff --git a/services/camera/libcameraservice/device3/Camera3OutputUtilsTemplated.h b/services/camera/libcameraservice/device3/Camera3OutputUtilsTemplated.h
index 2e05dda..3ac666b 100644
--- a/services/camera/libcameraservice/device3/Camera3OutputUtilsTemplated.h
+++ b/services/camera/libcameraservice/device3/Camera3OutputUtilsTemplated.h
@@ -296,7 +296,7 @@
const VecStreamBufferType& buffers) {
if (!states.useHalBufManager) {
ALOGE("%s: Camera %s does not support HAL buffer managerment",
- __FUNCTION__, states.cameraId.string());
+ __FUNCTION__, states.cameraId.c_str());
return;
}
diff --git a/services/camera/libcameraservice/device3/Camera3SharedOutputStream.cpp b/services/camera/libcameraservice/device3/Camera3SharedOutputStream.cpp
index 9215f23..64810d4 100644
--- a/services/camera/libcameraservice/device3/Camera3SharedOutputStream.cpp
+++ b/services/camera/libcameraservice/device3/Camera3SharedOutputStream.cpp
@@ -31,7 +31,7 @@
uint32_t width, uint32_t height, int format,
uint64_t consumerUsage, android_dataspace dataSpace,
camera_stream_rotation_t rotation,
- nsecs_t timestampOffset, const String8& physicalCameraId,
+ nsecs_t timestampOffset, const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed, IPCTransport transport,
int setId, bool useHalBufManager, int64_t dynamicProfile,
int64_t streamUseCase, bool deviceTimeBaseIsRealtime, int timestampBase,
diff --git a/services/camera/libcameraservice/device3/Camera3SharedOutputStream.h b/services/camera/libcameraservice/device3/Camera3SharedOutputStream.h
index aac3c2a..0caa90b 100644
--- a/services/camera/libcameraservice/device3/Camera3SharedOutputStream.h
+++ b/services/camera/libcameraservice/device3/Camera3SharedOutputStream.h
@@ -37,7 +37,7 @@
uint32_t width, uint32_t height, int format,
uint64_t consumerUsage, android_dataspace dataSpace,
camera_stream_rotation_t rotation, nsecs_t timestampOffset,
- const String8& physicalCameraId,
+ const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed, IPCTransport transport,
int setId = CAMERA3_STREAM_SET_ID_INVALID,
bool useHalBufManager = false,
diff --git a/services/camera/libcameraservice/device3/Camera3Stream.cpp b/services/camera/libcameraservice/device3/Camera3Stream.cpp
index 2c21e7e..27269a6 100644
--- a/services/camera/libcameraservice/device3/Camera3Stream.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Stream.cpp
@@ -22,6 +22,7 @@
#include <utils/Log.h>
#include <utils/Trace.h>
+#include <camera/StringUtils.h>
#include "device3/Camera3Stream.h"
#include "device3/StatusTracker.h"
#include "utils/TraceHFR.h"
@@ -52,14 +53,14 @@
camera_stream_type type,
uint32_t width, uint32_t height, size_t maxSize, int format,
android_dataspace dataSpace, camera_stream_rotation_t rotation,
- const String8& physicalCameraId,
+ const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed,
int setId, bool isMultiResolution, int64_t dynamicRangeProfile,
int64_t streamUseCase, bool deviceTimeBaseIsRealtime, int timestampBase) :
camera_stream(),
mId(id),
mSetId(setId),
- mName(String8::format("Camera3Stream[%d]", id)),
+ mName(fmt::sprintf("Camera3Stream[%d]", id)),
mMaxSize(maxSize),
mState(STATE_CONSTRUCTED),
mStatusId(StatusTracker::NO_STATUS_ID),
@@ -91,7 +92,7 @@
camera_stream::data_space = dataSpace;
camera_stream::rotation = rotation;
camera_stream::max_buffers = 0;
- camera_stream::physical_camera_id = mPhysicalCameraId.string();
+ camera_stream::physical_camera_id = mPhysicalCameraId;
camera_stream::sensor_pixel_modes_used = sensorPixelModesUsed;
camera_stream::dynamic_range_profile = dynamicRangeProfile;
camera_stream::use_case = streamUseCase;
@@ -171,7 +172,7 @@
return mOriginalDataSpace;
}
-const String8& Camera3Stream::physicalCameraId() const {
+const std::string& Camera3Stream::physicalCameraId() const {
return mPhysicalCameraId;
}
@@ -370,7 +371,7 @@
sp<StatusTracker> statusTracker = mStatusTracker.promote();
if (statusTracker != 0 && mStatusId == StatusTracker::NO_STATUS_ID) {
std::string name = std::string("Stream ") + std::to_string(mId);
- mStatusId = statusTracker->addComponent(name.c_str());
+ mStatusId = statusTracker->addComponent(name);
}
// Check if the stream configuration is unchanged, and skip reallocation if
diff --git a/services/camera/libcameraservice/device3/Camera3Stream.h b/services/camera/libcameraservice/device3/Camera3Stream.h
index 214618a..e451fa4 100644
--- a/services/camera/libcameraservice/device3/Camera3Stream.h
+++ b/services/camera/libcameraservice/device3/Camera3Stream.h
@@ -19,7 +19,6 @@
#include <gui/Surface.h>
#include <utils/RefBase.h>
-#include <utils/String8.h>
#include <utils/String16.h>
#include <utils/List.h>
@@ -163,24 +162,24 @@
/**
* Get the stream's dimensions and format
*/
- uint32_t getWidth() const;
- uint32_t getHeight() const;
- int getFormat() const;
- android_dataspace getDataSpace() const;
- uint64_t getUsage() const;
- void setUsage(uint64_t usage);
- void setFormatOverride(bool formatOverriden);
- bool isFormatOverridden() const;
- int getOriginalFormat() const;
- int64_t getDynamicRangeProfile() const;
- void setDataSpaceOverride(bool dataSpaceOverriden);
- bool isDataSpaceOverridden() const;
- android_dataspace getOriginalDataSpace() const;
- int getMaxHalBuffers() const;
- const String8& physicalCameraId() const;
- int64_t getStreamUseCase() const;
- int getTimestampBase() const;
- bool isDeviceTimeBaseRealtime() const;
+ uint32_t getWidth() const;
+ uint32_t getHeight() const;
+ int getFormat() const;
+ android_dataspace getDataSpace() const;
+ uint64_t getUsage() const;
+ void setUsage(uint64_t usage);
+ void setFormatOverride(bool formatOverridden);
+ bool isFormatOverridden() const;
+ int getOriginalFormat() const;
+ int64_t getDynamicRangeProfile() const;
+ void setDataSpaceOverride(bool dataSpaceOverridden);
+ bool isDataSpaceOverridden() const;
+ android_dataspace getOriginalDataSpace() const;
+ int getMaxHalBuffers() const;
+ const std::string& physicalCameraId() const;
+ int64_t getStreamUseCase() const;
+ int getTimestampBase() const;
+ bool isDeviceTimeBaseRealtime() const;
void setOfflineProcessingSupport(bool) override;
bool getOfflineProcessingSupport() const override;
@@ -486,7 +485,7 @@
*/
const int mSetId;
- const String8 mName;
+ const std::string mName;
// Zero for formats with fixed buffer size for given dimensions.
const size_t mMaxSize;
@@ -506,7 +505,7 @@
Camera3Stream(int id, camera_stream_type type,
uint32_t width, uint32_t height, size_t maxSize, int format,
android_dataspace dataSpace, camera_stream_rotation_t rotation,
- const String8& physicalCameraId,
+ const std::string& physicalCameraId,
const std::unordered_set<int32_t> &sensorPixelModesUsed,
int setId, bool isMultiResolution, int64_t dynamicRangeProfile,
int64_t streamUseCase, bool deviceTimeBaseIsRealtime, int timestampBase);
@@ -632,7 +631,7 @@
bool mDataSpaceOverridden;
const android_dataspace mOriginalDataSpace;
- String8 mPhysicalCameraId;
+ std::string mPhysicalCameraId;
nsecs_t mLastTimestamp;
bool mIsMultiResolution = false;
diff --git a/services/camera/libcameraservice/device3/Camera3StreamInterface.h b/services/camera/libcameraservice/device3/Camera3StreamInterface.h
index 6812e89..d715306 100644
--- a/services/camera/libcameraservice/device3/Camera3StreamInterface.h
+++ b/services/camera/libcameraservice/device3/Camera3StreamInterface.h
@@ -62,7 +62,7 @@
uint32_t max_buffers;
android_dataspace_t data_space;
camera_stream_rotation_t rotation;
- const char* physical_camera_id;
+ std::string physical_camera_id;
std::unordered_set<int32_t> sensor_pixel_modes_used;
int64_t dynamic_range_profile;
diff --git a/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp b/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp
index fd23958..8175eb5 100644
--- a/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp
+++ b/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp
@@ -25,6 +25,7 @@
#include <gui/IGraphicBufferProducer.h>
#include <gui/BufferQueue.h>
#include <gui/Surface.h>
+#include <camera/StringUtils.h>
#include <ui/GraphicBuffer.h>
@@ -92,7 +93,7 @@
if (mBufferItemConsumer == nullptr) {
return NO_MEMORY;
}
- mConsumer->setConsumerName(mConsumerName);
+ mConsumer->setConsumerName(toString8(mConsumerName));
*consumer = new Surface(mProducer);
if (*consumer == nullptr) {
@@ -408,9 +409,9 @@
return res;
}
-String8 Camera3StreamSplitter::getUniqueConsumerName() {
+std::string Camera3StreamSplitter::getUniqueConsumerName() {
static volatile int32_t counter = 0;
- return String8::format("Camera3StreamSplitter-%d", android_atomic_inc(&counter));
+ return fmt::sprintf("Camera3StreamSplitter-%d", android_atomic_inc(&counter));
}
status_t Camera3StreamSplitter::notifyBufferReleased(const sp<GraphicBuffer>& buffer) {
diff --git a/services/camera/libcameraservice/device3/Camera3StreamSplitter.h b/services/camera/libcameraservice/device3/Camera3StreamSplitter.h
index 0f728a0..639353c 100644
--- a/services/camera/libcameraservice/device3/Camera3StreamSplitter.h
+++ b/services/camera/libcameraservice/device3/Camera3StreamSplitter.h
@@ -30,10 +30,10 @@
#include <utils/StrongPointer.h>
#include <utils/Timers.h>
-#define SP_LOGV(x, ...) ALOGV("[%s] " x, mConsumerName.string(), ##__VA_ARGS__)
-#define SP_LOGI(x, ...) ALOGI("[%s] " x, mConsumerName.string(), ##__VA_ARGS__)
-#define SP_LOGW(x, ...) ALOGW("[%s] " x, mConsumerName.string(), ##__VA_ARGS__)
-#define SP_LOGE(x, ...) ALOGE("[%s] " x, mConsumerName.string(), ##__VA_ARGS__)
+#define SP_LOGV(x, ...) ALOGV("[%s] " x, mConsumerName.c_str(), ##__VA_ARGS__)
+#define SP_LOGI(x, ...) ALOGI("[%s] " x, mConsumerName.c_str(), ##__VA_ARGS__)
+#define SP_LOGW(x, ...) ALOGW("[%s] " x, mConsumerName.c_str(), ##__VA_ARGS__)
+#define SP_LOGE(x, ...) ALOGE("[%s] " x, mConsumerName.c_str(), ##__VA_ARGS__)
namespace android {
@@ -222,7 +222,7 @@
const BufferItem& bufferItem, size_t surfaceId);
// Get unique name for the buffer queue consumer
- String8 getUniqueConsumerName();
+ std::string getUniqueConsumerName();
// Helper function to get the BufferQueue slot where a particular buffer is attached to.
int getSlotForOutputLocked(const sp<IGraphicBufferProducer>& gbp,
@@ -289,7 +289,7 @@
// Currently acquired input buffers
size_t mAcquiredInputBuffers;
- String8 mConsumerName;
+ std::string mConsumerName;
const bool mUseHalBufManager;
};
diff --git a/services/camera/libcameraservice/device3/InFlightRequest.h b/services/camera/libcameraservice/device3/InFlightRequest.h
index 444445b..4c19349 100644
--- a/services/camera/libcameraservice/device3/InFlightRequest.h
+++ b/services/camera/libcameraservice/device3/InFlightRequest.h
@@ -21,7 +21,6 @@
#include <camera/CaptureResult.h>
#include <camera/CameraMetadata.h>
-#include <utils/String8.h>
#include <utils/Timers.h>
#include "common/CameraDeviceBase.h"
@@ -168,7 +167,7 @@
// For request on a physical camera stream, the inside set contains one Id
// For request on a stream group containing physical camera streams, the
// inside set contains all stream Ids in the group.
- std::set<std::set<String8>> physicalCameraIds;
+ std::set<std::set<std::string>> physicalCameraIds;
// Map of physicalCameraId <-> Metadata
std::vector<PhysicalCaptureResultInfo> physicalMetadatas;
@@ -220,7 +219,7 @@
InFlightRequest(int numBuffers, CaptureResultExtras extras, bool hasInput,
bool hasAppCallback, nsecs_t minDuration, nsecs_t maxDuration, bool fixedFps,
- const std::set<std::set<String8>>& physicalCameraIdSet, bool isStillCapture,
+ const std::set<std::set<std::string>>& physicalCameraIdSet, bool isStillCapture,
bool isZslCapture, bool rotateAndCropAuto, const std::set<std::string>& idsWithZoom,
nsecs_t requestNs, const SurfaceMap& outSurfaces = SurfaceMap{}) :
shutterTimestamp(0),
diff --git a/services/camera/libcameraservice/device3/aidl/AidlCamera3Device.cpp b/services/camera/libcameraservice/device3/aidl/AidlCamera3Device.cpp
index 1bc9ef2..1f9313e 100644
--- a/services/camera/libcameraservice/device3/aidl/AidlCamera3Device.cpp
+++ b/services/camera/libcameraservice/device3/aidl/AidlCamera3Device.cpp
@@ -26,10 +26,10 @@
#endif
// Convenience macro for transient errors
-#define CLOGE(fmt, ...) ALOGE("Camera %s: %s: " fmt, mId.string(), __FUNCTION__, \
+#define CLOGE(fmt, ...) ALOGE("Camera %s: %s: " fmt, mId.c_str(), __FUNCTION__, \
##__VA_ARGS__)
-#define CLOGW(fmt, ...) ALOGW("Camera %s: %s: " fmt, mId.string(), __FUNCTION__, \
+#define CLOGW(fmt, ...) ALOGW("Camera %s: %s: " fmt, mId.c_str(), __FUNCTION__, \
##__VA_ARGS__)
// Convenience macros for transitioning to the error state
@@ -53,6 +53,7 @@
#include <aidlcommonsupport/NativeHandle.h>
#include <android/binder_ibinder_platform.h>
#include <android/hardware/camera2/ICameraDeviceUser.h>
+#include <camera/StringUtils.h>
#include "utils/CameraTraces.h"
#include "mediautils/SchedulingPolicyService.h"
@@ -162,19 +163,19 @@
return (uint64_t)usage;
}
-AidlCamera3Device::AidlCamera3Device(const String8& id, bool overrideForPerfClass,
+AidlCamera3Device::AidlCamera3Device(const std::string& id, bool overrideForPerfClass,
bool overrideToPortrait, bool legacyClient) :
Camera3Device(id, overrideForPerfClass, overrideToPortrait, legacyClient) {
mCallbacks = ndk::SharedRefBase::make<AidlCameraDeviceCallbacks>(this);
}
status_t AidlCamera3Device::initialize(sp<CameraProviderManager> manager,
- const String8& monitorTags) {
+ const std::string& monitorTags) {
ATRACE_CALL();
Mutex::Autolock il(mInterfaceLock);
Mutex::Autolock l(mLock);
- ALOGV("%s: Initializing AIDL device for camera %s", __FUNCTION__, mId.string());
+ ALOGV("%s: Initializing AIDL device for camera %s", __FUNCTION__, mId.c_str());
if (mStatus != STATUS_UNINITIALIZED) {
CLOGE("Already initialized!");
return INVALID_OPERATION;
@@ -183,7 +184,7 @@
std::shared_ptr<camera::device::ICameraDeviceSession> session;
ATRACE_BEGIN("CameraHal::openSession");
- status_t res = manager->openAidlSession(mId.string(), mCallbacks,
+ status_t res = manager->openAidlSession(mId, mCallbacks,
/*out*/ &session);
ATRACE_END();
if (res != OK) {
@@ -194,17 +195,17 @@
SET_ERR("Session iface returned is null");
return INVALID_OPERATION;
}
- res = manager->getCameraCharacteristics(mId.string(), mOverrideForPerfClass, &mDeviceInfo,
+ res = manager->getCameraCharacteristics(mId, mOverrideForPerfClass, &mDeviceInfo,
mOverrideToPortrait);
if (res != OK) {
SET_ERR_L("Could not retrieve camera characteristics: %s (%d)", strerror(-res), res);
session->close();
return res;
}
- mSupportNativeZoomRatio = manager->supportNativeZoomRatio(mId.string());
+ mSupportNativeZoomRatio = manager->supportNativeZoomRatio(mId);
std::vector<std::string> physicalCameraIds;
- bool isLogical = manager->isLogicalCamera(mId.string(), &physicalCameraIds);
+ bool isLogical = manager->isLogicalCamera(mId, &physicalCameraIds);
if (isLogical) {
for (auto& physicalId : physicalCameraIds) {
// Do not override characteristics for physical cameras
@@ -295,10 +296,10 @@
mInterface = new AidlHalInterface(session, queue, mUseHalBufManager, mSupportOfflineProcessing);
std::string providerType;
- mVendorTagId = manager->getProviderTagIdLocked(mId.string());
+ mVendorTagId = manager->getProviderTagIdLocked(mId);
mTagMonitor.initialize(mVendorTagId);
- if (!monitorTags.isEmpty()) {
- mTagMonitor.parseTagsToMonitor(String8(monitorTags));
+ if (!monitorTags.empty()) {
+ mTagMonitor.parseTagsToMonitor(monitorTags);
}
for (size_t i = 0; i < capabilities.count; i++) {
@@ -916,7 +917,7 @@
cam3stream->getOriginalDataSpace() : src->data_space);
dst.bufferSize = bufferSizes[i];
- if (src->physical_camera_id != nullptr) {
+ if (!src->physical_camera_id.empty()) {
dst.physicalCameraId = src->physical_camera_id;
}
dst.groupId = cam3stream->getHalStreamGroupId();
@@ -1093,7 +1094,7 @@
mapToAidlDataspace(cam3stream->isDataSpaceOverridden() ?
cam3stream->getOriginalDataSpace() : src->data_space);
dst.bufferSize = bufferSizes[i];
- if (src->physical_camera_id != nullptr) {
+ if (!src->physical_camera_id.empty()) {
dst.physicalCameraId = src->physical_camera_id;
}
dst.groupId = cam3stream->getHalStreamGroupId();
@@ -1448,7 +1449,7 @@
}
status_t AidlCamera3Device::AidlCamera3DeviceInjectionMethods::injectionInitialize(
- const String8& injectedCamId, sp<CameraProviderManager> manager,
+ const std::string& injectedCamId, sp<CameraProviderManager> manager,
const std::shared_ptr<camera::device::ICameraDeviceCallback>&callback) {
ATRACE_CALL();
Mutex::Autolock lock(mInjectionLock);
@@ -1472,7 +1473,7 @@
mInjectedCamId = injectedCamId;
std::shared_ptr<camera::device::ICameraInjectionSession> injectionSession;
ATRACE_BEGIN("Injection CameraHal::openSession");
- status_t res = manager->openAidlInjectionSession(injectedCamId.string(), callback,
+ status_t res = manager->openAidlInjectionSession(injectedCamId, callback,
/*out*/ &injectionSession);
ATRACE_END();
if (res != OK) {
@@ -1571,7 +1572,7 @@
return OK;
}
-status_t AidlCamera3Device::injectionCameraInitialize(const String8 &injectedCamId,
+status_t AidlCamera3Device::injectionCameraInitialize(const std::string &injectedCamId,
sp<CameraProviderManager> manager) {
return (static_cast<AidlCamera3DeviceInjectionMethods *>
(mInjectionMethods.get()))->injectionInitialize(injectedCamId, manager,
diff --git a/services/camera/libcameraservice/device3/aidl/AidlCamera3Device.h b/services/camera/libcameraservice/device3/aidl/AidlCamera3Device.h
index 630985f..f4554d4 100644
--- a/services/camera/libcameraservice/device3/aidl/AidlCamera3Device.h
+++ b/services/camera/libcameraservice/device3/aidl/AidlCamera3Device.h
@@ -39,7 +39,7 @@
using AidlRequestMetadataQueue = AidlMessageQueue<int8_t, SynchronizedReadWrite>;
class AidlCameraDeviceCallbacks;
friend class AidlCameraDeviceCallbacks;
- explicit AidlCamera3Device(const String8& id, bool overrideForPerfClass, bool overrideToPortrait,
+ explicit AidlCamera3Device(const std::string& id, bool overrideForPerfClass, bool overrideToPortrait,
bool legacyClient = false);
virtual ~AidlCamera3Device() { }
@@ -69,7 +69,7 @@
virtual status_t switchToOffline(const std::vector<int32_t>& /*streamsToKeep*/,
/*out*/ sp<CameraOfflineSessionBase>* /*session*/) override;
- status_t initialize(sp<CameraProviderManager> manager, const String8& monitorTags) override;
+ status_t initialize(sp<CameraProviderManager> manager, const std::string& monitorTags) override;
class AidlHalInterface : public Camera3Device::HalInterface {
public:
AidlHalInterface(std::shared_ptr<
@@ -191,7 +191,7 @@
public:
// Initialize the injection camera and generate an hal interface.
status_t injectionInitialize(
- const String8& injectedCamId, sp<CameraProviderManager> manager,
+ const std::string& injectedCamId, sp<CameraProviderManager> manager,
const std::shared_ptr<
aidl::android::hardware::camera::device::ICameraDeviceCallback>&
callback);
@@ -252,7 +252,7 @@
};
private:
- virtual status_t injectionCameraInitialize(const String8 &injectCamId,
+ virtual status_t injectionCameraInitialize(const std::string &injectCamId,
sp<CameraProviderManager> manager) override;
virtual sp<RequestThread> createNewRequestThread(wp<Camera3Device> parent,
diff --git a/services/camera/libcameraservice/device3/aidl/AidlCamera3OfflineSession.cpp b/services/camera/libcameraservice/device3/aidl/AidlCamera3OfflineSession.cpp
index 3c3db97..01c4e88 100644
--- a/services/camera/libcameraservice/device3/aidl/AidlCamera3OfflineSession.cpp
+++ b/services/camera/libcameraservice/device3/aidl/AidlCamera3OfflineSession.cpp
@@ -31,6 +31,7 @@
#include <android/hardware/camera2/ICameraDeviceCallbacks.h>
#include <android/binder_ibinder_platform.h>
+#include <camera/StringUtils.h>
#include "device3/aidl/AidlCamera3OfflineSession.h"
#include "device3/Camera3OutputStream.h"
@@ -47,7 +48,7 @@
AidlCamera3OfflineSession::~AidlCamera3OfflineSession() {
ATRACE_CALL();
- ALOGV("%s: Tearing down aidl offline session for camera id %s", __FUNCTION__, mId.string());
+ ALOGV("%s: Tearing down aidl offline session for camera id %s", __FUNCTION__, mId.c_str());
Camera3OfflineSession::disconnectImpl();
}
@@ -113,7 +114,7 @@
std::string activePhysicalId(""); // Unused
AidlCaptureOutputStates states {
- {mId,
+ { mId,
mOfflineReqsLock, mLastCompletedRegularFrameNumber,
mLastCompletedReprocessFrameNumber, mLastCompletedZslFrameNumber,
mOfflineReqs, mOutputLock, mResultQueue, mResultSignal,
@@ -160,7 +161,7 @@
std::string activePhysicalId(""); // Unused
AidlCaptureOutputStates states {
- {mId,
+ { mId,
mOfflineReqsLock, mLastCompletedRegularFrameNumber,
mLastCompletedReprocessFrameNumber, mLastCompletedZslFrameNumber,
mOfflineReqs, mOutputLock, mResultQueue, mResultSignal,
diff --git a/services/camera/libcameraservice/device3/aidl/AidlCamera3OfflineSession.h b/services/camera/libcameraservice/device3/aidl/AidlCamera3OfflineSession.h
index b31ffb7..33b638c 100644
--- a/services/camera/libcameraservice/device3/aidl/AidlCamera3OfflineSession.h
+++ b/services/camera/libcameraservice/device3/aidl/AidlCamera3OfflineSession.h
@@ -20,7 +20,6 @@
#include <memory>
#include <mutex>
-#include <utils/String8.h>
#include <utils/String16.h>
#include "AidlCamera3OutputUtils.h"
@@ -106,7 +105,7 @@
};
// initialize by Camera3Device.
- explicit AidlCamera3OfflineSession(const String8& id,
+ explicit AidlCamera3OfflineSession(const std::string& id,
const sp<camera3::Camera3Stream>& inputStream,
const camera3::StreamSet& offlineStreamSet,
camera3::BufferRecords&& bufferRecords,
diff --git a/services/camera/libcameraservice/device3/aidl/AidlCamera3OutputUtils.cpp b/services/camera/libcameraservice/device3/aidl/AidlCamera3OutputUtils.cpp
index b2accc1..74d4230 100644
--- a/services/camera/libcameraservice/device3/aidl/AidlCamera3OutputUtils.cpp
+++ b/services/camera/libcameraservice/device3/aidl/AidlCamera3OutputUtils.cpp
@@ -145,7 +145,7 @@
outBuffers->clear();
if (!states.useHalBufManager) {
ALOGE("%s: Camera %s does not support HAL buffer management",
- __FUNCTION__, states.cameraId.string());
+ __FUNCTION__, states.cameraId.c_str());
*status = BufferRequestStatus::FAILED_ILLEGAL_ARGUMENTS;
return;
}
diff --git a/services/camera/libcameraservice/device3/hidl/HidlCamera3Device.cpp b/services/camera/libcameraservice/device3/hidl/HidlCamera3Device.cpp
index c675c63..c22aad6 100644
--- a/services/camera/libcameraservice/device3/hidl/HidlCamera3Device.cpp
+++ b/services/camera/libcameraservice/device3/hidl/HidlCamera3Device.cpp
@@ -26,7 +26,7 @@
#endif
// Convenience macro for transient errors
-#define CLOGE(fmt, ...) ALOGE("Camera %s: %s: " fmt, mId.string(), __FUNCTION__, \
+#define CLOGE(fmt, ...) ALOGE("Camera %s: %s: " fmt, mId.c_str(), __FUNCTION__, \
##__VA_ARGS__)
// Convenience macros for transitioning to the error state
@@ -46,6 +46,7 @@
#include <utils/Trace.h>
#include <utils/Timers.h>
#include <cutils/properties.h>
+#include <camera/StringUtils.h>
#include <android/hardware/camera/device/3.7/ICameraInjectionSession.h>
#include <android/hardware/camera2/ICameraDeviceUser.h>
@@ -140,12 +141,12 @@
}
status_t HidlCamera3Device::initialize(sp<CameraProviderManager> manager,
- const String8& monitorTags) {
+ const std::string& monitorTags) {
ATRACE_CALL();
Mutex::Autolock il(mInterfaceLock);
Mutex::Autolock l(mLock);
- ALOGV("%s: Initializing HIDL device for camera %s", __FUNCTION__, mId.string());
+ ALOGV("%s: Initializing HIDL device for camera %s", __FUNCTION__, mId.c_str());
if (mStatus != STATUS_UNINITIALIZED) {
CLOGE("Already initialized!");
return INVALID_OPERATION;
@@ -154,7 +155,7 @@
sp<ICameraDeviceSession> session;
ATRACE_BEGIN("CameraHal::openSession");
- status_t res = manager->openHidlSession(mId.string(), this,
+ status_t res = manager->openHidlSession(mId, this,
/*out*/ &session);
ATRACE_END();
if (res != OK) {
@@ -162,17 +163,17 @@
return res;
}
- res = manager->getCameraCharacteristics(mId.string(), mOverrideForPerfClass, &mDeviceInfo,
+ res = manager->getCameraCharacteristics(mId, mOverrideForPerfClass, &mDeviceInfo,
/*overrideToPortrait*/false);
if (res != OK) {
SET_ERR_L("Could not retrieve camera characteristics: %s (%d)", strerror(-res), res);
session->close();
return res;
}
- mSupportNativeZoomRatio = manager->supportNativeZoomRatio(mId.string());
+ mSupportNativeZoomRatio = manager->supportNativeZoomRatio(mId);
std::vector<std::string> physicalCameraIds;
- bool isLogical = manager->isLogicalCamera(mId.string(), &physicalCameraIds);
+ bool isLogical = manager->isLogicalCamera(mId, &physicalCameraIds);
if (isLogical) {
for (auto& physicalId : physicalCameraIds) {
// Do not override characteristics for physical cameras
@@ -271,17 +272,17 @@
mInterface = new HidlHalInterface(session, queue, mUseHalBufManager, mSupportOfflineProcessing);
std::string providerType;
- mVendorTagId = manager->getProviderTagIdLocked(mId.string());
+ mVendorTagId = manager->getProviderTagIdLocked(mId);
mTagMonitor.initialize(mVendorTagId);
- if (!monitorTags.isEmpty()) {
- mTagMonitor.parseTagsToMonitor(String8(monitorTags));
+ if (!monitorTags.empty()) {
+ mTagMonitor.parseTagsToMonitor(monitorTags);
}
// Metadata tags needs fixup for monochrome camera device version less
// than 3.5.
hardware::hidl_version maxVersion{0,0};
IPCTransport transport = IPCTransport::HIDL;
- res = manager->getHighestSupportedVersion(mId.string(), &maxVersion, &transport);
+ res = manager->getHighestSupportedVersion(mId, &maxVersion, &transport);
if (res != OK) {
ALOGE("%s: Error in getting camera device version id: %s (%d)",
__FUNCTION__, strerror(-res), res);
@@ -416,7 +417,7 @@
}
HidlCaptureOutputStates states {
- {mId,
+ { mId,
mInFlightLock, mLastCompletedRegularFrameNumber,
mLastCompletedReprocessFrameNumber, mLastCompletedZslFrameNumber,
mInFlightMap, mOutputLock, mResultQueue, mResultSignal,
@@ -464,7 +465,7 @@
}
HidlCaptureOutputStates states {
- {mId,
+ { mId,
mInFlightLock, mLastCompletedRegularFrameNumber,
mLastCompletedReprocessFrameNumber, mLastCompletedZslFrameNumber,
mInFlightMap, mOutputLock, mResultQueue, mResultSignal,
@@ -714,7 +715,7 @@
return new HidlCamera3DeviceInjectionMethods(parent);
}
-status_t HidlCamera3Device::injectionCameraInitialize(const String8 &injectedCamId,
+status_t HidlCamera3Device::injectionCameraInitialize(const std::string &injectedCamId,
sp<CameraProviderManager> manager) {
return (static_cast<HidlCamera3DeviceInjectionMethods *>(
mInjectionMethods.get()))->injectionInitialize(injectedCamId, manager, this);
@@ -939,7 +940,7 @@
}
dst3_4.v3_2 = dst3_2;
dst3_4.bufferSize = bufferSizes[i];
- if (src->physical_camera_id != nullptr) {
+ if (!src->physical_camera_id.empty()) {
dst3_4.physicalCameraId = src->physical_camera_id;
}
dst3_7.v3_4 = dst3_4;
@@ -1257,7 +1258,7 @@
}
dst3_4.v3_2 = dst3_2;
dst3_4.bufferSize = bufferSizes[i];
- if (src->physical_camera_id != nullptr) {
+ if (!src->physical_camera_id.empty()) {
dst3_4.physicalCameraId = src->physical_camera_id;
}
dst3_7.v3_4 = dst3_4;
@@ -1736,7 +1737,7 @@
}
status_t HidlCamera3Device::HidlCamera3DeviceInjectionMethods::injectionInitialize(
- const String8& injectedCamId, sp<CameraProviderManager> manager,
+ const std::string& injectedCamId, sp<CameraProviderManager> manager,
const sp<android::hardware::camera::device::V3_2::ICameraDeviceCallback>&
callback) {
ATRACE_CALL();
@@ -1756,7 +1757,7 @@
mInjectedCamId = injectedCamId;
sp<ICameraDeviceSession> session;
ATRACE_BEGIN("Injection CameraHal::openSession");
- status_t res = manager->openHidlSession(injectedCamId.string(), callback,
+ status_t res = manager->openHidlSession(injectedCamId, callback,
/*out*/ &session);
ATRACE_END();
if (res != OK) {
diff --git a/services/camera/libcameraservice/device3/hidl/HidlCamera3Device.h b/services/camera/libcameraservice/device3/hidl/HidlCamera3Device.h
index 72343bc..e64bcf0 100644
--- a/services/camera/libcameraservice/device3/hidl/HidlCamera3Device.h
+++ b/services/camera/libcameraservice/device3/hidl/HidlCamera3Device.h
@@ -31,7 +31,7 @@
public Camera3Device {
public:
- explicit HidlCamera3Device(const String8& id, bool overrideForPerfClass, bool overrideToPortrait,
+ explicit HidlCamera3Device(const std::string& id, bool overrideForPerfClass, bool overrideToPortrait,
bool legacyClient = false) : Camera3Device(id, overrideForPerfClass, overrideToPortrait,
legacyClient) { }
@@ -57,7 +57,7 @@
static uint64_t mapProducerToFrameworkUsage(
hardware::camera::device::V3_2::BufferUsageFlags usage);
- status_t initialize(sp<CameraProviderManager> manager, const String8& monitorTags) override;
+ status_t initialize(sp<CameraProviderManager> manager, const std::string& monitorTags) override;
/**
* Implementation of android::hardware::camera::device::V3_5::ICameraDeviceCallback
@@ -187,7 +187,7 @@
public:
// Initialize the injection camera and generate an hal interface.
status_t injectionInitialize(
- const String8& injectedCamId, sp<CameraProviderManager> manager,
+ const std::string& injectedCamId, sp<CameraProviderManager> manager,
const sp<
android::hardware::camera::device::V3_2 ::ICameraDeviceCallback>&
callback);
@@ -213,7 +213,7 @@
hardware::Return<void> notifyHelper(
const hardware::hidl_vec<NotifyMsgType>& msgs);
- virtual status_t injectionCameraInitialize(const String8 &injectCamId,
+ virtual status_t injectionCameraInitialize(const std::string &injectCamId,
sp<CameraProviderManager> manager) override;
virtual sp<RequestThread> createNewRequestThread(wp<Camera3Device> parent,
diff --git a/services/camera/libcameraservice/device3/hidl/HidlCamera3OfflineSession.cpp b/services/camera/libcameraservice/device3/hidl/HidlCamera3OfflineSession.cpp
index 28b2b47..e328ef6 100644
--- a/services/camera/libcameraservice/device3/hidl/HidlCamera3OfflineSession.cpp
+++ b/services/camera/libcameraservice/device3/hidl/HidlCamera3OfflineSession.cpp
@@ -23,6 +23,7 @@
#include <utils/Trace.h>
#include <android/hardware/camera2/ICameraDeviceCallbacks.h>
+#include <camera/StringUtils.h>
#include "device3/hidl/HidlCamera3OfflineSession.h"
#include "device3/Camera3OutputStream.h"
@@ -38,7 +39,7 @@
HidlCamera3OfflineSession::~HidlCamera3OfflineSession() {
ATRACE_CALL();
- ALOGV("%s: Tearing down hidl offline session for camera id %s", __FUNCTION__, mId.string());
+ ALOGV("%s: Tearing down hidl offline session for camera id %s", __FUNCTION__, mId.c_str());
Camera3OfflineSession::disconnectImpl();
}
@@ -94,7 +95,7 @@
std::string activePhysicalId("");
HidlCaptureOutputStates states {
- {mId,
+ { mId,
mOfflineReqsLock, mLastCompletedRegularFrameNumber,
mLastCompletedReprocessFrameNumber, mLastCompletedZslFrameNumber,
mOfflineReqs, mOutputLock, mResultQueue, mResultSignal,
@@ -136,7 +137,7 @@
std::string activePhysicalId("");
HidlCaptureOutputStates states {
- {mId,
+ { mId,
mOfflineReqsLock, mLastCompletedRegularFrameNumber,
mLastCompletedReprocessFrameNumber, mLastCompletedZslFrameNumber,
mOfflineReqs, mOutputLock, mResultQueue, mResultSignal,
@@ -173,7 +174,7 @@
std::string activePhysicalId("");
HidlCaptureOutputStates states {
- {mId,
+ { mId,
mOfflineReqsLock, mLastCompletedRegularFrameNumber,
mLastCompletedReprocessFrameNumber, mLastCompletedZslFrameNumber,
mOfflineReqs, mOutputLock, mResultQueue, mResultSignal,
diff --git a/services/camera/libcameraservice/device3/hidl/HidlCamera3OfflineSession.h b/services/camera/libcameraservice/device3/hidl/HidlCamera3OfflineSession.h
index d22a447..df306b2 100644
--- a/services/camera/libcameraservice/device3/hidl/HidlCamera3OfflineSession.h
+++ b/services/camera/libcameraservice/device3/hidl/HidlCamera3OfflineSession.h
@@ -20,7 +20,6 @@
#include <memory>
#include <mutex>
-#include <utils/String8.h>
#include <utils/String16.h>
#include <android/hardware/camera/device/3.6/ICameraOfflineSession.h>
@@ -53,7 +52,7 @@
public:
// initialize by Camera3Device.
- explicit HidlCamera3OfflineSession(const String8& id,
+ explicit HidlCamera3OfflineSession(const std::string& id,
const sp<camera3::Camera3Stream>& inputStream,
const camera3::StreamSet& offlineStreamSet,
camera3::BufferRecords&& bufferRecords,