- Recommandation should be displayed when recompressed count is zero, but decompressed count is higher (e.g. 0/5 PNG). This way, only disabling the streams that actually slowed down processing is recommened (0/0 streams don't slow down the process)
- Progress of copying uncompressed bytes is shown
- Better bzip2 on-the-fly compression progress
- lzma on-the-fly compression: As this buffers internally and we do not know how much bytes will be written beforehand, it shows a seperate progress text (total/written/left lzma data in MiB)
- Use of std::string constructor instead of "\b\b\b..." strings
- No more "status strings" in DLL mode (e.g. "Precompressing: ")
- Time between progress updates set to 250 ms for both work sign and percentage
- Fixed init_comfort(): missing suppress_jpg_parsing_until
- Fixed memory leak and bad huffman table check in packMP3
0c283d8e1c
- packjpg: add extra range to 172 when (1024+6-1)/6 = 171.5
https://github.com/packjpg/packJPG/issues/4
- add x64 to VS project with BIT64;COMFORT;
- Use at least the memory for LZMA preset 1
- Added methods for memory and thread defaults to avoid code duplication
- Fix: Precomp Comfort used invalid Compression_Method as default
- Fix: Use singular if only 1 thread is used
- Fix: precomp_dll.h had use_mp3 declared twice
- identical_bytes and compressed_stream_size don't have to be the same
anymore, as for some files they differ although decompressed bytes match
- tolerance for penalty bytes (5*32 bytes)
- LZMA_CONCATENATED flag removed (not needed because of a single stream)
- Code adapted from liblzma decompress.cpp example
- Sleep in own_fwrite removed
- 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")
- 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
- 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
- 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
- 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
- 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
- Before, partial matches led to additional decompression and
recompression to determinate the precise size of the partial match
- We can remove these 2 steps by using a slightly less precise size that
is known before
- Results for silesia.zip: 20% faster (37->30 seconds), 0.2% overhead in
bZip2 compressed variant (64,629,217 -> 64,764,849 bytes)