#endif
case ZSTD_p_contentSizeFlag :
+ DEBUGLOG(2, "set content size flag = %u", (value>0));
/* Content size written in frame header _when known_ (default:1) */
cctx->requestedParams.fParams.contentSizeFlag = value>0;
return 0;
ZSTDLIB_API size_t ZSTD_CCtx_setPledgedSrcSize(ZSTD_CCtx* cctx, unsigned long long pledgedSrcSize)
{
+ DEBUGLOG(2, " setting pledgedSrcSize to %u", (U32)pledgedSrcSize);
if (cctx->streamStage != zcss_init) return ERROR(stage_wrong);
cctx->frameContentSize = pledgedSrcSize;
return 0;
endResult = ZSTD_writeEpilogue(cctx, (char*)dst + cSize, dstCapacity-cSize);
if (ZSTD_isError(endResult)) return endResult;
if (cctx->appliedParams.fParams.contentSizeFlag) { /* control src size */
- if (cctx->frameContentSize != cctx->consumedSrcSize)
+ DEBUGLOG(2, "end of frame : controlling src size");
+ if (cctx->frameContentSize != cctx->consumedSrcSize) {
+ DEBUGLOG(2, "error : pledgedSrcSize = %u, while realSrcSize = %u",
+ (U32)cctx->frameContentSize, (U32)cctx->consumedSrcSize);
return ERROR(srcSize_wrong);
- }
+ } }
return cSize + endResult;
}
DEBUGLOG(5, "Frame completed directly in outBuffer");
someMoreWork = 0;
zcs->streamStage = zcss_init;
+ zcs->frameContentSize = ZSTD_CONTENTSIZE_UNKNOWN;
}
break;
}
DEBUGLOG(5, "Frame completed on flush");
someMoreWork = 0;
zcs->streamStage = zcss_init;
+ zcs->frameContentSize = ZSTD_CONTENTSIZE_UNKNOWN;
break;
}
zcs->streamStage = zcss_load;
size_t const flushMin = ZSTDMT_compressStream_generic(cctx->mtctx, output, input, endOp);
DEBUGLOG(5, "ZSTDMT result : %u", (U32)flushMin);
if (ZSTD_isError(flushMin)) cctx->streamStage = zcss_init;
- if (endOp == ZSTD_e_end && flushMin==0)
+ if (endOp == ZSTD_e_end && flushMin==0) {
cctx->streamStage = zcss_init; /* compression completed */
+ cctx->frameContentSize = ZSTD_CONTENTSIZE_UNKNOWN;
+ }
return flushMin;
}
#endif