TagMonitor: don't allocate a set of stream ids if monitoring is not enabled.
Bug: 196264836
Test: adb shell dumpsys media.camera -m "android.control.zoomRatio" shows stream ids requests/
Change-Id: I1e722235724f25114fa30d77a6d6486c6d6b638c
Signed-off-by: Jayant Chowdhary <jchowdhary@google.com>
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp
index 7c3c6b7..368c39c 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
@@ -3084,10 +3084,11 @@
void Camera3Device::monitorMetadata(TagMonitor::eventSource source,
int64_t frameNumber, nsecs_t timestamp, const CameraMetadata& metadata,
const std::unordered_map<std::string, CameraMetadata>& physicalMetadata,
- const std::set<int32_t> &outputStreamIds, int32_t inputStreamId) {
+ const camera_stream_buffer_t *outputBuffers, uint32_t numOutputBuffers,
+ int32_t inputStreamId) {
mTagMonitor.monitorMetadata(source, frameNumber, timestamp, metadata,
- physicalMetadata, outputStreamIds, inputStreamId);
+ physicalMetadata, outputBuffers, numOutputBuffers, inputStreamId);
}
/**
@@ -4590,12 +4591,6 @@
sp<Camera3Device> parent = mParent.promote();
if (parent != NULL) {
- std::set<int32_t> outputStreamIds;
- for (size_t i = 0; i < halRequest.num_output_buffers; i++) {
- const camera_stream_buffer_t *src = halRequest.output_buffers + i;
- int32_t streamId = Camera3Stream::cast(src->stream)->getId();
- outputStreamIds.emplace(streamId);
- }
int32_t inputStreamId = -1;
if (halRequest.input_buffer != nullptr) {
inputStreamId = Camera3Stream::cast(halRequest.input_buffer->stream)->getId();
@@ -4603,7 +4598,8 @@
parent->monitorMetadata(TagMonitor::REQUEST,
halRequest.frame_number,
- 0, mLatestRequest, mLatestPhysicalRequest, outputStreamIds, inputStreamId);
+ 0, mLatestRequest, mLatestPhysicalRequest, halRequest.output_buffers,
+ halRequest.num_output_buffers, inputStreamId);
}
}