Camera: fix filter logic for depth only camera

Test: partner testing
Bug: 126408288
Change-Id: I5c3abcd72e64b40e7cbac467646d99a1f5b362d0
gugelfrei
Yin-Chia Yeh 5 years ago
parent defe9d507e
commit 38c13a703b

@ -203,7 +203,7 @@ ACameraMetadata::filterStreamConfigurations() {
const int STREAM_HEIGHT_OFFSET = 2;
const int STREAM_IS_INPUT_OFFSET = 3;
camera_metadata_entry entry = mData.find(ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS);
if (entry.count == 0 || entry.count % 4 || entry.type != TYPE_INT32) {
if (entry.count > 0 && (entry.count % 4 || entry.type != TYPE_INT32)) {
ALOGE("%s: malformed available stream configuration key! count %zu, type %d",
__FUNCTION__, entry.count, entry.type);
return;
@ -231,9 +231,17 @@ ACameraMetadata::filterStreamConfigurations() {
filteredStreamConfigs.push_back(isInput);
}
mData.update(ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS, filteredStreamConfigs);
if (filteredStreamConfigs.size() > 0) {
mData.update(ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS, filteredStreamConfigs);
}
entry = mData.find(ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS);
if (entry.count > 0 && (entry.count % 4 || entry.type != TYPE_INT32)) {
ALOGE("%s: malformed available depth stream configuration key! count %zu, type %d",
__FUNCTION__, entry.count, entry.type);
return;
}
Vector<int32_t> filteredDepthStreamConfigs;
filteredDepthStreamConfigs.setCapacity(entry.count);
@ -258,7 +266,11 @@ ACameraMetadata::filterStreamConfigurations() {
filteredDepthStreamConfigs.push_back(height);
filteredDepthStreamConfigs.push_back(isInput);
}
mData.update(ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS, filteredDepthStreamConfigs);
if (filteredDepthStreamConfigs.size() > 0) {
mData.update(ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS,
filteredDepthStreamConfigs);
}
entry = mData.find(ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS);
Vector<int32_t> filteredHeicStreamConfigs;

Loading…
Cancel
Save