Loading services/camera/libcameraservice/api2/CameraDeviceClient.cpp +47 −17 Original line number Diff line number Diff line Loading @@ -635,9 +635,18 @@ status_t CameraDeviceClient::getRotationTransformLocked(int32_t* transform) { return INVALID_OPERATION; } camera_metadata_ro_entry_t entryFacing = staticInfo.find(ANDROID_LENS_FACING); if (entry.count == 0) { ALOGE("%s: Camera %d: Can't find android.lens.facing in " "static metadata!", __FUNCTION__, mCameraId); return INVALID_OPERATION; } int32_t& flags = *transform; bool mirror = (entryFacing.data.u8[0] == ANDROID_LENS_FACING_FRONT); int orientation = entry.data.i32[0]; if (!mirror) { switch (orientation) { case 0: flags = 0; Loading @@ -656,6 +665,27 @@ status_t CameraDeviceClient::getRotationTransformLocked(int32_t* transform) { __FUNCTION__, orientation); return INVALID_OPERATION; } } else { switch (orientation) { case 0: flags = HAL_TRANSFORM_FLIP_H; break; case 90: flags = HAL_TRANSFORM_FLIP_H | HAL_TRANSFORM_ROT_90; break; case 180: flags = HAL_TRANSFORM_FLIP_V; break; case 270: flags = HAL_TRANSFORM_FLIP_V | HAL_TRANSFORM_ROT_90; break; default: ALOGE("%s: Invalid HAL android.sensor.orientation value: %d", __FUNCTION__, orientation); return INVALID_OPERATION; } } /** * This magic flag makes surfaceflinger un-rotate the buffers Loading Loading
services/camera/libcameraservice/api2/CameraDeviceClient.cpp +47 −17 Original line number Diff line number Diff line Loading @@ -635,9 +635,18 @@ status_t CameraDeviceClient::getRotationTransformLocked(int32_t* transform) { return INVALID_OPERATION; } camera_metadata_ro_entry_t entryFacing = staticInfo.find(ANDROID_LENS_FACING); if (entry.count == 0) { ALOGE("%s: Camera %d: Can't find android.lens.facing in " "static metadata!", __FUNCTION__, mCameraId); return INVALID_OPERATION; } int32_t& flags = *transform; bool mirror = (entryFacing.data.u8[0] == ANDROID_LENS_FACING_FRONT); int orientation = entry.data.i32[0]; if (!mirror) { switch (orientation) { case 0: flags = 0; Loading @@ -656,6 +665,27 @@ status_t CameraDeviceClient::getRotationTransformLocked(int32_t* transform) { __FUNCTION__, orientation); return INVALID_OPERATION; } } else { switch (orientation) { case 0: flags = HAL_TRANSFORM_FLIP_H; break; case 90: flags = HAL_TRANSFORM_FLIP_H | HAL_TRANSFORM_ROT_90; break; case 180: flags = HAL_TRANSFORM_FLIP_V; break; case 270: flags = HAL_TRANSFORM_FLIP_V | HAL_TRANSFORM_ROT_90; break; default: ALOGE("%s: Invalid HAL android.sensor.orientation value: %d", __FUNCTION__, orientation); return INVALID_OPERATION; } } /** * This magic flag makes surfaceflinger un-rotate the buffers Loading