Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f0906253 authored by Yin-Chia Yeh's avatar Yin-Chia Yeh
Browse files

Camera: fix filter logic for depth only camera

Test: partner testing
Bug: 126408288
Merged-In: I5c3abcd72e64b40e7cbac467646d99a1f5b362d0
Change-Id: I5c3abcd72e64b40e7cbac467646d99a1f5b362d0
parent ad636931
Loading
Loading
Loading
Loading
+16 −3
Original line number Original line Diff line number Diff line
@@ -159,7 +159,7 @@ ACameraMetadata::filterStreamConfigurations() {
    const int STREAM_HEIGHT_OFFSET = 2;
    const int STREAM_HEIGHT_OFFSET = 2;
    const int STREAM_IS_INPUT_OFFSET = 3;
    const int STREAM_IS_INPUT_OFFSET = 3;
    camera_metadata_entry entry = mData.find(ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS);
    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",
        ALOGE("%s: malformed available stream configuration key! count %zu, type %d",
                __FUNCTION__, entry.count, entry.type);
                __FUNCTION__, entry.count, entry.type);
        return;
        return;
@@ -187,9 +187,17 @@ ACameraMetadata::filterStreamConfigurations() {
        filteredStreamConfigs.push_back(isInput);
        filteredStreamConfigs.push_back(isInput);
    }
    }


    if (filteredStreamConfigs.size() > 0) {
        mData.update(ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS, filteredStreamConfigs);
        mData.update(ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS, filteredStreamConfigs);
    }


    entry = mData.find(ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS);
    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;
    Vector<int32_t> filteredDepthStreamConfigs;
    filteredDepthStreamConfigs.setCapacity(entry.count);
    filteredDepthStreamConfigs.setCapacity(entry.count);


@@ -214,7 +222,12 @@ ACameraMetadata::filterStreamConfigurations() {
        filteredDepthStreamConfigs.push_back(height);
        filteredDepthStreamConfigs.push_back(height);
        filteredDepthStreamConfigs.push_back(isInput);
        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);
    }

}
}


bool
bool