Say govips gives pixa no way to stop an encode; give AVIF's worst case

libvips can stop a running encode, but govips gives pixa no way to ask
it to, which README.md "Routes" and the Process and encode comments
now say in place of "libvips cannot stop an encode". The avifEffort
comment gives its 51 seconds as the RGB time and 110 seconds with an
alpha channel as the worst case, as README.md does.

Model: opus-5-5
This commit is contained in:
2026-10-15 14:03:53 +00:00
parent 5650a0067b
commit e320d46a2a
3 changed files with 32 additions and 29 deletions
+11 -10
View File
@@ -323,16 +323,17 @@ the first request's) stops waiting for a processing slot, or, once it has one,
gives it back without beginning to encode. A request waiting for a shared
transcode that stops this way is answered 503 with the error
`server busy, try again later`, though its own `downstream_timeout` may not have
ended. libvips cannot stop an encode once it has begun, so an encode keeps its
slot until it finishes, which can be after `downstream_timeout`. The limit of
8192 on each side of the source and of the output bounds how long that takes.
With one libvips thread, as pixad runs it, encoding 8192x8192 random pixels
takes up to about 1 second as JPEG, 15 as PNG, 16 as GIF, 63 as WebP, 110 as
AVIF and 96 as JPEG XL, the slowest of 8 or 16 bits per sample, with or without
an alpha channel. WebP, AVIF and JPEG XL are that slow only with an alpha
channel: 8-bit RGB takes about 44, 53 and 28 seconds. Decoding such a source
adds up to about 11 seconds. A WebP, AVIF or JPEG XL encode can therefore hold
its slot past the default `downstream_timeout` of 60 seconds.
ended. govips gives pixa no way to stop libvips once an encode has begun, so an
encode keeps its slot until it finishes, which can be after
`downstream_timeout`. The limit of 8192 on each side of the source and of the
output bounds how long that takes. With one libvips thread, as pixad runs it,
encoding 8192x8192 random pixels takes up to about 1 second as JPEG, 15 as PNG,
16 as GIF, 63 as WebP, 110 as AVIF and 96 as JPEG XL, the slowest of 8 or 16
bits per sample, with or without an alpha channel. WebP, AVIF and JPEG XL are
that slow only with an alpha channel: 8-bit RGB takes about 44, 53 and 28
seconds. Decoding such a source adds up to about 11 seconds. A WebP, AVIF or
JPEG XL encode can therefore hold its slot past the default `downstream_timeout`
of 60 seconds.
The login form (`POST /`) is limited to 5 attempts per minute per client
address, counting an IPv6 client by its /64; an attempt over the limit is