internal SRes LzmaEnc_CodeOneMemBlock(bool reInit, P<byte> dest, ref long destLen, uint desiredPackSize, ref uint unpackSize) { CSeqOutStreamBuf outStream = new CSeqOutStreamBuf(); outStream.mData = dest; outStream.mRem = destLen; outStream.mOverflow = false; mWriteEndMark = false; mFinished = false; mResult = SZ_OK; if (reInit) LzmaEnc_Init(); LzmaEnc_InitPrices(); ulong nowPos64 = mNowPos64; mRC.RangeEnc_Init(); mRC.mOutStream = outStream; SRes res = LzmaEnc_CodeOneBlock(true, desiredPackSize, unpackSize); unpackSize = (uint)(mNowPos64 - nowPos64); destLen -= outStream.mRem; if (outStream.mOverflow) return SZ_ERROR_OUTPUT_EOF; return res; }
public SRes LzmaEnc_MemEncode(P<byte> dest, ref long destLen, P<byte> src, long srcLen, bool writeEndMark, ICompressProgress progress, ISzAlloc alloc, ISzAlloc allocBig) { CSeqOutStreamBuf outStream = new CSeqOutStreamBuf(); LzmaEnc_SetInputBuf(src, srcLen); outStream.mData = dest; outStream.mRem = destLen; outStream.mOverflow = false; mWriteEndMark = writeEndMark; mRC.mOutStream = outStream; SRes res = LzmaEnc_MemPrepare(src, srcLen, 0, alloc, allocBig); if (res == SZ_OK) res = LzmaEnc_Encode2(progress); destLen -= outStream.mRem; if (outStream.mOverflow) return SZ_ERROR_OUTPUT_EOF; return res; }