aboutsummaryrefslogtreecommitdiff
path: root/src/liblzma/api/lzma (follow)
AgeCommit message (Collapse)AuthorFilesLines
2018-04-29Bump the version number to 5.3.1alpha.larhzu/v5.3.1alphaLasse Collin1-1/+1
2017-04-24liblzma: Add lzma_file_info_decoder().Lasse Collin1-0/+66
2017-04-21liblzma: Rename LZMA_SEEK to LZMA_SEEK_NEEDED and seek_in to seek_pos.Lasse Collin1-9/+9
2017-03-30liblzma: Add generic support for input seeking (LZMA_SEEK).Lasse Collin1-1/+30
Also mention LZMA_SEEK in xz/message.c to silence a warning.
2017-03-30liblzma: Fix lzma_memlimit_set(strm, 0).Lasse Collin1-1/+6
The 0 got treated specially in a buggy way and as a result the function did nothing. The API doc said that 0 was supposed to return LZMA_PROG_ERROR but it didn't. Now 0 is treated as if 1 had been specified. This is done because 0 is already used to indicate an error from lzma_memlimit_get() and lzma_memusage(). In addition, lzma_memlimit_set() no longer checks that the new limit is at least LZMA_MEMUSAGE_BASE. It's counter-productive for the Index decoder and was actually needed only by the auto decoder. Auto decoder has now been modified to check for LZMA_MEMUSAGE_BASE.
2017-03-30liblzma: Similar memlimit fix for stream_, alone_, and auto_decoder.Lasse Collin1-4/+17
2017-03-30liblzma: Fix handling of memlimit == 0 in lzma_index_decoder().Lasse Collin1-7/+11
It returned LZMA_PROG_ERROR, which was done to avoid zero as the limit (because it's a special value elsewhere), but using LZMA_PROG_ERROR is simply inconvenient and can cause bugs. The fix/workaround is to treat 0 as if it were 1 byte. It's effectively the same thing. The only weird consequence is that then lzma_memlimit_get() will return 1 even when 0 was specified as the limit. This fixes a very rare corner case in xz --list where a specific memory usage limit and a multi-stream file could print the error message "Internal error (bug)" instead of saying that the memory usage limit is too low.
2015-03-30Bump version to 5.3.0alpha and soname to 5.3.99.Lasse Collin1-3/+3
The idea of 99 is that it looks a bit weird in this context. For new features there's no API/ABI stability in devel versions.
2015-02-26Bump version and soname for 5.2.1.larhzu/v5.2.1Lasse Collin1-1/+1
2014-12-21Bump version and soname for 5.2.0.Lasse Collin1-3/+3
I know that soname != app version, but I skip AGE=1 in -version-info to make the soname match the liblzma version anyway. It doesn't hurt anything as long as it doesn't conflict with library versioning rules.
2014-12-02liblzma: Document how lzma_mt.block_size affects memory usage.Lasse Collin1-0/+4
2014-11-26Remove LZMA_UNSTABLE macro.Lasse Collin1-4/+0
2014-11-26liblzma: Update lzma_stream_encoder_mt() API docs.Lasse Collin1-2/+3
2014-09-14Bump the version number to 5.1.4beta.larhzu/v5.1.4betaLasse Collin1-2/+2
2014-08-05liblzma: Add support for LZMA_IGNORE_CHECK.Lasse Collin1-0/+24
2014-08-05liblzma: Add support for lzma_block.ignore_check.Lasse Collin1-10/+40
Note that this slightly changes how lzma_block_header_decode() has been documented. Earlier it said that the .version is set to the lowest required value, but now it says that the .version field is kept unchanged if possible. In practice this doesn't affect any old code, because before this commit the only possible .version was 0.
2014-06-18liblzma: Add lzma_cputhreads().Lasse Collin1-0/+14
2014-05-04liblzma: Rename the private API header lzma/lzma.h to lzma/lzma12.h.Lasse Collin1-1/+1
It can be confusing that two header files have the same name. The public API file is still lzma.h.
2014-01-20liblzma: Fix typo in a comment.Lasse Collin1-1/+1
2013-11-26liblzma: Document the need for block->check for lzma_block_header_decode().Lasse Collin1-0/+3
Thanks to Tomer Chachamu.
2013-10-26Bump the version number to 5.1.3alpha.larhzu/v5.1.3alphaLasse Collin1-1/+1
2013-10-02liblzma: Add LZMA_FULL_BARRIER support to single-threaded encoder.Lasse Collin1-7/+30
In the single-threaded encoder LZMA_FULL_BARRIER is simply an alias for LZMA_FULL_FLUSH.
2013-03-23liblzma: Add lzma_block_uncomp_encode().Lasse Collin1-0/+18
This also adds a new internal function lzma_block_buffer_bound64() which is similar to lzma_block_buffer_bound() but uses uint64_t instead of size_t.
2012-12-14Make the progress indicator smooth in threaded mode.Lasse Collin1-1/+21
This adds lzma_get_progress() to liblzma and takes advantage of it in xz. lzma_get_progress() collects progress information from the thread-specific structures so that fairly accurate progress information is available to applications. Adding a new function seemed to be a better way than making the information directly available in lzma_stream (like total_in and total_out are) because collecting the information requires locking mutexes. It's waste of time to do it more often than the up to date information is actually needed by an application.
2012-07-17liblzma: Make the use of lzma_allocator const-correct.Lasse Collin6-23/+29
There is a tiny risk of causing breakage: If an application assigns lzma_stream.allocator to a non-const pointer, such code won't compile anymore. I don't know why anyone would do such a thing though, so in practice this shouldn't cause trouble. Thanks to Jan Kratochvil for the patch.
2012-07-04Bump the version number to 5.1.2alpha.larhzu/v5.1.2alphaLasse Collin1-1/+1
2011-04-12Bump the version number to 5.1.1alpha and liblzma soname to 5.0.99.larhzu/v5.1.1alphaLasse Collin1-1/+1
2011-04-12Put the unstable APIs behind #ifdef LZMA_UNSTABLE.Lasse Collin1-0/+4
This way people hopefully won't complain if these APIs change and break code that used an older API.
2011-04-11liblzma: Add lzma_stream_encoder_mt() for threaded compression.Lasse Collin1-0/+163
This is the simplest method to do threading, which splits the uncompressed data into blocks and compresses them independently from each other. There's room for improvement especially to reduce the memory usage, but nevertheless, this is a good start.
2011-04-11liblzma: Document lzma_easy_(enc|dec)oder_memusage() better too.Lasse Collin1-0/+9
2011-04-11liblzma: Document lzma_raw_(enc|dec)oder_memusage() better.Lasse Collin1-2/+6
It didn't mention the return value that is used if an error occurs.
2011-04-11liblzma: API comment about lzma_allocator with threaded coding.Lasse Collin1-5/+13
2011-04-11liblzma: Fix API docs to mention LZMA_UNSUPPORTED_CHECK.Lasse Collin2-0/+4
This return value was missing from the API comments of four functions.
2010-11-15Merge branch 'v5.0'Lasse Collin1-0/+3
2010-11-15liblzma: Document the return value of lzma_lzma_preset().Lasse Collin1-0/+3
2010-10-25Bump version 5.1.0alpha.larhzu/v5.1.0alphaLasse Collin1-2/+2
2010-10-23Bump version to 5.0.0 and liblzma version-info to 5:0:0.Lasse Collin1-4/+4
2010-10-23liblzma: A few ABI tweaks to reserve space in structures.Lasse Collin3-7/+8
2010-10-21liblzma: Update the comments in the API headers.Lasse Collin11-105/+132
Adding support for LZMA_FINISH for Index encoding and decoding needed tiny additions to the relevant .c files too.
2010-10-02liblzma: Small fixes to comments in the API headers.Lasse Collin1-3/+7
2010-06-01Fix a comment.Lasse Collin1-1/+1
2010-05-26Remove the Subblock filter code for now.Lasse Collin1-200/+0
The spec isn't finished and the code didn't compile anymore. It won't be included in XZ Utils 5.0.0. It's easy to get it back once the spec is done.
2010-05-14Omit lzma_restrict from the API headers.Lasse Collin2-9/+7
It isn't really useful so omitting it makes things shorter and slightly more readable.
2010-02-12Collection of language fixes to comments and docs.Lasse Collin9-15/+15
Thanks to Jonathan Nieder.
2010-02-07Subtle change to liblzma Block handling API.Lasse Collin1-22/+17
lzma_block.version has to be initialized even for lzma_block_header_decode(). This way a future version of liblzma won't allocate memory in a way that an old application doesn't know how to free it. The subtlety of this change is that all current apps using lzma_block_header_decode() will keep working for now, because the only possible version value is zero, and lzma_block_header_decode() unconditionally sets the version to zero even now. Unless fixed, these apps will break in the future if a new version of the Block options is ever needed.
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