mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-07 05:15:01 -06:00
- Minor speed optimization for LZMA2 (xz and 7z) multi-threading compression.
7-Zip now uses additional memory buffers for multi-block LZMA2 compression.
CPU utilization was slightly improved.
- 7-zip now creates multi-block xz archives by default. Block size can be
specified with -ms[Size]{m|g} switch.
- xz decoder now can unpack random block from multi-block xz archives. 7-Zip
File Manager now can open nested multi-block xz archives (for example,
image.iso.xz) without full unpacking of xz archive.
- 7-Zip now can create zip archives from stdin to stdout.
- 7-Zip command line: @listfile now doesn't work after -- switch. Use
-i@listfile before -- switch instead.
fixed bugs:
- 7-Zip could add unrequired alternate file streams to WIM archives, for
commands that contain filename wildcards and -sns switch.
- 7-Zip 17.00 beta crashed for commands that write anti-item to 7z archive.
- 7-Zip 17.00 beta ignored "Use large memory pages" option.
61 lines
1.3 KiB
C
61 lines
1.3 KiB
C
/* XzEnc.h -- Xz Encode
|
|
2017-06-27 : Igor Pavlov : Public domain */
|
|
|
|
#ifndef __XZ_ENC_H
|
|
#define __XZ_ENC_H
|
|
|
|
#include "Lzma2Enc.h"
|
|
|
|
#include "Xz.h"
|
|
|
|
EXTERN_C_BEGIN
|
|
|
|
|
|
#define XZ_PROPS__BLOCK_SIZE__AUTO LZMA2_ENC_PROPS__BLOCK_SIZE__AUTO
|
|
#define XZ_PROPS__BLOCK_SIZE__SOLID LZMA2_ENC_PROPS__BLOCK_SIZE__SOLID
|
|
|
|
|
|
typedef struct
|
|
{
|
|
UInt32 id;
|
|
UInt32 delta;
|
|
UInt32 ip;
|
|
int ipDefined;
|
|
} CXzFilterProps;
|
|
|
|
void XzFilterProps_Init(CXzFilterProps *p);
|
|
|
|
|
|
typedef struct
|
|
{
|
|
CLzma2EncProps lzma2Props;
|
|
CXzFilterProps filterProps;
|
|
unsigned checkId;
|
|
UInt64 blockSize;
|
|
int numBlockThreads_Reduced;
|
|
int numBlockThreads_Max;
|
|
int numTotalThreads;
|
|
int forceWriteSizesInHeader;
|
|
UInt64 reduceSize;
|
|
} CXzProps;
|
|
|
|
void XzProps_Init(CXzProps *p);
|
|
|
|
|
|
typedef void * CXzEncHandle;
|
|
|
|
CXzEncHandle XzEnc_Create(ISzAllocPtr alloc, ISzAllocPtr allocBig);
|
|
void XzEnc_Destroy(CXzEncHandle p);
|
|
SRes XzEnc_SetProps(CXzEncHandle p, const CXzProps *props);
|
|
void XzEnc_SetDataSize(CXzEncHandle p, UInt64 expectedDataSiize);
|
|
SRes XzEnc_Encode(CXzEncHandle p, ISeqOutStream *outStream, ISeqInStream *inStream, ICompressProgress *progress);
|
|
|
|
SRes Xz_Encode(ISeqOutStream *outStream, ISeqInStream *inStream,
|
|
const CXzProps *props, ICompressProgress *progress);
|
|
|
|
SRes Xz_EncodeEmpty(ISeqOutStream *outStream);
|
|
|
|
EXTERN_C_END
|
|
|
|
#endif
|