Skip to content

Conversation

@lilith
Copy link
Member

@lilith lilith commented Nov 23, 2025

No description provided.

lilith added 30 commits November 4, 2025 16:14
…from a lossless format, even if lossless=None instead of Keep. . For lossy+transparent, choose avif>webp>png, for lossless, choose webp>png>avif. If jpeg disabled, try webp before avif/png/gif.
…re reading output buffers. Required for gif to write trailing segment.
…onToken; add instrumentation hooks in debug mode, and tests that test every possible cancellation point.
… ErrorKind::InternalError, "Maximum graph passes exceeded ({}>{}) instead
…e when given an opaque canvas color"

This reverts commit 7da91c9.
…el presence (yes -> png etc, no -> jpeg etc)
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request adds AVIF encoding support to imageflow, including a new AVIF encoder implementation, diagnostic data collection infrastructure, encoder finalization improvements, and comprehensive test coverage for format selection and AVIF encoding.

Key Changes:

  • Implemented AVIF encoder with configurable quality, speed, and alpha quality parameters
  • Added diagnostic data collection system for all encoders to track encoding parameters and results
  • Enhanced encoder lifecycle with finalization support via into_io() method
  • Improved format selection logic with preview and legacy modes

Reviewed changes

Copilot reviewed 37 out of 38 changed files in this pull request and generated no comments.

Show a summary per file
File Description
imageflow_types/src/lib.rs Added AvifEncoderHints struct, Display traits for Color types, diagnostic_data field to EncodeResult, and enhanced BoolKeep resolution logic
imageflow_core/src/codecs/avif_encoder.rs New AVIF encoder implementation using ravif library with quality/speed controls
imageflow_core/src/codecs/diagnostic_collector.rs New diagnostic data collection utility for encoder telemetry
imageflow_core/src/codecs/mod.rs Added into_io() method to Encoder trait and encoder finalization infrastructure
imageflow_riapi/src/ir4/encoder.rs Updated allowed formats handling and added AVIF encoder hints mapping
imageflow_riapi/src/ir4/parsing.rs Added AVIF-related IR4 keys and test coverage
imageflow_core/tests/smoke.rs Comprehensive format selection integration tests with magic byte verification
imageflow_core/tests/visuals.rs New AVIF encoding smoke tests and transparent canvas test
imageflow_tool/Cargo.toml Updated zip dependency from 2.3.0 to 6.0.0
Cargo.toml Updated libwebp-sys patch and libpng-sys repository

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants