libfreerdp-codec: stub XCrush data compression
This commit is contained in:
parent
5b0822a437
commit
77790874c8
40
include/freerdp/codec/bulk.h
Normal file
40
include/freerdp/codec/bulk.h
Normal file
@ -0,0 +1,40 @@
|
||||
/**
|
||||
* FreeRDP: A Remote Desktop Protocol Implementation
|
||||
* Bulk Data Compression
|
||||
*
|
||||
* Copyright 2014 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef FREERDP_CODEC_BULK_H
|
||||
#define FREERDP_CODEC_BULK_H
|
||||
|
||||
#include <freerdp/api.h>
|
||||
#include <freerdp/types.h>
|
||||
|
||||
/* Level-2 Compression Flags */
|
||||
|
||||
#define PACKET_COMPRESSED 0x20
|
||||
#define PACKET_AT_FRONT 0x40
|
||||
#define PACKET_FLUSHED 0x80
|
||||
|
||||
/* Level-1 Compression Flags */
|
||||
|
||||
#define L1_PACKET_AT_FRONT 0x04
|
||||
#define L1_NO_COMPRESSION 0x02
|
||||
#define L1_COMPRESSED 0x01
|
||||
#define L1_INNER_COMPRESSION 0x10
|
||||
|
||||
#endif /* FREERDP_CODEC_BULK_H */
|
||||
|
@ -25,9 +25,7 @@
|
||||
|
||||
#include <winpr/bitstream.h>
|
||||
|
||||
#define PACKET_COMPRESSED 0x20
|
||||
#define PACKET_AT_FRONT 0x40
|
||||
#define PACKET_FLUSHED 0x80
|
||||
#include <freerdp/codec/bulk.h>
|
||||
|
||||
struct _MPPC_CONTEXT
|
||||
{
|
||||
|
69
include/freerdp/codec/xcrush.h
Normal file
69
include/freerdp/codec/xcrush.h
Normal file
@ -0,0 +1,69 @@
|
||||
/**
|
||||
* FreeRDP: A Remote Desktop Protocol Implementation
|
||||
* XCrush (RDP6.1) Bulk Data Compression
|
||||
*
|
||||
* Copyright 2014 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef FREERDP_CODEC_XCRUSH_H
|
||||
#define FREERDP_CODEC_XCRUSH_H
|
||||
|
||||
#include <freerdp/api.h>
|
||||
#include <freerdp/types.h>
|
||||
|
||||
#include <freerdp/codec/mppc.h>
|
||||
|
||||
struct _RDP61_MATCH_DETAILS
|
||||
{
|
||||
UINT16 MatchLength;
|
||||
UINT16 MatchOutputOffset;
|
||||
UINT32 MatchHistoryOffset;
|
||||
};
|
||||
typedef struct _RDP61_MATCH_DETAILS RDP61_MATCH_DETAILS;
|
||||
|
||||
struct _RDP61_COMPRESSED_DATA
|
||||
{
|
||||
BYTE Level1ComprFlags;
|
||||
BYTE Level2ComprFlags;
|
||||
UINT16 MatchCount;
|
||||
RDP61_MATCH_DETAILS* MatchDetails;
|
||||
BYTE* Literals;
|
||||
};
|
||||
typedef struct _RDP61_COMPRESSED_DATA RDP61_COMPRESSED_DATA;
|
||||
|
||||
struct _XCRUSH_CONTEXT
|
||||
{
|
||||
BOOL Compressor;
|
||||
};
|
||||
typedef struct _XCRUSH_CONTEXT XCRUSH_CONTEXT;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
FREERDP_API int xcrush_compress(XCRUSH_CONTEXT* xcrush, BYTE* pSrcData, UINT32 SrcSize, BYTE** ppDstData, UINT32* pDstSize, UINT32* pFlags);
|
||||
FREERDP_API int xcrush_decompress(XCRUSH_CONTEXT* xcrush, BYTE* pSrcData, UINT32 SrcSize, BYTE** ppDstData, UINT32* pDstSize, UINT32 flags);
|
||||
|
||||
FREERDP_API void xcrush_context_reset(XCRUSH_CONTEXT* xcrush);
|
||||
|
||||
FREERDP_API XCRUSH_CONTEXT* xcrush_context_new(BOOL Compressor);
|
||||
FREERDP_API void xcrush_context_free(XCRUSH_CONTEXT* xcrush);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* FREERDP_CODEC_XCRUSH_H */
|
||||
|
@ -48,6 +48,7 @@ set(${MODULE_PREFIX}_SRCS
|
||||
nsc_encode.h
|
||||
nsc_types.h
|
||||
ncrush.c
|
||||
xcrush.c
|
||||
mppc.c
|
||||
jpeg.c)
|
||||
|
||||
|
@ -8,6 +8,7 @@ set(${MODULE_PREFIX}_TESTS
|
||||
TestFreeRDPRegion.c
|
||||
TestFreeRDPCodecMppc.c
|
||||
TestFreeRDPCodecNCrush.c
|
||||
TestFreeRDPCodecXCrush.c
|
||||
TestFreeRDPCodecPlanar.c
|
||||
TestFreeRDPCodecRemoteFX.c)
|
||||
|
||||
|
10
libfreerdp/codec/test/TestFreeRDPCodecXCrush.c
Normal file
10
libfreerdp/codec/test/TestFreeRDPCodecXCrush.c
Normal file
@ -0,0 +1,10 @@
|
||||
#include <winpr/crt.h>
|
||||
#include <winpr/print.h>
|
||||
|
||||
#include <freerdp/codec/xcrush.h>
|
||||
|
||||
int TestFreeRDPCodecXCrush(int argc, char* argv[])
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
68
libfreerdp/codec/xcrush.c
Normal file
68
libfreerdp/codec/xcrush.c
Normal file
@ -0,0 +1,68 @@
|
||||
/**
|
||||
* FreeRDP: A Remote Desktop Protocol Implementation
|
||||
* XCrush (RDP6.1) Bulk Data Compression
|
||||
*
|
||||
* Copyright 2014 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <winpr/crt.h>
|
||||
#include <winpr/print.h>
|
||||
#include <winpr/bitstream.h>
|
||||
|
||||
#include <freerdp/codec/xcrush.h>
|
||||
|
||||
int xcrush_decompress(XCRUSH_CONTEXT* xcrush, BYTE* pSrcData, UINT32 SrcSize, BYTE** ppDstData, UINT32* pDstSize, UINT32 flags)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
int xcrush_compress(XCRUSH_CONTEXT* xcrush, BYTE* pSrcData, UINT32 SrcSize, BYTE** ppDstData, UINT32* pDstSize, UINT32* pFlags)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
void xcrush_context_reset(XCRUSH_CONTEXT* xcrush)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
XCRUSH_CONTEXT* xcrush_context_new(BOOL Compressor)
|
||||
{
|
||||
XCRUSH_CONTEXT* xcrush;
|
||||
|
||||
xcrush = (XCRUSH_CONTEXT*) calloc(1, sizeof(XCRUSH_CONTEXT));
|
||||
|
||||
if (xcrush)
|
||||
{
|
||||
xcrush->Compressor = Compressor;
|
||||
|
||||
xcrush_context_reset(xcrush);
|
||||
}
|
||||
|
||||
return xcrush;
|
||||
}
|
||||
|
||||
void xcrush_context_free(XCRUSH_CONTEXT* xcrush)
|
||||
{
|
||||
if (xcrush)
|
||||
{
|
||||
free(xcrush);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user