aboutsummaryrefslogtreecommitdiff
path: root/src/liblzma/api/lzma (follow)
AgeCommit message (Collapse)AuthorFilesLines
2010-01-01Fix _memconfig() functions.Lasse Collin1-7/+0
This affects lzma_memusage() and lzma_memlimit_get().
2009-12-31Revised the Index handling code.Lasse Collin1-146/+426
This breaks API and ABI but most apps are not affected since most apps don't use this part of the API. You will get a compile error if you are using anything that got broken. Summary of changes: - Ability to store Stream Flags, which are needed for random-access reading in multi-Stream files. - Separate function to set size of Stream Padding. - Iterator structure makes it possible to read the same lzma_index from multiple threads at the same time. - A lot faster code to locate Blocks. - Removed lzma_index_equal() without adding anything to replace it. I don't know what it should do exactly with the new features and what actually needs this function in the first place other than test_index.c, which now has its own code to compare lzma_indexes.
2009-12-31Add missing lzma_nothrow in filter.h.Lasse Collin1-2/+2
2009-11-25Index decoder fixes.Lasse Collin1-11/+12
The Index decoder code didn't perfectly match the API docs, which said that *i will be set to point to the decoded Index only after decoding has succeeded. The docs were a bit unclear too. Now the decoder will initially set *i to NULL. *i will be set to point to the decoded Index once decoding has succeeded. This simplifies applications too, since it avoids dangling pointers.
2009-11-15Add lzma_physmem().Lasse Collin1-0/+51
I had hoped to keep liblzma as purely a compression library as possible (e.g. file I/O will go into a different library), but it seems that applications linking agaisnt liblzma need some way to determine the memory usage limit, and knowing the amount of RAM is one reasonable way to help making such decisions. Thanks to Jonathan Nieder for the original patch.
2009-11-14Fix a design error in liblzma API.Lasse Collin2-13/+30
Originally the idea was that using LZMA_FULL_FLUSH with Stream encoder would read the filter chain from the same array that was used to intialize the Stream encoder. Since most apps wouldn't use LZMA_FULL_FLUSH, most apps wouldn't need to keep the filter chain available after initializing the Stream encoder. However, due to my mistake, it actually required keeping the array always available. Since setting the new filter chain via the array used at initialization time is not a nice way to do it for a couple of reasons, this commit ditches it and introduces lzma_filters_update(). This new function replaces also the "persistent" flag used by LZMA2 (and to-be-designed Subblock filter), which was also an ugly thing to do. Thanks to Alexey Tourbin for reminding me about the problem that Stream encoder used to require keeping the filter chain allocated.
2009-10-17Fix wrong function name in the previous commit.Lasse Collin1-1/+1
It was meant to be lzma_filters_copy(), not lzma_filters_dup().
2009-10-17Add lzma_filters_copy().Lasse Collin1-0/+31
This will be needed internally by liblzma once I fix a design mistake in the encoder API. This function may be useful to applications too so it's good to export it.
2009-09-15Fix incorrect use of "restrict".Lasse Collin1-2/+2
2009-09-12A few grammar fixes.Lasse Collin1-2/+2
Thanks to Christian Weisgerber for pointing out some of these.
2009-08-27Bumped version to 4.999.9beta.Lasse Collin1-1/+1
2009-08-27Updates to liblzma API headers.Lasse Collin11-197/+255
Added lzma_nothrow for every function. It adds throw() when the header is used in C++ code. Some lzma_attrs were added or removed. Lots of comments were improved.
2009-05-26Make the raw value of the Check field available to applicationsLasse Collin1-0/+17
via lzma_block structure. This changes ABI but not doesn't break API.
2009-04-13Put the interesting parts of XZ Utils into the public domain.Lasse Collin14-173/+113
Some minor documentation cleanups were made at the same time.
2009-02-18Added files missing from the previous commit.Lasse Collin1-0/+33
2009-02-13Changed how the version number is specified in various places.Lasse Collin1-3/+67
Now configure.ac will get the version number directly from src/liblzma/api/lzma/version.h. The intent is to reduce the number of places where the version number is duplicated. In future, support for displaying Git commit ID may be added too.
2009-02-02Modify LZMA_API macro so that it works on Windows withLasse Collin11-84/+85
other compilers than MinGW. This may hurt readability of the API headers slightly, but I don't know any better way to do this.
2009-02-01Added initial version of raw buffer-to-buffer codingLasse Collin1-20/+64
functions, and cleaned up filter.h API header a little. May be very buggy, not tested yet.
2009-02-01Use __cdecl also for function pointers in liblzma API whenLasse Collin1-2/+2
on Windows.
2009-01-31Add LZMA_API to liblzma API headers. It's useful at leastLasse Collin11-84/+100
on Windows. sysdefs.h no longer #includes lzma.h, so lzma.h has to be #included separately where needed.
2009-01-26Add lzma_block_buffer_decode().Lasse Collin1-0/+41
2009-01-23Added lzma_stream_buffer_decode() and made minor cleanups.Lasse Collin2-2/+52
2009-01-20Add some single-call buffer-to-buffer coding functions.Lasse Collin3-6/+177
2009-01-17Beta was supposed to be API stable but I had forgot to renameLasse Collin1-2/+2
lzma_memlimit_encoder and lzma_memlimit_decoder to lzma_raw_encoder_memlimit and lzma_raw_decoder_memlimit. :-( Now it is fixed. Hopefully it doesn't cause too much trouble to those who already thought API is stable.
2008-12-31Bumped version to 4.999.8beta right after the releaseLasse Collin1-1/+1
of 4.999.7beta.
2008-12-31Prepare for 4.999.7beta release.Lasse Collin1-1/+1
2008-12-31Cleaned up some comments in the API headers.Lasse Collin3-14/+15
2008-12-31Renamed lzma_options_simple to lzma_options_bcj in the API.Lasse Collin1-11/+11
The internal implementation is still using the name "simple". It may need some cleanups, so I look at it later.
2008-12-31Remove lzma_init() and other init functions from liblzma API.Lasse Collin1-85/+0
Half of developers were already forgetting to use these functions, which could have caused total breakage in some future liblzma version or even now if --enable-small was used. Now liblzma uses pthread_once() to do the initializations unless it has been built with --disable-threads which make these initializations thread-unsafe. When --enable-small isn't used, liblzma currently gets needlessly linked against libpthread (on systems that have it). While it is stupid for now, liblzma will need threads in future anyway, so this stupidity will be temporary only. When --enable-small is used, different code CRC32 and CRC64 is now used than without --enable-small. This made the resulting binary slightly smaller, but the main reason was to clean it up and to handle the lack of lzma_init_check(). The pkg-config file lzma.pc was renamed to liblzma.pc. I'm not sure if it works correctly and portably for static linking (Libs.private includes -pthread or other operating system specific flags). Hopefully someone complains if it is bad. lzma_rc_prices[] is now included as a precomputed array even with --enable-small. It's just 128 bytes now that it uses uint8_t instead of uint32_t. Smaller array seemed to be at least as fast as the more bloated uint32_t array on x86; hopefully it's not bad on other architectures.
2008-12-27Bunch of liblzma tweaks, including some API changes.Lasse Collin3-57/+123
The API and ABI should now be very close to stable, although the code behind it isn't yet.
2008-12-17Remove the alignment functions for now. Maybe they willLasse Collin1-60/+0
be added back in some form later, but the current version wasn't modular, so it would need fixing anyway.
2008-12-15Bunch of liblzma API cleanups and fixes.Lasse Collin14-299/+518
2008-11-25Remove the nowadays unneeded memory limitting malloc() wrapper.Lasse Collin1-207/+0
2008-11-19Oh well, big messy commit again. Some highlights:Lasse Collin4-24/+55
- Updated to the latest, probably final file format version. - Command line tool reworked to not use threads anymore. Threading will probably go into liblzma anyway. - Memory usage limit is now about 30 % for uncompression and about 90 % for compression. - Progress indicator with --verbose - Simplified --help and full --long-help - Upgraded to the last LGPLv2.1+ getopt_long from gnulib. - Some bug fixes
2008-10-07Made the preset numbering more logical in liblzma API.Lasse Collin2-11/+11
2008-09-27Some API changes, bug fixes, cleanups etc.Lasse Collin2-89/+149
2008-09-17Miscellaneous LZ and LZMA encoder cleanupsLasse Collin1-14/+0
2008-09-13Renamed constants:Lasse Collin10-59/+59
- LZMA_VLI_VALUE_MAX -> LZMA_VLI_MAX - LZMA_VLI_VALUE_UNKNOWN -> LZMA_VLI_UNKNOWN - LZMA_HEADER_ERRRO -> LZMA_OPTIONS_ERROR
2008-09-12Improved the Stream Flags handling API.Lasse Collin1-4/+80
2008-09-10Bumped version to 4.999.6alpha.Lasse Collin1-1/+1
2008-09-10Filter handling cleanupsLasse Collin1-31/+102
2008-09-10Cleaned up Block encoder and moved the no longer sharedLasse Collin1-3/+0
code from block_private.h to block_decoder.c. Now the Block encoder doesn't need compressed_size and uncompressed_size from lzma_block structure to be initialized.
2008-09-07Changed Filter ID of LZMA to 0x20.Lasse Collin1-1/+1
2008-09-06CommentsLasse Collin2-30/+57
2008-09-06Some API cleanupsLasse Collin3-127/+237
2008-08-28Sort of garbage collection commit. :-| Many things are stillLasse Collin21-628/+655
broken. API has changed a lot and it will still change a little more here and there. The command line tool doesn't have all the required changes to reflect the API changes, so it's easy to get "internal error" or trigger assertions.
2008-06-19Add limit of lc + lp <= 4. Now we can allocate theLasse Collin1-1/+9
literal coder as part of the main LZMA encoder or decoder structure. Make the LZMA decoder to rely on the current internal API to free the allocated memory in case an error occurs.
2008-06-18Update the code to mostly match the new simpler file formatLasse Collin19-1188/+522
specification. Simplify things by removing most of the support for known uncompressed size in most places. There are some miscellaneous changes here and there too. The API of liblzma has got many changes and still some more will be done soon. While most of the code has been updated, some things are not fixed (the command line tool will choke with invalid filter chain, if nothing else). Subblock filter is somewhat broken for now. It will be updated once the encoded format of the Subblock filter has been decided.
2008-05-06Bunch of grammar fixes from meyering.Lasse Collin1-3/+3
2008-05-06Typo fixLasse Collin1-1/+1
2008-04-28Fixed wrong spelling "limitter" to "limiter". This affectsLasse Collin3-9/+9
liblzma's API.
2008-04-25Bumped version number to 4.999.3alpha. It will become 5.0.0Lasse Collin1-12/+10
once we have a stable release (won't be very soon). The version number is no longer related to version of LZMA SDK. Made some small Automake-related changes to toplevel Makefile.am and configure.ac.
2008-03-14Fix a comment API header.Lasse Collin1-1/+1
2008-03-12Make lzma_stream.next_in const. Let's see if anyone complains.Lasse Collin1-1/+1
2008-01-26Added api/lzma/easy.h. I had forgot to add this to theLasse Collin1-0/+174
git repo. Thanks to Stephan Kulow.
2008-01-26Return LZMA_HEADER_ERROR if LZMA_SYNC_FLUSH is used with anyLasse Collin1-0/+9
of the so called simple filters. If there is demand, limited support for LZMA_SYNC_FLUSH may be added in future. After this commit, using LZMA_SYNC_FLUSH shouldn't cause undefined behavior in any situation.
2008-01-25Improved the memory limitter:Lasse Collin1-0/+35
- Added lzma_memlimit_max() and lzma_memlimit_reached() API functions. - Added simple estimation of malloc()'s memory usage overhead. - Fixed integer overflow detection in lzma_memlimit_alloc(). - Made some white space cleanups and added more comments. The description of lzma_memlimit_max() in memlimit.h is bad and should be improved.
2008-01-22Made lzma_extra pointers const in lzma_options_stream.Lasse Collin1-2/+2
2008-01-19Implemented LZMA_SYNC_FLUSH support to the Subblock encoder.Lasse Collin1-11/+18
The API for handing Subfilters was changed to make it consistent with LZMA_SYNC_FLUSH. A few sanity checks were added for Subfilter handling. Some small bugs were fixed. More comments were added.
2008-01-16Added lzma_memlimit_count().Lasse Collin1-0/+10
2008-01-05Fix typo in comment (INT64_MAX -> UINT64_MAX).Lasse Collin1-1/+1
2007-12-10Bumped version number to 4.42.3alpha.Lasse Collin1-1/+1
2007-12-09Imported to git.Lasse Collin23-0/+3518