Jonathan Behrens

Results 621 comments of Jonathan Behrens

The goal is to bundle all the breaking changes we'd like to make into a single `0.18` release, rather than have a couple breaking releases in rapid succession. But that...

I'm supportive of this PR, but I'm too burned out right now to review everything and manage a major release. As far as the `BufRead` changes, the last `image` crate...

That sounds good to me. If we're doing a breaking change, it might make sense to drop `next_row` entirely given that it is just a very thin wrapper over `next_interlaced_row`:...

As of `0.18.0-rc.2` we've got `read_row` with roughly the desired interface. So maybe we just need to replace the current `next_row` with that?

The current API design automatically decodes all metadata in bulk (regardless of whether the user is going to want it) and provides a stateful API to access the image data...

``` +----------------------------------------Release Build Stacktrace----------------------------------------+ Command: /mnt/scratch0/clusterfuzz/resources/platform/linux/unshare -c -n /mnt/scratch0/clusterfuzz/bot/builds/clusterfuzz-builds_image-png_b0e58386fac39f658accbcc17c96e929fd304259/revisions/buf_independent -rss_limit_mb=2560 -timeout=60 -runs=100 /mnt/scratch0/clusterfuzz/bot/inputs/fuzzer-testcases/crash-6b009d9c7ae1c0a28e19116bc6b061fbea68e01f Time ran: 0.37444591522216797 INFO: Running with entropic power schedule (0xFF, 100). INFO: Seed: 929925152 INFO: Loaded 1...

Ok, I think what happened is that we added the rgba8 and rgba16 SIMD versions in https://github.com/image-rs/image-png/pull/492 and then optimized the scalar versions of all paeth filter sizes in https://github.com/image-rs/image-png/pull/539....

The overall interface predates my time as a maintainer and much of it likely even predates Rust 1.0. I wouldn't read too much into how the API is currently designed....

Are you sure you didn't entirely remove the IDAT chunks? The decoder can't know it has reached the image data until it sees a chunk with type=IDAT. If it hits...

I'd have to look into the implementation of `write_image_data` to be sure, but I think the writer might wait to write an IDAT until it has enough data buffered and/or...