函数逻辑报告 |
Source Code:lib\zstd\decompress.c |
Create Date:2022-07-27 08:04:33 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称: : 0, `fparamsPtr` is correctly filled,
函数原型:size_t ZSTD_getFrameParams(ZSTD_frameParams *fparamsPtr, const void *src, size_t srcSize)
返回类型:size_t
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| ZSTD_frameParams * | fparamsPtr | |
| const void * | src | |
| size_t | srcSize |
| 213 | 如果ZSTD_readLE32(src)不等于>= v0.8.0 则 |
| 214 | 如果ZSTD_readLE32(src)按位与0xFFFFFFF0U的值恒等于ZSTD_MAGIC_SKIPPABLE_START则 |
| 217 | memset(fparamsPtr, 0, fparamsPtr的长度) |
| 218 | frameContentSize等于ZSTD_readLE32((constchar * )src + 4) |
| 219 | windowSize等于0 |
| 220 | 返回:0 |
| 234 | pos等于5 |
| 235 | dictIDSizeCode等于fhdByte按位与3 |
| 236 | checksumFlag等于fhdByte右移2位按位与1 |
| 237 | singleSegment等于fhdByte右移5位按位与1 |
| 239 | windowSizeMax等于1U左移ZSTD_WINDOWLOG_MAX位 |
| 240 | windowSize等于0 |
| 241 | dictID等于0 |
| 242 | frameContentSize等于0 |
| 243 | 如果fhdByte按位与0x08的值不等于0则返回:-***************************************** Error codes handling(frameParameter_unsupported) |
| 245 | 如果非singleSegment则 |
| 247 | windowLog等于wlByte右移3位的值加ZSTD_WINDOWLOG_ABSOLUTEMIN |
| 248 | 如果windowLog大于ZSTD_WINDOWLOG_MAX则返回:-***************************************** Error codes handling(frameParameter_windowTooLarge) |
| 250 | windowSize等于1U左移windowLog位 |
| 251 | windowSize加等于windowSize右移3位的值乘wlByte按位与7的值 |
| 255 | 默认 |
| 256 | 当:dictIDSizeCode恒等于0 |
| 256 | 退出 |
| 257 | 当:dictIDSizeCode恒等于1 |
| 261 | 当:dictIDSizeCode恒等于2 |
| 265 | 当:dictIDSizeCode恒等于3 |
| 266 | dictID等于ZSTD_readLE32(ip + pos) |
| 267 | pos加等于4 |
| 268 | 退出 |
| 271 | 默认 |
| 273 | 如果singleSegment则frameContentSize等于ip[pos] |
| 275 | 退出 |
| 276 | 退出 |
| 277 | frameContentSize等于ZSTD_readLE32(ip + pos) |
| 277 | 退出 |
| 278 | frameContentSize等于ZSTD_readLE64(ip + pos) |
| 278 | 退出 |
| 280 | 如果非windowSize则windowSize等于frameContentSize |
| 282 | 如果windowSize大于windowSizeMax则返回:-***************************************** Error codes handling(frameParameter_windowTooLarge) |
| 285 | windowSize等于windowSize |
| 287 | checksumFlag等于checksumFlag |
| 289 | 返回:0 |
| 名称 | 描述 |
|---|---|
| ZSTD_getFrameContentSize | : decompressed size of the single frame pointed to be `src` if known, otherwise |
| ZSTD_decodeFrameHeader | : 0 if success, or an error code, which can be tested using ZSTD_isError() |
| ZSTD_findFrameCompressedSize | : the compressed size of the frame starting at `src` |
| ZSTD_getDictID_fromFrame | ! ZSTD_getDictID_fromFrame() :* Provides the dictID required to decompressed the frame stored within `src`.* If @return == 0, the dictID could not be decoded.* This could for one of the following reasons : |
| ZSTD_decompressStream |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |
摘要:ZSTD_getFrameParams() :* decode Frame Header, or require larger `srcSize`.* >0, `srcSize` is too small, result is expected `srcSize`,* or an error code, which can be tested using ZSTD_isError()