summaryrefslogtreecommitdiff
path: root/src/lzw.c
Commit message (Collapse)AuthorAgeFilesLines
* LZW: Remove double blank lines.Michael Drake2021-11-191-5/+0
|
* lzw: Optimise mapped output for frames without transparency.Michael Drake2021-09-241-6/+14
|
* lzw: Rework API for separate init for map/non-map decode functions.Michael Drake2021-09-241-108/+144
|
* lzw: Decode until end of space in output buffer.Michael Drake2021-09-241-1/+1
|
* lzw: Remove unused one-code-at-a-time API.Michael Drake2021-04-241-12/+1
|
* 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
|
* lzw: Direct output into frame data, avoiding stack.Michael Drake2021-04-181-1/+89
| | | | | 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.
* lzw: Add function for decoding multiple LZW codes at a time.Michael Drake2021-04-181-0/+26
|
* 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-061-12/+35
|
* 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-061-24/+26
|
* lzw: Store code's value count in table.Michael Drake2021-04-061-0/+6
|
* 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-061-5/+5
|
* 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.
* 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
|
* 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.tlsa/lzwMichael Drake2017-04-051-14/+13
|
* New LZW decoder: Add client calls to initialise LZW, and perform decode.Michael Drake2017-04-051-0/+196
|
* New LZW decoder: Add client calls to create/destroy LZW contexts.Michael Drake2017-04-041-0/+28
|
* New LZW decoder: Routine to extract LZW codes from GIF sub-block sequences.Michael Drake2017-04-041-0/+149