Loading services/camera/libcameraservice/common/CameraProviderManager.cpp +12 −9 Original line number Diff line number Diff line Loading @@ -1004,19 +1004,21 @@ void CameraProviderManager::ProviderInfo::DeviceInfo3::getSupportedDurations( auto availableDurations = ch.find(tag); if (availableDurations.count > 0) { // Duration entry contains 4 elements (format, width, height, duration) for (size_t i = 0; i < availableDurations.count; i += 4) { for (const auto& size : sizes) { int64_t width = std::get<0>(size); int64_t height = std::get<1>(size); for (size_t i = 0; i < availableDurations.count; i += 4) { if ((availableDurations.data.i64[i] == format) && (availableDurations.data.i64[i+1] == width) && (availableDurations.data.i64[i+2] == height)) { durations->push_back(availableDurations.data.i64[i+3]); break; } } } } } void CameraProviderManager::ProviderInfo::DeviceInfo3::getSupportedDynamicDepthDurations( const std::vector<int64_t>& depthDurations, const std::vector<int64_t>& blobDurations, std::vector<int64_t> *dynamicDepthDurations /*out*/) { Loading Loading @@ -1137,8 +1139,7 @@ status_t CameraProviderManager::ProviderInfo::DeviceInfo3::deriveJpegRTags(bool return BAD_VALUE; } std::vector<std::tuple<size_t, size_t>> supportedP010Sizes, supportedBlobSizes, supportedDynamicDepthSizes, internalDepthSizes; std::vector<std::tuple<size_t, size_t>> supportedP010Sizes, supportedBlobSizes; auto capabilities = c.find(ANDROID_REQUEST_AVAILABLE_CAPABILITIES); if (capabilities.count == 0) { ALOGE("%s: Supported camera capabilities is empty!", __FUNCTION__); Loading Loading @@ -1191,9 +1192,11 @@ status_t CameraProviderManager::ProviderInfo::DeviceInfo3::deriveJpegRTags(bool getSupportedDurations(c, scalerStallDurationsTag, HAL_PIXEL_FORMAT_BLOB, supportedP010Sizes, &blobStallDurations); if (blobStallDurations.empty() || blobMinDurations.empty() || (blobMinDurations.size() != blobStallDurations.size())) { ALOGE("%s: Unexpected number of available blob durations! %zu vs. %zu", __FUNCTION__, blobMinDurations.size(), blobStallDurations.size()); supportedP010Sizes.size() != blobMinDurations.size() || blobMinDurations.size() != blobStallDurations.size()) { ALOGE("%s: Unexpected number of available blob durations! %zu vs. %zu with " "supportedP010Sizes size: %zu", __FUNCTION__, blobMinDurations.size(), blobStallDurations.size(), supportedP010Sizes.size()); return BAD_VALUE; } Loading Loading
services/camera/libcameraservice/common/CameraProviderManager.cpp +12 −9 Original line number Diff line number Diff line Loading @@ -1004,19 +1004,21 @@ void CameraProviderManager::ProviderInfo::DeviceInfo3::getSupportedDurations( auto availableDurations = ch.find(tag); if (availableDurations.count > 0) { // Duration entry contains 4 elements (format, width, height, duration) for (size_t i = 0; i < availableDurations.count; i += 4) { for (const auto& size : sizes) { int64_t width = std::get<0>(size); int64_t height = std::get<1>(size); for (size_t i = 0; i < availableDurations.count; i += 4) { if ((availableDurations.data.i64[i] == format) && (availableDurations.data.i64[i+1] == width) && (availableDurations.data.i64[i+2] == height)) { durations->push_back(availableDurations.data.i64[i+3]); break; } } } } } void CameraProviderManager::ProviderInfo::DeviceInfo3::getSupportedDynamicDepthDurations( const std::vector<int64_t>& depthDurations, const std::vector<int64_t>& blobDurations, std::vector<int64_t> *dynamicDepthDurations /*out*/) { Loading Loading @@ -1137,8 +1139,7 @@ status_t CameraProviderManager::ProviderInfo::DeviceInfo3::deriveJpegRTags(bool return BAD_VALUE; } std::vector<std::tuple<size_t, size_t>> supportedP010Sizes, supportedBlobSizes, supportedDynamicDepthSizes, internalDepthSizes; std::vector<std::tuple<size_t, size_t>> supportedP010Sizes, supportedBlobSizes; auto capabilities = c.find(ANDROID_REQUEST_AVAILABLE_CAPABILITIES); if (capabilities.count == 0) { ALOGE("%s: Supported camera capabilities is empty!", __FUNCTION__); Loading Loading @@ -1191,9 +1192,11 @@ status_t CameraProviderManager::ProviderInfo::DeviceInfo3::deriveJpegRTags(bool getSupportedDurations(c, scalerStallDurationsTag, HAL_PIXEL_FORMAT_BLOB, supportedP010Sizes, &blobStallDurations); if (blobStallDurations.empty() || blobMinDurations.empty() || (blobMinDurations.size() != blobStallDurations.size())) { ALOGE("%s: Unexpected number of available blob durations! %zu vs. %zu", __FUNCTION__, blobMinDurations.size(), blobStallDurations.size()); supportedP010Sizes.size() != blobMinDurations.size() || blobMinDurations.size() != blobStallDurations.size()) { ALOGE("%s: Unexpected number of available blob durations! %zu vs. %zu with " "supportedP010Sizes size: %zu", __FUNCTION__, blobMinDurations.size(), blobStallDurations.size(), supportedP010Sizes.size()); return BAD_VALUE; } Loading