[libcamera-devel] [PATCH v3 2/8] android: jpeg: exif: Fix setOrientation EXIF values

Paul Elder paul.elder at ideasonboard.com
Sat Jan 23 06:16:58 CET 2021


The input to setOrientation is angle clockwise from the sensor
orientation, while the EXIF output values were swapped for 90
and 270 degrees.

>From the EXIF spec:

6 = The 0th row is the visual right-hand side of the image, and the
    0th column is the visual top.
8 = The 0th row is the visual left-hand side of the image, and the
    0th column is the visual bottom.

6 should be 90 degrees clockwise, while 8 should 270 degrees clockwise.
Fix this.

As Android defines the rotation as the clockwise angle by which the
image needs to be rotated to appear in the correct orientation on the
device screen, the previous values would be correct if the input angle
was from the camera orientation. Since the correct input should be the
requested JPEG orientation, these new values are the correct ones.

Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

---
No change in v3

Changes in v2
- expand commit message
---
 src/android/jpeg/exif.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/android/jpeg/exif.cpp b/src/android/jpeg/exif.cpp
index 5d9492fb..d4f86006 100644
--- a/src/android/jpeg/exif.cpp
+++ b/src/android/jpeg/exif.cpp
@@ -307,13 +307,13 @@ void Exif::setOrientation(int orientation)
 		value = 1;
 		break;
 	case 90:
-		value = 8;
+		value = 6;
 		break;
 	case 180:
 		value = 3;
 		break;
 	case 270:
-		value = 6;
+		value = 8;
 		break;
 	}
 
-- 
2.27.0



More information about the libcamera-devel mailing list