Commit graph

157 commits

Author SHA1 Message Date
Christian Schneider
fba3d150aa Remove old LZMA preset code 2016-12-29 18:08:57 +01:00
Christian Schneider
5568734be5 Use the LZMA preset that satisfies memory limits 2016-12-29 18:07:51 +01:00
Christian Schneider
52be43eaa4 Show OS and 32-/64-bit information 2016-12-28 16:52:45 +01:00
Christian Schneider
769bdc3a74 Autodetect number of threads for LZMA
- Print memory usage
- Minor changes in compress_easy_mt.cpp (indentation, comments, removing
some unnecessary code)
2016-12-28 11:14:41 +01:00
Christian Schneider
89d6bf423f Add header files for std::thread support in MinGW
- MinGW lacks C++11 threading features out of the box, e.g. see
http://stackoverflow.com/questions/21211980/mingw-error-thread-is-not-a-member-of-std
- Source: https://github.com/meganz/mingw-std-threads
2016-12-25 11:14:05 +01:00
Christian Schneider
2cadccc2ac "No debug" flag for liblzma 2016-12-21 15:14:58 +01:00
Christian
e85494d8e5 Using CRC implementation in C in Linux, too 2016-11-13 10:09:39 +01:00
Christian Schneider
c9d13408d2 Using the CRC32 implementation in C in make.bat, too
- 64-bit version ("make 64") doesn't work with the assembler ones
2016-11-10 13:58:04 +01:00
Christian Schneider
b581197c2b Renaming bz2_in/out -> otf_in/out 2016-11-09 16:39:33 +01:00
Christian
b2c6919f6e Tab instead of space 2016-10-24 06:09:53 +02:00
Christian
bb8c8598d8 Now compiles on Linux, too 2016-10-24 06:08:14 +02:00
Christian
df88fd9944 Now compiles on Linux, too 2016-10-24 06:04:32 +02:00
Christian Schneider
206b724858 Finally, a working Visual Studio 2015 solution
- Due to C99 used in liblzma, Visual Studio 2013 or higher is needed
(2013 untested, 2015 works)
- Using the CRC32 implementations in C instead of the assembler ones
that won't work
- msinttypes not needed anymore
- .gitignore adjusted
2016-10-19 11:30:54 +02:00
Christian Schneider
865a7c85e8 Fixed enum typo
Led to a compilation error in comfort version
2016-08-27 12:28:26 +02:00
Christian Schneider
acff85e316 Removing old commented code 2016-07-05 14:37:39 +02:00
Christian Schneider
a75dc543cb Trying to get the MSVC solution running
- inttypes.h is used by liblzma, had to use msinttypes from
code.google.com/p/msinttypes
- There seem to be massive problems with the "inline" keyword
2016-07-02 19:52:42 +02:00
Christian Schneider
5e54296240 Removing VS 2008/2010 solution, Precomf solution
- I won't be able to maintain multiple Visual Studio solutions, sorry
- Precomf should be added as build config (using -DCOMFORT) instead of
seperate project
2016-07-02 18:48:46 +02:00
Christian Schneider
fab8c2b488 Enum for on-the-fly compression methods 2016-07-02 18:37:31 +02:00
Christian Schneider
940061423f Debug output removed 2016-07-02 18:24:37 +02:00
Christian Schneider
294fc3f128 Converting from/to liblzma
- conversions using -nl, -nx, -nm
- case cleanup (2,3,4 instead of 4,2,3)
- two switch statements replaced by if
2016-07-02 18:24:23 +02:00
Christian Schneider
8fc79d94b3 Always use liblzma
- #ifdefs removed
- Removed lzma_end call from Ctrl+C handler, cleaning up stream state
isn't necessary there.
2016-07-02 18:06:22 +02:00
Christian Schneider
b3d6c5c823 Removed debug output 2016-07-02 17:56:54 +02:00
Christian Schneider
a512eb30de On-the-fly liblzma compression and decompression works
- LZMA_CONCATENATED flag removed (not needed because of a single stream)
- Code adapted from liblzma decompress.cpp example
- Sleep in own_fwrite removed
2016-07-02 04:45:05 +02:00
Christian Schneider
7eb8931b1c Add #defines to make liblzma work
- Compression using -cl, -cx, -cm now works
2016-06-30 14:55:40 +02:00
Christian Schneider
6631a9acf8 Parantheses for clarity and against compiler warning 2016-06-26 10:41:53 +02:00
Christian Schneider
f04cd20672 Added "nocontrib" parameter to make.bat
- Can be used for a faster build if nothing in the contrib folder has
changed
- Times on my machine: "make" 68 s, "make nocontrib" 5 s
2016-06-26 10:35:06 +02:00
Christian Schneider
ccb748cf32 liblzma version number 2016-06-26 10:24:40 +02:00
Christian Schneider
2b7ac5532a Adjusted make.bat
- JPG/MP3 renamed to JPG_O/MP3_O to make .o usage clear
- Building giflib and bzip seperately
2016-06-25 18:30:52 +02:00
Christian Schneider
ee3d7967e8 Added liblzma notice 2016-06-25 17:54:50 +02:00
Christian Schneider
b7fc1001f8 First try - can be compiled using make.bat
- liblzma source code added (we don't want to use a DLL)
- Moved lzma.h and lzma subfolder to api subfolder
- Removed some unnecessary files (liblzma.def, lzma_dll.txt)
- Adjusted make.bat, added some "echo" statements to show build state.
- Can be compiled, but using "-cl" or  "-cx" give errors (specified
filter chain is not supported), "-cm" gives a crash
2016-06-25 17:46:29 +02:00
sftt
733ca5d05b Update compress_easy_mt.cpp
trim unused code
2016-06-20 16:08:43 +08:00
sftt
331613d68a Delete PAQ7ASM.obj 2016-06-20 15:44:17 +08:00
sftt
803576e491 Delete PAQ7ASM.asm 2016-06-20 15:44:10 +08:00
sftt
73d0c0fa1d Delete paq8o8pre.cpp 2016-06-20 15:43:10 +08:00
sftt
76e08b81e8 Delete xz-file-format.txt 2016-06-20 15:01:35 +08:00
Gavin.Gao
7f31cbca32 add otf_compression methods: lzma / xz(lzma2) / xz_MT 2016-06-20 13:44:05 +08:00
sftt
fb3b588f8d The public API of liblzma data compression library
liblzma is a public domain general-purpose data compression library with a zlib-like API. The native file format is .xz, but also the old .lzma format and raw (no headers) streams are supported. Multiple compression algorithms (filters) are supported. Currently LZMA2 is the primary filter.

liblzma is part of XZ Utils <http://tukaani.org/xz/>. XZ Utils includes a gzip-like command line tool named xz and some other tools. XZ Utils is developed and maintained by Lasse Collin.

Major parts of liblzma are based on Igor Pavlov's public domain LZMA SDK <http://7-zip.org/sdk.html>.
2016-06-20 10:49:47 +08:00
Gavin.Gao
258d484083 add otf_compression methods: lzma / xz(lzma2) / xz_MT 2016-06-19 16:53:50 +08:00
Gavin.Gao
ec9382d43c liblzma 2016-06-13 13:26:13 +08:00
sftt
a00c4aba80 precomf @ vs2010 2016-06-13 08:53:52 +08:00
Gavin.Gao
03eb16c8c3 vs2008 vcproj
precomf &
paq8o8pre with precomp_dll
2016-06-12 23:20:00 +08:00
Christian Schneider
1ca25c6c63 Verbose mode: Print both compression and memory level
- Before: Only compression level 1-9 was shown
- After. Compression and memory level are shown similar to -zl parameter
(e.g. compression level 5, memory level 6 shows as "level combination
56")
2016-06-10 22:58:17 +02:00
Christian Schneider
1a73884dcd Corrected make.bat; adjusted makeprof.bat (for profiling) 2016-06-07 11:13:52 +02:00
Christian Schneider
a8c59cb82e Fix for "Compressed size:" output in non-verbose mode 2016-06-07 10:58:33 +02:00
Christian Schneider
d1d4263ae6 Fix for cases with worse compression II
- original compressed size is tracked now
- trying combination stop has a new constraint: new compressed size must
be the same as the original compressed size
- fixed some usages of identical_bytes_decomp (instead of
best_identical_bytes_decomp) that could lead to "No matches" although
matches were found
2016-06-05 11:49:48 +02:00
Christian Schneider
074e9fd621 Fix for cases with worse compression
- there were cases where everything was decompressed, but penalty bytes
were used and trying combinations was stopped too early
- penalty byte must now be 0 before trying combinations is stopped
2016-06-05 10:22:33 +02:00
Christian Schneider
f9afdbd7df One temporary file less
- Merged compare_file_mem and compare_files_penalty
- There was a temporary file between the two functions before which is
not needed anymore, comparisons are done in memory on 512 byte chunks
- Result on silesia.zip: 15% faster (30,7 s => 26,2 s)
- See issue #14
2016-06-02 07:07:05 +02:00
Christian Schneider
1d36916341 Removed unused variables 2016-06-01 09:37:37 +02:00
Christian Schneider
85048e1ed9 Partial matches removed for GIF
- Only some files used partial matches, on most of them, compression was
worse with them
- Now "recompression failed" is printed instead and the stream doesn't
get processed further
2016-06-01 09:32:51 +02:00
Christian Schneider
5a85735f2e Removed dead code
- compare_files_penalty for "real identical bytes" is useless now, as it
gives the same result as the compare_files_penalty done before
- file truncation is unnecessary
2016-06-01 06:56:43 +02:00