mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-07 22:06:59 -06:00
Added Extra Codec, for easier integration into existing 7-Zip installations
This commit is contained in:
3
CPP/7zip/Bundles/Codec_zstd/StdAfx.cpp
Normal file
3
CPP/7zip/Bundles/Codec_zstd/StdAfx.cpp
Normal file
@@ -0,0 +1,3 @@
|
||||
// StdAfx.cpp
|
||||
|
||||
#include "StdAfx.h"
|
||||
8
CPP/7zip/Bundles/Codec_zstd/StdAfx.h
Normal file
8
CPP/7zip/Bundles/Codec_zstd/StdAfx.h
Normal file
@@ -0,0 +1,8 @@
|
||||
// StdAfx.h
|
||||
|
||||
#ifndef __STDAFX_H
|
||||
#define __STDAFX_H
|
||||
|
||||
#include "../../../Common/Common.h"
|
||||
|
||||
#endif
|
||||
27
CPP/7zip/Bundles/Codec_zstd/makefile
Normal file
27
CPP/7zip/Bundles/Codec_zstd/makefile
Normal file
@@ -0,0 +1,27 @@
|
||||
PROG = zstd.dll
|
||||
DEF_FILE = ../../Compress/Codec.def
|
||||
CFLAGS = $(CFLAGS)
|
||||
|
||||
#EXPORTS
|
||||
# CreateObject PRIVATE
|
||||
# GetNumberOfMethods PRIVATE
|
||||
# GetMethodProperty PRIVATE
|
||||
|
||||
7ZIP_COMMON_OBJS = \
|
||||
$O\StreamUtils.obj \
|
||||
|
||||
COMPRESS_OBJS = \
|
||||
$O\CodecExports.obj \
|
||||
$O\DllExportsCompress.obj \
|
||||
|
||||
C_OBJS = \
|
||||
$O\Alloc.obj \
|
||||
|
||||
!include "../../zstd.mak"
|
||||
ZSTD_OBJS = $(ZSTD_OBJS) \
|
||||
$O\fse_compress.obj \
|
||||
$O\huf_compress.obj \
|
||||
$O\zbuff_compress.obj \
|
||||
$O\zstd_compress.obj \
|
||||
|
||||
!include "../../7zip.mak"
|
||||
5
CPP/7zip/Bundles/Codec_zstd/resource.rc
Normal file
5
CPP/7zip/Bundles/Codec_zstd/resource.rc
Normal file
@@ -0,0 +1,5 @@
|
||||
#include "../../MyVersionInfo.rc"
|
||||
|
||||
MY_VERSION_INFO_DLL("7z ZStandard Plugin", "zstd")
|
||||
|
||||
101 ICON "../../Archive/Icons/7z.ico"
|
||||
@@ -31,8 +31,8 @@ CDecoder::CDecoder ():
|
||||
_inBufSizeAllocated (0),
|
||||
_outBufSizeAllocated (0),
|
||||
|
||||
_inBufSize (ZBUFF_recommendedDInSize()),
|
||||
_outBufSize (ZBUFF_recommendedDOutSize())
|
||||
_inBufSize (ZBUFF_recommendedDInSize() * 30),
|
||||
_outBufSize (ZBUFF_recommendedDOutSize()* 30)
|
||||
{
|
||||
_props.clear ();
|
||||
}
|
||||
|
||||
@@ -24,8 +24,8 @@ CEncoder::CEncoder():
|
||||
_inSize (0),
|
||||
_inBufSizeAllocated (0),
|
||||
_outBufSizeAllocated (0),
|
||||
_inBufSize (ZBUFF_recommendedCInSize()),
|
||||
_outBufSize (ZBUFF_recommendedCOutSize()),
|
||||
_inBufSize (ZBUFF_recommendedCInSize() * 30),
|
||||
_outBufSize (ZBUFF_recommendedCOutSize() * 30),
|
||||
_inSizeProcessed (0),
|
||||
_outSizeProcessed (0)
|
||||
{
|
||||
|
||||
@@ -11,8 +11,22 @@
|
||||
#include "ZstdEncoder.h"
|
||||
#endif
|
||||
|
||||
#ifndef EXTERNAL_CODEC
|
||||
REGISTER_CODEC_E(
|
||||
ZSTD,
|
||||
NCompress::NZSTD::CDecoder(),
|
||||
NCompress::NZSTD::CEncoder(),
|
||||
0x4F71101, "ZSTD")
|
||||
#else
|
||||
static void *CreateCodecOut() { return (void *)(ICompressCoder *)(new NCompress::NZSTD::CEncoder); }
|
||||
static void *CreateCodec() { return (void *)(ICompressCoder *)(new NCompress::NZSTD::CDecoder); }
|
||||
static CCodecInfo g_CodecsInfo[1] = {
|
||||
CreateCodec,
|
||||
CreateCodecOut,
|
||||
0x4F71101,
|
||||
"ZSTD",
|
||||
1,
|
||||
false
|
||||
};
|
||||
REGISTER_CODECS(ZSTD)
|
||||
#endif
|
||||
|
||||
@@ -39,6 +39,10 @@ cd %ROOT%\Bundles\SFXWin
|
||||
nmake %OPTS%
|
||||
copy O\7z.sfx %OUTDIR%\7z.sfx
|
||||
|
||||
cd %ROOT%\Bundles\Codec_zstd
|
||||
nmake %OPTS%
|
||||
copy O\zstd.dll %OUTDIR%\zstd-x32.dll
|
||||
|
||||
cd %ROOT%\..\..\C\Util\7zipInstall
|
||||
nmake %OPTS%
|
||||
copy O\7zipInstall.exe %OUTDIR%\Install-x32.exe
|
||||
|
||||
@@ -39,6 +39,10 @@ cd %ROOT%\Bundles\SFXWin
|
||||
nmake %OPTS%
|
||||
copy AMD64\7z.sfx %OUTDIR%\7z.sfx
|
||||
|
||||
cd %ROOT%\Bundles\Codec_zstd
|
||||
nmake %OPTS%
|
||||
copy AMD64\zstd.dll %OUTDIR%\zstd-x64.dll
|
||||
|
||||
cd %ROOT%\..\..\C\Util\7zipInstall
|
||||
nmake %OPTS%
|
||||
copy AMD64\7zipInstall.exe %OUTDIR%\Install-x64.exe
|
||||
|
||||
88
README.md
88
README.md
@@ -1,11 +1,89 @@
|
||||
|
||||
This is the Github Page of 7-Zip with support for **zstd**, short for Zstandard, which is a fast lossless compression algorithm, targeting real-time compression scenarios at zlib-level compression ratio.
|
||||
This is the Github Page of 7-Zip with support for **zstd**, short for
|
||||
Zstandard, which is a fast lossless compression algorithm, targeting
|
||||
real-time compression scenarios at zlib-level compression ratio.
|
||||
|
||||
You can install it in two ways:
|
||||
1. A full setup with ZStandard additions within the GUI and an modified
|
||||
Explorer context menu
|
||||
2. just the codec plugin, which goes to your existing 7-Zip installation
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
# 7-Zip ZStandard Edition (full setup, with GUI and Explorer integration)
|
||||
|
||||
## Installation
|
||||
|
||||
1. download the setup from here https://mcmilk.de/projects/7-Zip-zstd/dl/
|
||||
- https://mcmilk.de/projects/7-Zip-zstd/dl/7z1602-zstd-x32.exe
|
||||
- https://mcmilk.de/projects/7-Zip-zstd/dl/7z1602-zstd-x64.exe
|
||||
2. install it
|
||||
|
||||
## Usage
|
||||
|
||||

|
||||

|
||||
|
||||
# ZStandard codec Plugin for 7-Zip
|
||||
|
||||
## Installation
|
||||
|
||||
1. download the codec archiv from https://mcmilk.de/projects/7-Zip-zstd/dl/Codecs.7z
|
||||
2. create a new directory named "Codecs"
|
||||
3. put in there the zstd-x32.dll or the zstd-x64.dll, depending on your 7-Zip installation
|
||||
- normally, the x32 should go to: "C:\Program Files (x86)\7-Zip\Codecs"
|
||||
- and the x64 version should go in here: "C:\Program Files\7-Zip\Codecs"
|
||||
4. After this, you may check if the dll is correctly installed via this command: `7z.exe i`
|
||||
|
||||
The output should look like this:
|
||||
```
|
||||
Codecs:
|
||||
0 ED 40202 BZip2
|
||||
0 4ED 303011B BCJ2
|
||||
0 ED 3030103 BCJ
|
||||
0 ED 3030205 PPC
|
||||
0 ED 3030401 IA64
|
||||
0 ED 3030501 ARM
|
||||
0 ED 3030701 ARMT
|
||||
0 ED 3030805 SPARC
|
||||
0 ED 20302 Swap2
|
||||
0 ED 20304 Swap4
|
||||
0 ED 0 Copy
|
||||
0 ED 40109 Deflate64
|
||||
0 ED 40108 Deflate
|
||||
0 ED 3 Delta
|
||||
0 ED 21 LZMA2
|
||||
0 ED 30101 LZMA
|
||||
0 ED 30401 PPMD
|
||||
0 ED 6F10701 7zAES
|
||||
0 ED 6F00181 AES256CBC
|
||||
1 D 40301 Rar1
|
||||
1 D 40302 Rar2
|
||||
1 D 40303 Rar3
|
||||
1 D 40305 Rar5
|
||||
1 ED 4F71101 ZSTD <-- NEW
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
- when compressing binaries (*.exe, *.dll), you have to explicitly disable
|
||||
the bcj2 filter via `-m0=bcj`
|
||||
|
||||
- so the usage should look like this:
|
||||
```
|
||||
7z a archiv.7z -m0=bcj -m1=zstd -mx0 ...Fastest Mode, without BCJ preprocessor
|
||||
7z a archiv.7z -m0=bcj -m1=zstd -mx1 ...Fast mode, with BCJ preprocessor on executables
|
||||
7z a archiv.7z -m0=bcj -m1=zstd -mx.. ...
|
||||
7z a archiv.7z -m0=bcj -m1=zstd -mx21 ...2nd Slowest Mode, with BCJ preprocessor on executables
|
||||
7z a archiv.7z -m0=bcj -m1=zstd -mx22 ...Ultra Mode, with BCJ preprocessor on executables
|
||||
```
|
||||
|
||||
# Links
|
||||
- ZStandard Homepage: https://github.com/Cyan4973/zstd
|
||||
- 7-Zip ZStandard Homepage: https://mcmilk.de/projects/7-Zip-zstd/
|
||||
- 7-Zip ZStandard Homepage: https://mcmilk.de/projects/7-Zip-zstd/dl/
|
||||
- Request for inclusion into the mainline 7-Zip: https://sourceforge.net/p/sevenzip/discussion/45797/thread/a7e4f3f3/
|
||||
- result, will not be included :(
|
||||
|
||||

|
||||

|
||||

|
||||
/TR 2016-08-15
|
||||
|
||||
Reference in New Issue
Block a user