Loading camera/CameraSessionStats.cpp +21 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -460,6 +470,7 @@ status_t CameraSessionStats::readFromParcel(const android::Parcel* parcel) { mUsedZoomOverride = usedZoomOverride; mSessionIndex = sessionIdx; mCameraExtensionSessionStats = extStats; mMostRequestedFpsRange = mostRequestedFpsRange; return OK; } Loading Loading @@ -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; } Loading camera/camera_platform.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -210,3 +210,10 @@ flag { purpose: PURPOSE_BUGFIX } } flag { namespace: "camera_platform" name: "analytics_24q3" description: "Miscellaneous camera platform metrics for 24Q3" bug: "332557570" } camera/include/camera/CameraSessionStats.h +2 −0 Original line number Diff line number Diff line Loading @@ -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, Loading services/camera/libcameraservice/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -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", Loading Loading @@ -246,6 +245,7 @@ cc_library_static { "device3/ZoomRatioMapper.cpp", "utils/ExifUtils.cpp", "utils/SessionConfigurationUtilsHost.cpp", "utils/SessionStatsBuilder.cpp", ], header_libs: [ Loading services/camera/libcameraservice/api2/CameraDeviceClient.cpp +14 −8 Original line number Diff line number Diff line Loading @@ -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; } } } Loading Loading @@ -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(); Loading @@ -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 Loading
camera/CameraSessionStats.cpp +21 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -460,6 +470,7 @@ status_t CameraSessionStats::readFromParcel(const android::Parcel* parcel) { mUsedZoomOverride = usedZoomOverride; mSessionIndex = sessionIdx; mCameraExtensionSessionStats = extStats; mMostRequestedFpsRange = mostRequestedFpsRange; return OK; } Loading Loading @@ -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; } Loading
camera/camera_platform.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -210,3 +210,10 @@ flag { purpose: PURPOSE_BUGFIX } } flag { namespace: "camera_platform" name: "analytics_24q3" description: "Miscellaneous camera platform metrics for 24Q3" bug: "332557570" }
camera/include/camera/CameraSessionStats.h +2 −0 Original line number Diff line number Diff line Loading @@ -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, Loading
services/camera/libcameraservice/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -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", Loading Loading @@ -246,6 +245,7 @@ cc_library_static { "device3/ZoomRatioMapper.cpp", "utils/ExifUtils.cpp", "utils/SessionConfigurationUtilsHost.cpp", "utils/SessionStatsBuilder.cpp", ], header_libs: [ Loading
services/camera/libcameraservice/api2/CameraDeviceClient.cpp +14 −8 Original line number Diff line number Diff line Loading @@ -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; } } } Loading Loading @@ -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(); Loading @@ -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