Decompressed size functions now handle multiframes and distinguish cases

- Add ZSTD_findDecompressedSize
    - Traverses multiple frames to find total output size
- Add ZSTD_getFrameContentSize
    - Gets the decompressed size of a single frame by reading header
- Deprecate ZSTD_getDecompressedSize
This commit is contained in:
Sean Purcell
2017-02-08 14:50:10 -08:00
parent 60259eb9a0
commit 4e709712e1
24 changed files with 496 additions and 16 deletions
+24
View File
@@ -123,6 +123,30 @@ MEM_STATIC size_t ZSTD_decompressLegacy(
}
}
MEM_STATIC size_t ZSTD_frameSrcSizeLegacy(const void *src,
size_t compressedSize)
{
U32 const version = ZSTD_isLegacy(src, compressedSize);
switch(version)
{
case 1 :
return ZSTDv01_frameSrcSize(src, compressedSize);
case 2 :
return ZSTDv02_frameSrcSize(src, compressedSize);
case 3 :
return ZSTDv03_frameSrcSize(src, compressedSize);
case 4 :
return ZSTDv04_frameSrcSize(src, compressedSize);
case 5 :
return ZSTDv05_frameSrcSize(src, compressedSize);
case 6 :
return ZSTDv06_frameSrcSize(src, compressedSize);
case 7 :
return ZSTDv07_frameSrcSize(src, compressedSize);
default :
return ERROR(prefix_unknown);
}
}
MEM_STATIC size_t ZSTD_freeLegacyStreamContext(void* legacyContext, U32 version)
{