20#ifndef FREERDP_CODEC_XCRUSH_H
21#define FREERDP_CODEC_XCRUSH_H
23#include <freerdp/api.h>
24#include <freerdp/types.h>
28typedef struct s_XCRUSH_CONTEXT XCRUSH_CONTEXT;
36 FREERDP_LOCAL
int xcrush_compress(XCRUSH_CONTEXT* WINPR_RESTRICT xcrush,
37 const BYTE* WINPR_RESTRICT pSrcData, UINT32 SrcSize,
38 BYTE* WINPR_RESTRICT pDstBuffer,
39 const BYTE** WINPR_RESTRICT ppDstData,
40 UINT32* WINPR_RESTRICT pDstSize,
41 UINT32* WINPR_RESTRICT pFlags);
44 FREERDP_LOCAL
int xcrush_decompress(XCRUSH_CONTEXT* WINPR_RESTRICT xcrush,
45 const BYTE* WINPR_RESTRICT pSrcData, UINT32 SrcSize,
46 const BYTE** WINPR_RESTRICT ppDstData,
47 UINT32* WINPR_RESTRICT pDstSize, UINT32 flags);
49 FREERDP_LOCAL
void xcrush_context_reset(XCRUSH_CONTEXT* WINPR_RESTRICT xcrush, BOOL flush);
51 FREERDP_LOCAL
void xcrush_context_free(XCRUSH_CONTEXT* xcrush);
53 WINPR_ATTR_MALLOC(xcrush_context_free, 1)
55 FREERDP_LOCAL XCRUSH_CONTEXT* xcrush_context_new(BOOL Compressor);