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

Commit 19af5994 authored by Eino-Ville Talvala (Eddy)'s avatar Eino-Ville Talvala (Eddy) Committed by Android (Google) Code Review
Browse files

Merge "Camera: Add metrics collection for FPS range" into main

parents 736c4015 ffc186bd
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -439,6 +439,16 @@ status_t CameraSessionStats::readFromParcel(const android::Parcel* parcel) {
        return err;
    }

    auto mostRequestedFpsRange = std::make_pair(0,0);
    if ((err = parcel->readInt32(&mostRequestedFpsRange.first)) != OK) {
        ALOGE("%s: Failed to read frame rate range min info!", __FUNCTION__);
        return err;
    }
    if ((err = parcel->readInt32(&mostRequestedFpsRange.second)) != OK) {
        ALOGE("%s: Failed to read frame rate range max info!", __FUNCTION__);
        return err;
    }

    mCameraId = toStdString(id);
    mFacing = facing;
    mNewCameraState = newCameraState;
@@ -460,6 +470,7 @@ status_t CameraSessionStats::readFromParcel(const android::Parcel* parcel) {
    mUsedZoomOverride = usedZoomOverride;
    mSessionIndex = sessionIdx;
    mCameraExtensionSessionStats = extStats;
    mMostRequestedFpsRange = mostRequestedFpsRange;

    return OK;
}
@@ -577,6 +588,16 @@ status_t CameraSessionStats::writeToParcel(android::Parcel* parcel) const {
        return err;
    }

    if ((err = parcel->writeInt32(mMostRequestedFpsRange.first)) != OK) {
        ALOGE("%s: Failed to write frame rate range min info!", __FUNCTION__);
        return err;
    }

    if ((err = parcel->writeInt32(mMostRequestedFpsRange.second)) != OK) {
        ALOGE("%s: Failed to write frame rate range max info!", __FUNCTION__);
        return err;
    }

    return OK;
}

+7 −0
Original line number Diff line number Diff line
@@ -210,3 +210,10 @@ flag {
       purpose: PURPOSE_BUGFIX
     }
}

flag {
     namespace: "camera_platform"
     name: "analytics_24q3"
     description: "Miscellaneous camera platform metrics for 24Q3"
     bug: "332557570"
}
+2 −0
Original line number Diff line number Diff line
@@ -167,6 +167,8 @@ public:

    CameraExtensionSessionStats mCameraExtensionSessionStats;

    std::pair<int32_t, int32_t> mMostRequestedFpsRange;

    // Constructors
    CameraSessionStats();
    CameraSessionStats(const std::string& cameraId, int facing, int newCameraState,
+1 −1
Original line number Diff line number Diff line
@@ -194,7 +194,6 @@ cc_library {
        "utils/SchedulingPolicyUtils.cpp",
        "utils/SessionConfigurationUtils.cpp",
        "utils/SessionConfigurationUtilsHidl.cpp",
        "utils/SessionStatsBuilder.cpp",
        "utils/TagMonitor.cpp",
        "utils/LatencyHistogram.cpp",
        "utils/Utils.cpp",
@@ -246,6 +245,7 @@ cc_library_static {
        "device3/ZoomRatioMapper.cpp",
        "utils/ExifUtils.cpp",
        "utils/SessionConfigurationUtilsHost.cpp",
        "utils/SessionStatsBuilder.cpp",
    ],

    header_libs: [
+14 −8
Original line number Diff line number Diff line
@@ -537,27 +537,28 @@ binder::Status CameraDeviceClient::submitRequestList(

        // Save certain CaptureRequest settings
        if (!request.mUserTag.empty()) {
            mUserTag = request.mUserTag;
            mRunningSessionStats.mUserTag = request.mUserTag;
        }
        camera_metadata_entry entry =
                physicalSettingsList.begin()->metadata.find(
                        ANDROID_CONTROL_VIDEO_STABILIZATION_MODE);
        if (entry.count == 1) {
            mVideoStabilizationMode = entry.data.u8[0];
            mRunningSessionStats.mVideoStabilizationMode = entry.data.u8[0];
        }
        if (flags::log_ultrawide_usage()) {

        if (!mRunningSessionStats.mUsedUltraWide && flags::log_ultrawide_usage()) {
            entry = physicalSettingsList.begin()->metadata.find(
                    ANDROID_CONTROL_ZOOM_RATIO);
            if (entry.count == 1 && entry.data.f[0] < 1.0f ) {
                mUsedUltraWide = true;
                mRunningSessionStats.mUsedUltraWide = true;
            }
        }
        if (!mUsedSettingsOverrideZoom && flags::log_zoom_override_usage()) {
        if (!mRunningSessionStats.mUsedSettingsOverrideZoom && flags::log_zoom_override_usage()) {
            entry = physicalSettingsList.begin()->metadata.find(
                    ANDROID_CONTROL_SETTINGS_OVERRIDE);
            if (entry.count == 1 && entry.data.i32[0] ==
                    ANDROID_CONTROL_SETTINGS_OVERRIDE_ZOOM) {
                mUsedSettingsOverrideZoom = true;
                mRunningSessionStats.mUsedSettingsOverrideZoom = true;
            }
        }
    }
@@ -2064,6 +2065,7 @@ void CameraDeviceClient::notifyRepeatingRequestError(long lastFrameNumber) {

void CameraDeviceClient::notifyIdle(
        int64_t requestCount, int64_t resultErrorCount, bool deviceError,
        std::pair<int32_t, int32_t> mostRequestedFpsRange,
        const std::vector<hardware::CameraStreamStats>& streamStats) {
    // Thread safe. Don't bother locking.
    sp<hardware::camera2::ICameraDeviceCallbacks> remoteCb = getRemoteCallback();
@@ -2084,8 +2086,12 @@ void CameraDeviceClient::notifyIdle(
        }
    }
    Camera2ClientBase::notifyIdleWithUserTag(requestCount, resultErrorCount, deviceError,
            fullStreamStats, mUserTag, mVideoStabilizationMode, mUsedUltraWide,
            mUsedSettingsOverrideZoom);
            mostRequestedFpsRange,
            fullStreamStats,
            mRunningSessionStats.mUserTag,
            mRunningSessionStats.mVideoStabilizationMode,
            mRunningSessionStats.mUsedUltraWide,
            mRunningSessionStats.mUsedSettingsOverrideZoom);
}

void CameraDeviceClient::notifyShutter(const CaptureResultExtras& resultExtras,
Loading