File libavif.patch of Package failed_python-imagecodecs
From d04112759c48772c4d46a2dfa4f4c6a76e23c9a9 Mon Sep 17 00:00:00 2001
From: Christoph Gohlke <cgohlke@cgohlke.com>
Date: Sat, 2 Sep 2023 16:52:31 -0700
Subject: [PATCH] Update imagecodecs/libavif.pxd
---
imagecodecs/libavif.pxd | 159 ++++++++++++++++++++++++++--------------
1 file changed, 102 insertions(+), 57 deletions(-)
diff --git a/imagecodecs/libavif.pxd b/imagecodecs/libavif.pxd
index 9d17cc5..c9db115 100644
--- a/imagecodecs/libavif.pxd
+++ b/imagecodecs/libavif.pxd
@@ -1,10 +1,10 @@
# imagecodecs/libavif.pxd
# cython: language_level = 3
-# Cython declarations for the `libavif 0.11.1` library.
+# Cython declarations for the `libavif 1.0.1` library.
# https://github.com/AOMediaCodec/libavif
-from libc.stdint cimport uint8_t, uint32_t, uint64_t
+from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t, int32_t
cdef extern from 'avif/avif.h':
@@ -24,6 +24,11 @@ cdef extern from 'avif/avif.h':
int AVIF_DIAGNOSTICS_ERROR_BUFFER_SIZE
int AVIF_DEFAULT_IMAGE_COUNT_LIMIT
+ int AVIF_QUALITY_DEFAULT
+ int AVIF_QUALITY_LOSSLESS
+ int AVIF_QUALITY_WORST
+ int AVIF_QUALITY_BEST
+
int AVIF_QUANTIZER_LOSSLESS
int AVIF_QUANTIZER_BEST_QUALITY
int AVIF_QUANTIZER_WORST_QUALITY
@@ -34,6 +39,11 @@ cdef extern from 'avif/avif.h':
int AVIF_SPEED_SLOWEST
int AVIF_SPEED_FASTEST
+ int AVIF_REPETITION_COUNT_INFINITE
+ int AVIF_REPETITION_COUNT_UNKNOWN
+
+ int AVIF_MAX_AV1_LAYER_COUNT
+
ctypedef enum avifPlanesFlag:
AVIF_PLANES_YUV
AVIF_PLANES_A
@@ -42,12 +52,10 @@ cdef extern from 'avif/avif.h':
ctypedef uint32_t avifPlanesFlags
ctypedef enum avifChannelIndex:
- AVIF_CHAN_R
- AVIF_CHAN_G
- AVIF_CHAN_B
AVIF_CHAN_Y
AVIF_CHAN_U
AVIF_CHAN_V
+ AVIF_CHAN_A
# Version
@@ -82,7 +90,7 @@ cdef extern from 'avif/avif.h':
AVIF_RESULT_ENCODE_COLOR_FAILED
AVIF_RESULT_ENCODE_ALPHA_FAILED
AVIF_RESULT_BMFF_PARSE_FAILED
- AVIF_RESULT_NO_AV1_ITEMS_FOUND
+ AVIF_RESULT_MISSING_IMAGE_ITEM
AVIF_RESULT_DECODE_COLOR_FAILED
AVIF_RESULT_DECODE_ALPHA_FAILED
AVIF_RESULT_COLOR_ALPHA_SIZE_MISMATCH
@@ -101,6 +109,7 @@ cdef extern from 'avif/avif.h':
AVIF_RESULT_OUT_OF_MEMORY
AVIF_RESULT_CANNOT_CHANGE_SETTING
AVIF_RESULT_INCOMPATIBLE_IMAGE
+ AVIF_RESULT_NO_AV1_ITEMS_FOUND
const char* avifResultToString(
avifResult result
@@ -118,12 +127,12 @@ cdef extern from 'avif/avif.h':
# int AVIF_DATA_EMPTY { NULL, 0 }
- void avifRWDataRealloc(
+ avifResult avifRWDataRealloc(
avifRWData* raw,
size_t newSize
) nogil
- void avifRWDataSet(
+ avifResult avifRWDataSet(
avifRWData* raw,
const uint8_t* data,
size_t len
@@ -133,6 +142,20 @@ cdef extern from 'avif/avif.h':
avifRWData* raw
) nogil
+ # Metadata
+
+ avifResult avifGetExifTiffHeaderOffset(
+ const uint8_t* exif,
+ size_t exifSize,
+ size_t* offset
+ ) nogil
+
+ avifResult avifGetExifOrientationOffset(
+ const uint8_t* exif,
+ size_t exifSize,
+ size_t* offset
+ ) nogil
+
# avifPixelFormat
ctypedef enum avifPixelFormat:
@@ -218,6 +241,15 @@ cdef extern from 'avif/avif.h':
AVIF_TRANSFER_CHARACTERISTICS_SMPTE428
AVIF_TRANSFER_CHARACTERISTICS_HLG
+ avifResult avifTransferCharacteristicsGetGamma(
+ avifTransferCharacteristics atc,
+ float* gamma
+ ) nogil
+
+ avifTransferCharacteristics avifTransferCharacteristicsFindByGamma(
+ float gamma
+ ) nogil
+
ctypedef enum avifMatrixCoefficients:
AVIF_MATRIX_COEFFICIENTS_IDENTITY
AVIF_MATRIX_COEFFICIENTS_BT709
@@ -233,12 +265,21 @@ cdef extern from 'avif/avif.h':
AVIF_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL
AVIF_MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL
AVIF_MATRIX_COEFFICIENTS_ICTCP
+ AVIF_MATRIX_COEFFICIENTS_YCGCO_RE
+ AVIF_MATRIX_COEFFICIENTS_YCGCO_RO
+ AVIF_MATRIX_COEFFICIENTS_LAST
ctypedef struct avifDiagnostics:
char error[256] # [AVIF_DIAGNOSTICS_ERROR_BUFFER_SIZE]
void avifDiagnosticsClearError(avifDiagnostics* diag) nogil
+ # Fraction utility
+
+ ctypedef struct avifFraction:
+ int32_t n
+ int32_t d
+
# Optional transformation structs
ctypedef enum avifTransformFlag:
@@ -268,7 +309,7 @@ cdef extern from 'avif/avif.h':
uint8_t angle
ctypedef struct avifImageMirror:
- uint8_t mode
+ uint8_t axis
ctypedef struct avifCropRect:
uint32_t x
@@ -294,6 +335,10 @@ cdef extern from 'avif/avif.h':
avifDiagnostics* diag
) nogil
+ ctypedef struct avifContentLightLevelInformationBox:
+ uint16_t maxCLL
+ uint16_t maxPALL
+
# avifImage
ctypedef struct avifImage:
@@ -314,6 +359,7 @@ cdef extern from 'avif/avif.h':
avifColorPrimaries colorPrimaries
avifTransferCharacteristics transferCharacteristics
avifMatrixCoefficients matrixCoefficients
+ avifContentLightLevelInformationBox clli
avifTransformFlags transformFlags
avifPixelAspectRatioBox pasp
avifCleanApertureBox clap
@@ -347,19 +393,19 @@ cdef extern from 'avif/avif.h':
avifImage* image
) nogil
- void avifImageSetProfileICC(
+ avifResult avifImageSetProfileICC(
avifImage* image,
const uint8_t* icc,
size_t iccSize
) nogil
- void avifImageSetMetadataExif(
+ avifResult avifImageSetMetadataExif(
avifImage* image,
const uint8_t* exif,
size_t exifSize
) nogil
- void avifImageSetMetadataXMP(
+ avifResult avifImageSetMetadataXMP(
avifImage* image,
const uint8_t* xmp,
size_t xmpSize
@@ -422,8 +468,9 @@ cdef extern from 'avif/avif.h':
avifChromaDownsampling chromaDownsampling
avifBool avoidLibYUV
avifBool ignoreAlpha
- avifBool isFloat
avifBool alphaPremultiplied
+ avifBool isFloat
+ int maxThreads
uint8_t* pixels
uint32_t rowBytes
@@ -438,7 +485,7 @@ cdef extern from 'avif/avif.h':
# Convenience functions
- void avifRGBImageAllocatePixels(
+ avifResult avifRGBImageAllocatePixels(
avifRGBImage* rgb
) nogil
@@ -471,62 +518,25 @@ cdef extern from 'avif/avif.h':
# YUV Utils
int avifFullToLimitedY(
- int depth,
+ uint32_t depth,
int v
) nogil
int avifFullToLimitedUV(
- int depth,
+ uint32_t depth,
int v
) nogil
int avifLimitedToFullY(
- int depth,
+ uint32_t depth,
int v
) nogil
int avifLimitedToFullUV(
- int depth,
+ uint32_t depth,
int v
) nogil
- # removed in v0.9
- #
- # ctypedef enum avifReformatMode:
- # AVIF_REFORMAT_MODE_YUV_COEFFICIENTS
- # AVIF_REFORMAT_MODE_IDENTITY
-
- # ctypedef struct avifReformatState:
- # float kr
- # float kg
- # float kb
- # uint32_t yuvChannelBytes
- # uint32_t rgbChannelBytes
- # uint32_t rgbChannelCount
- # uint32_t rgbPixelBytes
- # uint32_t rgbOffsetBytesR
- # uint32_t rgbOffsetBytesG
- # uint32_t rgbOffsetBytesB
- # uint32_t rgbOffsetBytesA
- # uint32_t yuvDepth
- # uint32_t rgbDepth
- # avifRange yuvRange
- # int yuvMaxChannel
- # int rgbMaxChannel
- # float yuvMaxChannelF
- # float rgbMaxChannelF
- # int uvBias
- # avifPixelFormatInfo formatInfo
- # float unormFloatTableY[1 << 12]
- # float unormFloatTableUV[1 << 12]
- # avifReformatMode mode
-
- # avifBool avifPrepareReformatState(
- # const avifImage* image,
- # const avifRGBImage* rgb,
- # avifReformatState* state
- # ) nogil
-
# Codec selection
ctypedef enum avifCodecChoice:
@@ -536,6 +546,7 @@ cdef extern from 'avif/avif.h':
AVIF_CODEC_CHOICE_LIBGAV1
AVIF_CODEC_CHOICE_RAV1E
AVIF_CODEC_CHOICE_SVT
+ AVIF_CODEC_CHOICE_AVM
ctypedef enum avifCodecFlag:
AVIF_CODEC_FLAG_CAN_DECODE
@@ -657,6 +668,7 @@ cdef extern from 'avif/avif.h':
uint64_t timescale
double duration
uint64_t durationInTimescales
+ int repetitionCount
avifBool alphaPresent
avifIOStats ioStats
avifDiagnostics diag
@@ -753,12 +765,20 @@ cdef extern from 'avif/avif.h':
struct avifCodecSpecificOptions:
pass
+ ctypedef struct avifScalingMode:
+ avifFraction horizontal
+ avifFraction vertical
+
ctypedef struct avifEncoder:
avifCodecChoice codecChoice
int maxThreads
int speed
int keyframeInterval
uint64_t timescale
+ int repetitionCount
+ uint32_t extraLayerCount
+ int quality
+ int qualityAlpha
int minQuantizer
int maxQuantizer
int minQuantizerAlpha
@@ -766,6 +786,7 @@ cdef extern from 'avif/avif.h':
int tileRowsLog2
int tileColsLog2
avifBool autoTiling
+ avifScalingMode scalingMode
avifIOStats ioStats
avifDiagnostics diag
avifEncoderData* data
@@ -801,7 +822,7 @@ cdef extern from 'avif/avif.h':
avifEncoder* encoder,
uint32_t gridCols,
uint32_t gridRows,
- const avifImage* const *cellImages,
+ const avifImage* const* cellImages,
avifAddImageFlags addImageFlags
)
@@ -810,7 +831,7 @@ cdef extern from 'avif/avif.h':
avifRWData* output
) nogil
- void avifEncoderSetCodecSpecificOption(
+ avifResult avifEncoderSetCodecSpecificOption(
avifEncoder* encoder,
const char* key,
const char* value
@@ -822,6 +843,30 @@ cdef extern from 'avif/avif.h':
const avifImage* image
) nogil
+ avifBool avifImageIsOpaque(
+ const avifImage* image
+ ) nogil
+
+ uint8_t* avifImagePlane(
+ const avifImage* image,
+ int channel
+ ) nogil
+
+ uint32_t avifImagePlaneRowBytes(
+ const avifImage* image,
+ int channel
+ ) nogil
+
+ uint32_t avifImagePlaneWidth(
+ const avifImage* image,
+ int channel
+ ) nogil
+
+ uint32_t avifImagePlaneHeight(
+ const avifImage* image,
+ int channel
+ ) nogil
+
avifBool avifPeekCompatibleFileType(
const avifROData* input
) nogil