CameraITS: Add physical camera metadata support
- Serialize physical camera metadata for logical multi-camera if physical
camera is requested.
- Update CTS test to use getPhysicalResultMetadata call
- Remove redundant request and static metadata from captureResults.
Test: Run hacked test_yuv_plus_raw to stream physical streams
Bug: 66697407
Change-Id: I8fdfd9992fc988de59f84a84f3cb99383abf1a01
diff --git a/apps/CameraITS/pymodules/its/device.py b/apps/CameraITS/pymodules/its/device.py
index 3e3cc02..7a20877 100644
--- a/apps/CameraITS/pymodules/its/device.py
+++ b/apps/CameraITS/pymodules/its/device.py
@@ -756,6 +756,7 @@
"rawStats":[], "dng":[], "jpeg":[]}
yuv_bufs = {size:[] for size in yuv_sizes}
mds = []
+ physical_mds = []
widths = None
heights = None
while nbufs < ncap*nsurf or len(mds) < ncap:
@@ -772,6 +773,7 @@
nbufs += 1
elif jsonObj['tag'] == 'captureResults':
mds.append(jsonObj['objValue']['captureResult'])
+ physical_mds.append(jsonObj['objValue']['physicalResults'])
outputs = jsonObj['objValue']['outputs']
widths = [out['width'] for out in outputs]
heights = [out['height'] for out in outputs]
@@ -791,7 +793,13 @@
obj["width"] = widths[j]
obj["height"] = heights[j]
obj["format"] = fmt
- obj["metadata"] = mds[i]
+ if j in physical_cam_ids:
+ for physical_md in physical_mds[i]:
+ if physical_cam_ids[j] in physical_md:
+ obj["metadata"] = physical_md[physical_cam_ids[j]]
+ break
+ else:
+ obj["metadata"] = mds[i]
if j in physical_cam_ids:
obj["data"] = physical_buffers[physical_cam_ids[j]][i]