You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Found while correcting the README crates table for #425 (PR #526). Both are outside that PR
boundary, which is frozen to README.md, AGENTS.md one wording, the guard and its wiring — and
both are published text: a Cargo.toml description is what crates.io and cargo search show,
and a crate-level module doc is the first screen of docs.rs.
1. gamut-av1 describes itself as encoder-only, over a decode-by-default manifest
The decoder is not an opt-in extra a description may reasonably omit — it is on by default, it is crates/gamut-av1/src/decode/ (4223 lines), and src/lib.rs re-exports Av1Decoder, DecodeLimits, FrameHeader and friends behind that feature. src/lib.rs:1 opens with
"AV1 image encoder." for the same reason.
Anyone reading crates.io concludes gamut-av1 cannot decode. It can, unless they turn the feature
off.
2. gamut-avif lists as deferred what its own source already ships
crates/gamut-avif/src/lib.rs, under Deferred, planned:
alpha / RGBA encoding, 10/12-bit and 4:2:0/4:2:2 chroma subsampling, … the pure-Rust AV1
codestream decoder (which will make Av1StillDecoder optional) …
Contradicted twice by the crate itself:
src/lib.rs:4-7, forty lines above: AvifEncoder implements gamut_core::EncodeImage for Rgba8, Rgb16 and Rgba16. Alpha and high bit depth are the encode surface, not a plan.
The pure-Rust AV1 codestream decoder exists: gamut-av1default = ["decode"], and crates/gamut-av1/src/decode/mod.rs:3-4 describes itself as "the pure-Rust software tail behind gamut_avif::Av1StillDecoder". gamut-avif already has a normal dependency on gamut-av1 with
that feature on; what is missing is the wiring, not the decoder.
So the module doc tells a reader that AVIF decode requires them to bring a third-party AV1
decoder (dav1d, a platform decoder), while the workspace ships one.
Scope
Rewrite gamut-av1Cargo.toml description and src/lib.rs:1 to state encoder and
decoder, with the decoder scope bounded as src/decode/mod.rs:20-22 bounds it.
Reconcile gamut-avif "Deferred, planned" list with its own encode surface, and restate the AV1
decode position as "gamut-av1 ships one; gamut-avif does not yet register it as the implicit
tail behind Av1StillDecoder" if that is the intent.
Found while correcting the README crates table for #425 (PR #526). Both are outside that PR
boundary, which is frozen to
README.md,AGENTS.mdone wording, the guard and its wiring — andboth are published text: a
Cargo.tomldescription is what crates.io andcargo searchshow,and a crate-level module doc is the first screen of docs.rs.
1.
gamut-av1describes itself as encoder-only, over a decode-by-default manifestcrates/gamut-av1/Cargo.toml:3:crates/gamut-av1/Cargo.toml:19:The decoder is not an opt-in extra a description may reasonably omit — it is on by default, it is
crates/gamut-av1/src/decode/(4223 lines), andsrc/lib.rsre-exportsAv1Decoder,DecodeLimits,FrameHeaderand friends behind that feature.src/lib.rs:1opens with"AV1 image encoder." for the same reason.
Anyone reading crates.io concludes gamut-av1 cannot decode. It can, unless they turn the feature
off.
2.
gamut-aviflists as deferred what its own source already shipscrates/gamut-avif/src/lib.rs, under Deferred, planned:Contradicted twice by the crate itself:
src/lib.rs:4-7, forty lines above:AvifEncoderimplementsgamut_core::EncodeImageforRgba8,Rgb16andRgba16. Alpha and high bit depth are the encode surface, not a plan.gamut-av1default = ["decode"], andcrates/gamut-av1/src/decode/mod.rs:3-4describes itself as "the pure-Rust software tail behindgamut_avif::Av1StillDecoder". gamut-avif already has a normal dependency on gamut-av1 withthat feature on; what is missing is the wiring, not the decoder.
So the module doc tells a reader that AVIF decode requires them to bring a third-party AV1
decoder (dav1d, a platform decoder), while the workspace ships one.
Scope
gamut-av1Cargo.tomldescription andsrc/lib.rs:1to state encoder anddecoder, with the decoder scope bounded as
src/decode/mod.rs:20-22bounds it.decode position as "gamut-av1 ships one; gamut-avif does not yet register it as the implicit
tail behind
Av1StillDecoder" if that is the intent.STATUS.mdfiles.Acceptance
No crate
Cargo.tomldescription or crate-level module doc names a capability direction the samecrate manifest or source contradicts.
Refs #425, #526, #545.