From 3663c2c50d146a507e222cb6c2cef32dde2b09c3 Mon Sep 17 00:00:00 2001 From: Emilian Peev Date: Mon, 4 Feb 2019 15:50:17 -0800 Subject: Check for depth map payload The depth map payload presence is required according to specification. Bug:123316622 Test: Camera CTS Change-Id: I4b4174246b7dc21a4d01da638a4563d85fa14317 --- README.android | 1 + internal/dynamic_depth/depth_jpeg.cc | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/README.android b/README.android index 00f3c0b..248e7b6 100644 --- a/README.android +++ b/README.android @@ -7,3 +7,4 @@ Local patches ------------- - Android depth photo validation sequence "ValidateAndroidDynamicDepthBuffer()". - Add NDK library variant. +- Check for depth map payload diff --git a/internal/dynamic_depth/depth_jpeg.cc b/internal/dynamic_depth/depth_jpeg.cc index ec5ab89..396a41e 100644 --- a/internal/dynamic_depth/depth_jpeg.cc +++ b/internal/dynamic_depth/depth_jpeg.cc @@ -104,6 +104,18 @@ int32_t ValidateAndroidDynamicDepthBuffer(const char* buffer, size_t buffer_leng return -1; } + std::istringstream input_jpeg_stream(std::string(buffer, buffer_length)); + std::string depth_payload; + if (!GetItemPayload(device->GetContainer(), depth_uri, input_jpeg_stream, &depth_payload)) { + LOG(ERROR) << "Unable to retrieve depth map"; + return -1; + } + + if (depth_payload.empty()) { + LOG(ERROR) << "Invalid depth map"; + return -1; + } + return 0; } -- cgit v1.2.3