New compression/decompression API
authorEric Biggers <ebiggers3@gmail.com>
Wed, 25 Dec 2013 04:53:18 +0000 (22:53 -0600)
committerEric Biggers <ebiggers3@gmail.com>
Wed, 25 Dec 2013 05:40:16 +0000 (23:40 -0600)
commit883833a4b3dabec325edf1ca938000f91d587c00
tree1a9ae86f663c1539eca237c6b234f9d2d79e114d
parent832455ca09a05ae3cd50d281a3a4a6238aeee2a9
New compression/decompression API

To avoid the proliferation of functions for compressing and decompressing
in different formats, allow all the compression algorithms to be accessed
using a single API:

Compression:
- wimlib_create_compressor()
- wimlib_compress()
- wimlib_free_compressor()
- wimlib_set_default_compressor_params()

Decompression:
- wimlib_create_decompressor()
- wimlib_decompress()
- wimlib_free_decompressor()
- wimlib_set_default_decompressor_params()

This also makes it easier to allocate larger blocks of memory or do other
initializations in any decompressor or compressor implementation.

This commit adds a skeleton for the LZMS compressor but it doesn't do
anything yet.
34 files changed:
Makefile.am
include/wimlib.h
include/wimlib/chunk_compressor.h [moved from include/wimlib/compress_chunks.h with 87% similarity]
include/wimlib/compress_common.h [moved from include/wimlib/compress.h with 96% similarity]
include/wimlib/compressor_ops.h [new file with mode: 0644]
include/wimlib/decompress_common.h [moved from include/wimlib/decompress.h with 98% similarity]
include/wimlib/decompressor_ops.h [new file with mode: 0644]
include/wimlib/lookup_table.h
include/wimlib/lzx.h
include/wimlib/wim.h
include/wimlib/write.h
programs/imagex.c
src/compress.c
src/compress_chunk.c [deleted file]
src/compress_common.c [new file with mode: 0644]
src/compress_parallel.c
src/compress_serial.c
src/decompress.c
src/decompress_common.c [new file with mode: 0644]
src/integrity.c
src/lookup_table.c
src/lz77.c
src/lzms-compress.c [new file with mode: 0644]
src/lzms-decompress.c
src/lzx-common.c
src/lzx-compress.c
src/lzx-decompress.c
src/metadata_resource.c
src/resource.c
src/wim.c
src/write.c
src/xml.c
src/xpress-compress.c
src/xpress-decompress.c