Ejemplo n.º 1
0
        /* ZSTD_compressSuperBlock() :
         * Used to compress a super block when targetCBlockSize is being used.
         * The given block will be compressed into multiple sub blocks that are around targetCBlockSize. */
        public static nuint ZSTD_compressSuperBlock(ZSTD_CCtx_s *zc, void *dst, nuint dstCapacity, void *src, nuint srcSize, uint lastBlock)
        {
            ZSTD_entropyCTablesMetadata_t entropyMetadata;


            {
                nuint err_code = (ZSTD_buildSuperBlockEntropy(&zc->seqStore, &zc->blockState.prevCBlock->entropy, &zc->blockState.nextCBlock->entropy, &zc->appliedParams, &entropyMetadata, (void *)zc->entropyWorkspace, ((uint)(((6 << 10) + 256)) + ((nuint)(4) * (uint)((((35) > (52) ? (35) : (52)) + 2))))));

                if ((ERR_isError(err_code)) != 0)
                {
                    return(err_code);
                }
            }

            return(ZSTD_compressSubBlock_multi(&zc->seqStore, zc->blockState.prevCBlock, zc->blockState.nextCBlock, &entropyMetadata, &zc->appliedParams, dst, dstCapacity, src, srcSize, zc->bmi2, lastBlock, (void *)zc->entropyWorkspace, ((uint)(((6 << 10) + 256)) + ((nuint)(sizeof(uint)) * (uint)((((35) > (52) ? (35) : (52)) + 2))))));
        }
Ejemplo n.º 2
0
        public void Setup()
        {
            cCtx = Methods.ZSTD_createCCtx();
            dCtx = Methods.ZSTD_createDCtx();

            cCtxNative = ExternMethods.ZSTD_createCCtx();
            dCtxNative = ExternMethods.ZSTD_createDCtx();

            src          = File.ReadAllBytes("dickens");
            dest         = new byte[Methods.ZSTD_compressBound((nuint)src.Length)];
            uncompressed = new byte[src.Length];

            fixed(byte *dstPtr = dest)
            fixed(byte *srcPtr = src)
            {
                compressedLength = ExternMethods.ZSTD_compressCCtx(cCtxNative, (IntPtr)dstPtr, (nuint)dest.Length,
                                                                   (IntPtr)srcPtr, (nuint)src.Length,
                                                                   level);
            }
        }