* Simplify Python code by receiving tuple from C, as per #8740
* Use default PyTypeObject value
* Removed AVIF_TRUE
* Width and height are already set on first frame
* Removed memset
* Depth is set by avifRGBImageSetDefaults
* Replace PyObject with int
* After a failed pixel allocation, destroy non-first frame
* Added error if avifImageCreateEmpty returns NULL
* Python images cannot have negative dimensions
* Test invalid canvas dimensions
* Use boolean format argument
* Handle avifDecoderCreate and avifEncoderCreate errors
* tileRowsLog2 and tileColsLog2 are ignored if autotiling is enabled
* Only define _add_codec_specific_options if it may be used
* Test non-string advanced value
* Simplified error handling in AvifEncoderNew
* Corrected heading
---------
Co-authored-by: Andrew Murray <radarhere@users.noreply.github.com>
* Removed skip_unless_feature on methods when class is already skipped
* Test speed less than slowest and greater than fastest
* Updated type hints
* Only access angle when AVIF_TRANSFORM_IROT flag is present
* Added AVIF_ROOT
* Only define normalize_quantize_value if it will be used
* Build libavif after libjpeg
* Use rgb.rowBytes in overflow check
* Group EXIF info
* Removed __loaded
* If brew is not installed, use /usr prefix
* Sort AVIF codecs alphabetically
* Updated rav1e license
* Fixed catching warning, as per #8505
* Simplified code
* Fixed typos
* Test further scenarios
* Use y* to parse bytes
---------
Co-authored-by: Andrew Murray <radarhere@users.noreply.github.com>
* Removed check_avif_leaks.py
* Removed _VALID_AVIF_MODES
* Fixed series of tuples as advanced argument
* Do not pass advanced values to C as bytes
* Simplified code
* Reuse size
* Destroy image on failure
* Rearranged image settings
* Fixed typo
* Test roundtrip colors from premultiplied alpha
---------
Co-authored-by: Andrew Murray <radarhere@users.noreply.github.com>