FreeRDP
xcrush.c File Reference
#include <winpr/crt.h>
#include <winpr/print.h>
#include <winpr/bitstream.h>
#include <freerdp/log.h>
#include <freerdp/codec/xcrush.h>

Macros

#define TAG   FREERDP_TAG("codec")
 

Functions

static UINT32 xcrush_update_hash (BYTE *data, UINT32 size)
 
static int xcrush_append_chunk (XCRUSH_CONTEXT *xcrush, BYTE *data, UINT32 *beg, UINT32 end)
 
static int xcrush_compute_chunks (XCRUSH_CONTEXT *xcrush, BYTE *data, UINT32 size, UINT32 *pIndex)
 
static UINT32 xcrush_compute_signatures (XCRUSH_CONTEXT *xcrush, BYTE *data, UINT32 size)
 
static void xcrush_clear_hash_table_range (XCRUSH_CONTEXT *xcrush, UINT32 beg, UINT32 end)
 
static int xcrush_find_next_matching_chunk (XCRUSH_CONTEXT *xcrush, XCRUSH_CHUNK *chunk, XCRUSH_CHUNK **pNextChunk)
 
static int xcrush_insert_chunk (XCRUSH_CONTEXT *xcrush, XCRUSH_SIGNATURE *signature, UINT32 offset, XCRUSH_CHUNK **pPrevChunk)
 
static int xcrush_find_match_length (XCRUSH_CONTEXT *xcrush, UINT32 MatchOffset, UINT32 ChunkOffset, UINT32 HistoryOffset, UINT32 SrcSize, UINT32 MaxMatchLength, XCRUSH_MATCH_INFO *MatchInfo)
 
static int xcrush_find_all_matches (XCRUSH_CONTEXT *xcrush, UINT32 SignatureIndex, UINT32 HistoryOffset, UINT32 SrcOffset, UINT32 SrcSize)
 
static int xcrush_optimize_matches (XCRUSH_CONTEXT *xcrush)
 
static int xcrush_generate_output (XCRUSH_CONTEXT *xcrush, BYTE *OutputBuffer, UINT32 OutputSize, UINT32 HistoryOffset, UINT32 *pDstSize)
 
static int xcrush_copy_bytes (BYTE *dst, BYTE *src, int num)
 
static int xcrush_decompress_l1 (XCRUSH_CONTEXT *xcrush, BYTE *pSrcData, UINT32 SrcSize, BYTE **ppDstData, UINT32 *pDstSize, UINT32 flags)
 
int xcrush_decompress (XCRUSH_CONTEXT *xcrush, BYTE *pSrcData, UINT32 SrcSize, BYTE **ppDstData, UINT32 *pDstSize, UINT32 flags)
 
static int xcrush_compress_l1 (XCRUSH_CONTEXT *xcrush, BYTE *pSrcData, UINT32 SrcSize, BYTE **ppDstData, UINT32 *pDstSize, UINT32 *pFlags)
 
int xcrush_compress (XCRUSH_CONTEXT *xcrush, BYTE *pSrcData, UINT32 SrcSize, BYTE **ppDstData, UINT32 *pDstSize, UINT32 *pFlags)
 
void xcrush_context_reset (XCRUSH_CONTEXT *xcrush, BOOL flush)
 
XCRUSH_CONTEXT * xcrush_context_new (BOOL Compressor)
 
void xcrush_context_free (XCRUSH_CONTEXT *xcrush)
 

Macro Definition Documentation

#define TAG   FREERDP_TAG("codec")

FreeRDP: A Remote Desktop Protocol Implementation XCrush (RDP6.1) Bulk Data Compression

Copyright 2014 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com Copyright 2017 Armin Novak armin.nosp@m..nov.nosp@m.ak@th.nosp@m.inca.nosp@m.st.co.nosp@m.m Copyright 2017 Thincast Technologies GmbH

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Function Documentation

static int xcrush_append_chunk ( XCRUSH_CONTEXT *  xcrush,
BYTE data,
UINT32 beg,
UINT32  end 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static void xcrush_clear_hash_table_range ( XCRUSH_CONTEXT *  xcrush,
UINT32  beg,
UINT32  end 
)
static

Here is the caller graph for this function:

int xcrush_compress ( XCRUSH_CONTEXT *  xcrush,
BYTE pSrcData,
UINT32  SrcSize,
BYTE **  ppDstData,
UINT32 pDstSize,
UINT32 pFlags 
)

Here is the call graph for this function:

Here is the caller graph for this function:

static int xcrush_compress_l1 ( XCRUSH_CONTEXT *  xcrush,
BYTE pSrcData,
UINT32  SrcSize,
BYTE **  ppDstData,
UINT32 pDstSize,
UINT32 pFlags 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static int xcrush_compute_chunks ( XCRUSH_CONTEXT *  xcrush,
BYTE data,
UINT32  size,
UINT32 pIndex 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT32 xcrush_compute_signatures ( XCRUSH_CONTEXT *  xcrush,
BYTE data,
UINT32  size 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

void xcrush_context_free ( XCRUSH_CONTEXT *  xcrush)

Here is the call graph for this function:

Here is the caller graph for this function:

XCRUSH_CONTEXT* xcrush_context_new ( BOOL  Compressor)

Here is the call graph for this function:

Here is the caller graph for this function:

void xcrush_context_reset ( XCRUSH_CONTEXT *  xcrush,
BOOL  flush 
)

Here is the call graph for this function:

Here is the caller graph for this function:

static int xcrush_copy_bytes ( BYTE dst,
BYTE src,
int  num 
)
static

Here is the caller graph for this function:

int xcrush_decompress ( XCRUSH_CONTEXT *  xcrush,
BYTE pSrcData,
UINT32  SrcSize,
BYTE **  ppDstData,
UINT32 pDstSize,
UINT32  flags 
)

Here is the call graph for this function:

Here is the caller graph for this function:

static int xcrush_decompress_l1 ( XCRUSH_CONTEXT *  xcrush,
BYTE pSrcData,
UINT32  SrcSize,
BYTE **  ppDstData,
UINT32 pDstSize,
UINT32  flags 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static int xcrush_find_all_matches ( XCRUSH_CONTEXT *  xcrush,
UINT32  SignatureIndex,
UINT32  HistoryOffset,
UINT32  SrcOffset,
UINT32  SrcSize 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static int xcrush_find_match_length ( XCRUSH_CONTEXT *  xcrush,
UINT32  MatchOffset,
UINT32  ChunkOffset,
UINT32  HistoryOffset,
UINT32  SrcSize,
UINT32  MaxMatchLength,
XCRUSH_MATCH_INFO *  MatchInfo 
)
static

Here is the caller graph for this function:

static int xcrush_find_next_matching_chunk ( XCRUSH_CONTEXT *  xcrush,
XCRUSH_CHUNK *  chunk,
XCRUSH_CHUNK **  pNextChunk 
)
static

Here is the caller graph for this function:

static int xcrush_generate_output ( XCRUSH_CONTEXT *  xcrush,
BYTE OutputBuffer,
UINT32  OutputSize,
UINT32  HistoryOffset,
UINT32 pDstSize 
)
static

Here is the caller graph for this function:

static int xcrush_insert_chunk ( XCRUSH_CONTEXT *  xcrush,
XCRUSH_SIGNATURE *  signature,
UINT32  offset,
XCRUSH_CHUNK **  pPrevChunk 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static int xcrush_optimize_matches ( XCRUSH_CONTEXT *  xcrush)
static

Here is the caller graph for this function:

static UINT32 xcrush_update_hash ( BYTE data,
UINT32  size 
)
static

Here is the caller graph for this function: