mirror of
				https://github.com/facebook/zstd.git
				synced 2025-10-25 00:03:26 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			75 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**
 | |
|  * Copyright (c) 2016-present, Yann Collet, Facebook, Inc.
 | |
|  * All rights reserved.
 | |
|  *
 | |
|  * This source code is licensed under the BSD-style license found in the
 | |
|  * LICENSE file in the root directory of this source tree. An additional grant
 | |
|  * of patent rights can be found in the PATENTS file in the same directory.
 | |
|  */
 | |
| 
 | |
| 
 | |
| 
 | |
| /* *************************************
 | |
| *  Dependencies
 | |
| ***************************************/
 | |
| #define ZBUFF_STATIC_LINKING_ONLY
 | |
| #include "zbuff.h"
 | |
| 
 | |
| 
 | |
| ZBUFF_DCtx* ZBUFF_createDCtx(void)
 | |
| {
 | |
|     return ZSTD_createDStream();
 | |
| }
 | |
| 
 | |
| ZBUFF_DCtx* ZBUFF_createDCtx_advanced(ZSTD_customMem customMem)
 | |
| {
 | |
|     return ZSTD_createDStream_advanced(customMem);
 | |
| }
 | |
| 
 | |
| size_t ZBUFF_freeDCtx(ZBUFF_DCtx* zbd)
 | |
| {
 | |
|     return ZSTD_freeDStream(zbd);
 | |
| }
 | |
| 
 | |
| 
 | |
| /* *** Initialization *** */
 | |
| 
 | |
| size_t ZBUFF_decompressInitDictionary(ZBUFF_DCtx* zbd, const void* dict, size_t dictSize)
 | |
| {
 | |
|     return ZSTD_initDStream_usingDict(zbd, dict, dictSize);
 | |
| }
 | |
| 
 | |
| size_t ZBUFF_decompressInit(ZBUFF_DCtx* zbd)
 | |
| {
 | |
|     return ZSTD_initDStream(zbd);
 | |
| }
 | |
| 
 | |
| 
 | |
| /* *** Decompression *** */
 | |
| 
 | |
| size_t ZBUFF_decompressContinue(ZBUFF_DCtx* zbd,
 | |
|                                 void* dst, size_t* dstCapacityPtr,
 | |
|                           const void* src, size_t* srcSizePtr)
 | |
| {
 | |
|     ZSTD_outBuffer outBuff;
 | |
|     ZSTD_inBuffer inBuff;
 | |
|     size_t result;
 | |
|     outBuff.dst  = dst;
 | |
|     outBuff.pos  = 0;
 | |
|     outBuff.size = *dstCapacityPtr;
 | |
|     inBuff.src  = src;
 | |
|     inBuff.pos  = 0;
 | |
|     inBuff.size = *srcSizePtr;
 | |
|     result = ZSTD_decompressStream(zbd, &outBuff, &inBuff);
 | |
|     *dstCapacityPtr = outBuff.pos;
 | |
|     *srcSizePtr = inBuff.pos;
 | |
|     return result;
 | |
| }
 | |
| 
 | |
| 
 | |
| /* *************************************
 | |
| *  Tool functions
 | |
| ***************************************/
 | |
| size_t ZBUFF_recommendedDInSize(void)  { return ZSTD_DStreamInSize(); }
 | |
| size_t ZBUFF_recommendedDOutSize(void) { return ZSTD_DStreamOutSize(); }
 |