fix: conversion of AVIF image rotation property to EXIF orientation

This implements a fix for the issue identified in
AOMediaCodec/libavif#2727 and fixed in AOMediaCodec/libavif#2729. The
code to convert irot and imir properties to EXIF orientation when
decoding AVIF images in Pillow was repurposed from libavif, so it
suffers the same bug.
This commit is contained in:
Frankie Dintino 2025-04-02 21:56:24 -04:00
parent 7e15c54cad
commit af1d2a51b3
No known key found for this signature in database
GPG Key ID: 97E295AACFBABD9E

View File

@ -59,7 +59,7 @@ irot_imir_to_exif_orientation(const avifImage *image) {
return axis ? 7 // 90 degrees anti-clockwise then swap left and right.
: 5; // 90 degrees anti-clockwise then swap top and bottom.
}
return 6; // 90 degrees anti-clockwise.
return 8; // 90 degrees anti-clockwise.
}
if (angle == 2) {
if (imir) {
@ -75,7 +75,7 @@ irot_imir_to_exif_orientation(const avifImage *image) {
? 5 // 270 degrees anti-clockwise then swap left and right.
: 7; // 270 degrees anti-clockwise then swap top and bottom.
}
return 8; // 270 degrees anti-clockwise.
return 6; // 270 degrees anti-clockwise.
}
}
if (imir) {