summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* gif: Optimise opaque gifs on the complex decode path.Michael Drake13 hours1-6/+14
|
* lzw: Optimise mapped output for frames without transparency.Michael Drake15 hours1-6/+14
|
* lzw: Rework API for separate init for map/non-map decode functions.Michael Drake15 hours3-158/+214
|
* lzw: Decode until end of space in output buffer.Michael Drake22 hours1-1/+1
|
* gif: Whitespace fixes.Michael Drake2021-04-241-1110/+1109
| | | | Tabs for indent, spaces for alignment.
* lzw: Remove unused one-code-at-a-time API.Michael Drake2021-04-242-28/+2
|
* lzw: Reduce overhead for clear code handling.Michael Drake2021-04-241-27/+57
|
* lzw: Detect invalid code after clear code.Michael Drake2021-04-221-2/+6
|
* lzw: Always read three bytes on fast path to avoid swtich.Michael Drake2021-04-181-15/+13
|
* lzw: Restrict pointers through code reader.Michael Drake2021-04-181-4/+4
|
* lzw: Constify table pointers in writer functions.Michael Drake2021-04-181-6/+6
|
* gif: Switch complex decoder over to continuous lzw API.Michael Drake2021-04-181-1/+1
|
* lzw: Direct output into frame data, avoiding stack.Michael Drake2021-04-183-3/+195
| | | | | If the frame is non-interlaced, and has the same rowstride as the full image, then we can decode lzw directly into the output image.
* gif: Handle any uncompressed output before exiting due to error.Michael Drake2021-04-181-2/+2
|
* lzw: Add function for decoding multiple LZW codes at a time.Michael Drake2021-04-182-0/+41
|
* lzw: Add support for resumable output of a single code.Michael Drake2021-04-061-35/+77
| | | | This allows handling of insufficient output buffer space.
* lzw: Return output array from decode function instead of init.Michael Drake2021-04-063-31/+50
|
* gif: Frame decoding: Rearrange for readability.Michael Drake2021-04-061-18/+16
|
* gif: Frame decoding: Simplify transparency check.Michael Drake2021-04-061-4/+10
|
* lzw: Remove written member from context.Michael Drake2021-04-061-12/+7
| | | | Not needed now that clear codes are handled normally.
* lzw: Adapt main code handling to handle clear codes too.Michael Drake2021-04-061-54/+26
|
* lzw: Output values in picture order.Michael Drake2021-04-063-49/+41
|
* lzw: Store code's value count in table.Michael Drake2021-04-061-0/+6
|
* gif: Split out gif frame data decode.Michael Drake2021-04-061-59/+82
|
* lzw: Rename a bunch of structures, functions and variables.Michael Drake2021-04-061-67/+65
| | | | | | | | | | | | | new_code -> code last_value -> value first_value -> first previous_entry -> extends current_entry -> table_size previous_code -> prev_code previous_code_first -> prev_code_first current_code_size -> code_size current_code_size_max -> code_max lzw__next_code -> lzw_read_code
* lzw: Split out output writing.Michael Drake2021-04-061-15/+32
|
* lzw: Rename minimum_code_size to match what it's called in spec.Michael Drake2021-04-062-7/+7
|
* lzw: Slight simplification of clear code handling.Michael Drake2021-04-061-4/+4
|
* lzw: Avoid code size increment check when dictionary is full.Michael Drake2021-04-061-4/+3
|
* lzw: Split out dictionary augmentation.Michael Drake2021-04-061-14/+21
|
* lzw: Create #define for number of dictionary entry slots.Michael Drake2021-04-061-3/+5
|
* lzw: Simplify new code handling.Michael Drake2021-04-051-11/+6
| | | | | The tiny overhead of an extra time through the output loop is worth the simpler code.
* Delay bitmap allocation until needed for frame decode.John Cupitt2021-04-051-33/+16
| | | | Gives the client a chance to detect memory bombs.
* libnsgif: Fix LZW Minimum Code Size check.Michael Drake2021-03-291-1/+1
| | | | | The passed value is now checked for validity in lzw_decode_init() too, but checking here allows an early exit.
* lzw: Reject bad LZW Minimum Code Size.Michael Drake2021-03-291-0/+4
| | | | | The libnsgif.c code was checking this incorrectly, so safest to check it in the lzw.c code.
* lzw: Remove surplus semicolon.Michael Drake2021-03-291-1/+1
|
* fix libnsgif restore/record orderingJohn Cupitt2021-03-081-5/+6
|
* Fix allocation size comparison in previous frame recorder.Michael Drake2020-07-061-1/+1
|
* Disposal Method: Handle Restore to previous with saved image.Michael Drake2020-07-061-21/+80
| | | | | | | | | | | Previously we decoded a previous frame over the current frame data to handle resoration. However, the previous frame depended on its own previous frame state for correct decode. Now we just make a copy of the previous frame data and copy it back to handle the GIF_FRAME_RESTORE case. See: https://github.com/libvips/libvips/issues/1084#issuecomment-653497200
* LZW decoder: Tiny optimisation.Michael Drake2018-06-181-1/+1
| | | | | | | When the next code fits exactly in what's left of the current sub-block, we can use the fast path. Spotted by Adrian Lees.
* Squash GCC7 -Wimplicit-fallthrough warnings.Michael Drake2017-10-221-2/+2
|
* LZW decoder: Slight code clarity and comment improvement.Michael Drake2017-04-061-2/+4
|
* LZW decoder: Squash scan-build error by adding assert.Michael Drake2017-04-051-0/+3
| | | | | | | Note, for scan-build to correctly interpret the assert, the library must be built in debug mode: $ scan-build-4.0 make VARIANT=debug
* New LZW decoder: Real-world fix; continue after dictionary is full.Michael Drake2017-04-053-16/+13
|
* GIF decoding: Remove old LZW decoder and port library to new implementation.Michael Drake2017-04-052-326/+45
|
* New LZW decoder: Add client calls to initialise LZW, and perform decode.Michael Drake2017-04-052-0/+250
|
* New LZW decoder: Add client calls to create/destroy LZW contexts.Michael Drake2017-04-042-0/+52
|
* New LZW decoder: Routine to extract LZW codes from GIF sub-block sequences.Michael Drake2017-04-042-0/+177
|
* Remove pointless current_error from API surface.Michael Drake2017-02-061-1/+0
|
* Don't pass gif structure into lzw decoder.Michael Drake2017-02-061-50/+78
|