Added Extra Codec, for easier integration into existing 7-Zip installations

This commit is contained in:
Tino Reichardt
2016-08-15 20:31:10 +02:00
parent 3a73dde07e
commit c21cd63d10
10 changed files with 152 additions and 9 deletions

View File

@@ -0,0 +1,3 @@
// StdAfx.cpp
#include "StdAfx.h"

View File

@@ -0,0 +1,8 @@
// StdAfx.h
#ifndef __STDAFX_H
#define __STDAFX_H
#include "../../../Common/Common.h"
#endif

View 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"

View File

@@ -0,0 +1,5 @@
#include "../../MyVersionInfo.rc"
MY_VERSION_INFO_DLL("7z ZStandard Plugin", "zstd")
101 ICON "../../Archive/Icons/7z.ico"

View File

@@ -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 ();
}

View File

@@ -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)
{

View File

@@ -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