Camera: Only override rotate&crop for Camera2 clients
Legacy camera clients can and will use 'setDisplayOrientation'
to explicitly set a preview stream transformation depending on
the sensor orientation and the device rotation.
To maintain backward compatibility and honor the client
configuration, avoid overriding rotate&crop in case we have a
legacy client connection.
Additionally do not override rotate&crop for stream configurations
that include SurfaceView(HW_COMPOSER) outputs.
Test: Manual using camera application
Bug: 201005727
Change-Id: I3e32049bdd560724840780f96372c177ed2f4d20
diff --git a/services/camera/libcameraservice/device3/Camera3Device.h b/services/camera/libcameraservice/device3/Camera3Device.h
index df941b2..3a1853b 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.h
+++ b/services/camera/libcameraservice/device3/Camera3Device.h
@@ -919,6 +919,7 @@
status_t setRotateAndCropAutoBehavior(
camera_metadata_enum_android_scaler_rotate_and_crop_t rotateAndCropValue);
+ status_t setComposerSurface(bool composerSurfacePresent);
status_t setCameraMute(int32_t muteMode);
@@ -1071,6 +1072,7 @@
uint32_t mCurrentAfTriggerId;
uint32_t mCurrentPreCaptureTriggerId;
camera_metadata_enum_android_scaler_rotate_and_crop_t mRotateAndCropOverride;
+ bool mComposerOutput;
int32_t mCameraMute; // 0 = no mute, otherwise the TEST_PATTERN_MODE to use
bool mCameraMuteChanged;