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/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