FreeRDP
|
#include <freerdp/config.h>
#include <winpr/crt.h>
#include <winpr/print.h>
#include <winpr/bitstream.h>
#include <freerdp/codec/color.h>
#include <freerdp/codec/clear.h>
#include <freerdp/log.h>
Macros | |
#define | TAG FREERDP_TAG("codec.clear") |
#define | CLEARCODEC_FLAG_GLYPH_INDEX 0x01 |
#define | CLEARCODEC_FLAG_GLYPH_HIT 0x02 |
#define | CLEARCODEC_FLAG_CACHE_RESET 0x04 |
#define | CLEARCODEC_VBAR_SIZE 32768 |
#define | CLEARCODEC_VBAR_SHORT_SIZE 16384 |
Functions | |
static void | clear_reset_vbar_storage (CLEAR_CONTEXT *clear, BOOL zero) |
static void | clear_reset_glyph_cache (CLEAR_CONTEXT *clear) |
static BOOL | convert_color (BYTE *dst, UINT32 nDstStep, UINT32 DstFormat, UINT32 nXDst, UINT32 nYDst, UINT32 nWidth, UINT32 nHeight, const BYTE *src, UINT32 nSrcStep, UINT32 SrcFormat, UINT32 nDstWidth, UINT32 nDstHeight, const gdiPalette *palette) |
static BOOL | clear_decompress_nscodec (NSC_CONTEXT *nsc, UINT32 width, UINT32 height, wStream *s, UINT32 bitmapDataByteCount, BYTE *pDstData, UINT32 DstFormat, UINT32 nDstStep, UINT32 nXDstRel, UINT32 nYDstRel) |
static BOOL | clear_decompress_subcode_rlex (wStream *s, UINT32 bitmapDataByteCount, UINT32 width, UINT32 height, BYTE *pDstData, UINT32 DstFormat, UINT32 nDstStep, UINT32 nXDstRel, UINT32 nYDstRel, UINT32 nDstWidth, UINT32 nDstHeight) |
static BOOL | clear_resize_buffer (CLEAR_CONTEXT *clear, UINT32 width, UINT32 height) |
static BOOL | clear_decompress_residual_data (CLEAR_CONTEXT *clear, wStream *s, UINT32 residualByteCount, UINT32 nWidth, UINT32 nHeight, BYTE *pDstData, UINT32 DstFormat, UINT32 nDstStep, UINT32 nXDst, UINT32 nYDst, UINT32 nDstWidth, UINT32 nDstHeight, const gdiPalette *palette) |
static BOOL | clear_decompress_subcodecs_data (CLEAR_CONTEXT *clear, wStream *s, UINT32 subcodecByteCount, UINT32 nWidth, UINT32 nHeight, BYTE *pDstData, UINT32 DstFormat, UINT32 nDstStep, UINT32 nXDst, UINT32 nYDst, UINT32 nDstWidth, UINT32 nDstHeight, const gdiPalette *palette) |
static BOOL | resize_vbar_entry (CLEAR_CONTEXT *clear, CLEAR_VBAR_ENTRY *vBarEntry) |
static BOOL | clear_decompress_bands_data (CLEAR_CONTEXT *clear, wStream *s, UINT32 bandsByteCount, UINT32 nWidth, UINT32 nHeight, BYTE *pDstData, UINT32 DstFormat, UINT32 nDstStep, UINT32 nXDst, UINT32 nYDst) |
static BOOL | clear_decompress_glyph_data (CLEAR_CONTEXT *clear, wStream *s, UINT32 glyphFlags, UINT32 nWidth, UINT32 nHeight, BYTE *pDstData, UINT32 DstFormat, UINT32 nDstStep, UINT32 nXDst, UINT32 nYDst, UINT32 nDstWidth, UINT32 nDstHeight, const gdiPalette *palette, BYTE **ppGlyphData) |
static INLINE BOOL | updateContextFormat (CLEAR_CONTEXT *clear, UINT32 DstFormat) |
INT32 | clear_decompress (CLEAR_CONTEXT *clear, const BYTE *pSrcData, UINT32 SrcSize, UINT32 nWidth, UINT32 nHeight, BYTE *pDstData, UINT32 DstFormat, UINT32 nDstStep, UINT32 nXDst, UINT32 nYDst, UINT32 nDstWidth, UINT32 nDstHeight, const gdiPalette *palette) |
int | clear_compress (CLEAR_CONTEXT *clear, const BYTE *pSrcData, UINT32 SrcSize, BYTE **ppDstData, UINT32 *pDstSize) |
BOOL | clear_context_reset (CLEAR_CONTEXT *clear) |
CLEAR_CONTEXT * | clear_context_new (BOOL Compressor) |
void | clear_context_free (CLEAR_CONTEXT *clear) |
Variables | |
static const UINT32 | CLEAR_LOG2_FLOOR [256] |
static const BYTE | CLEAR_8BIT_MASKS [9] = { 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF } |
#define CLEARCODEC_FLAG_CACHE_RESET 0x04 |
#define CLEARCODEC_FLAG_GLYPH_HIT 0x02 |
#define CLEARCODEC_FLAG_GLYPH_INDEX 0x01 |
#define CLEARCODEC_VBAR_SHORT_SIZE 16384 |
#define CLEARCODEC_VBAR_SIZE 32768 |
#define TAG FREERDP_TAG("codec.clear") |
FreeRDP: A Remote Desktop Protocol Implementation ClearCodec Bitmap Compression
Copyright 2014 Marc-Andre Moreau marca Copyright 2016 Armin Novak ndre .more au@g mail. comarmin Copyright 2016 Thincast Technologies GmbH .nov ak@th inca st.co m
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.
int clear_compress | ( | CLEAR_CONTEXT * | clear, |
const BYTE * | pSrcData, | ||
UINT32 | SrcSize, | ||
BYTE ** | ppDstData, | ||
UINT32 * | pDstSize | ||
) |
void clear_context_free | ( | CLEAR_CONTEXT * | clear | ) |
CLEAR_CONTEXT* clear_context_new | ( | BOOL | Compressor | ) |
BOOL clear_context_reset | ( | CLEAR_CONTEXT * | clear | ) |
The ClearCodec context is not bound to a particular surface, and its internal caches must NOT be reset on the ResetGraphics PDU.
INT32 clear_decompress | ( | CLEAR_CONTEXT * | clear, |
const BYTE * | pSrcData, | ||
UINT32 | SrcSize, | ||
UINT32 | nWidth, | ||
UINT32 | nHeight, | ||
BYTE * | pDstData, | ||
UINT32 | DstFormat, | ||
UINT32 | nDstStep, | ||
UINT32 | nXDst, | ||
UINT32 | nYDst, | ||
UINT32 | nDstWidth, | ||
UINT32 | nDstHeight, | ||
const gdiPalette * | palette | ||
) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |