progressive.h (3292B)
1/** 2 * FreeRDP: A Remote Desktop Protocol Implementation 3 * Progressive Codec Bitmap Compression 4 * 5 * Copyright 2014 Marc-Andre Moreau <marcandre.moreau@gmail.com> 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 */ 19 20#ifndef FREERDP_CODEC_PROGRESSIVE_H 21#define FREERDP_CODEC_PROGRESSIVE_H 22 23typedef struct _PROGRESSIVE_CONTEXT PROGRESSIVE_CONTEXT; 24 25#include <freerdp/api.h> 26#include <freerdp/types.h> 27 28#include <winpr/wlog.h> 29#include <winpr/collections.h> 30 31#include <freerdp/codec/rfx.h> 32#include <freerdp/codec/color.h> 33#include <freerdp/codec/region.h> 34 35#ifdef __cplusplus 36extern "C" 37{ 38#endif 39 40#if !defined(DEFINE_NO_DEPRECATED) 41 FREERDP_API WINPR_DEPRECATED(int progressive_compress(PROGRESSIVE_CONTEXT* progressive, 42 const BYTE* pSrcData, UINT32 SrcSize, 43 BYTE** ppDstData, UINT32* pDstSize)); 44#endif 45 46 FREERDP_API int progressive_compress_ex(PROGRESSIVE_CONTEXT* progressive, const BYTE* pSrcData, 47 UINT32 SrcSize, UINT32 SrcFormat, UINT32 Width, 48 UINT32 Height, UINT32 ScanLine, 49 const REGION16* invalidRegion, BYTE** ppDstData, 50 UINT32* pDstSize); 51#if !defined(DEFINE_NO_DEPRECATED) 52 FREERDP_API WINPR_DEPRECATED(INT32 progressive_decompress( 53 PROGRESSIVE_CONTEXT* progressive, const BYTE* pSrcData, UINT32 SrcSize, BYTE* pDstData, 54 UINT32 DstFormat, UINT32 nDstStep, UINT32 nXDst, UINT32 nYDst, REGION16* invalidRegion, 55 UINT16 surfaceId)); 56#endif 57 58 FREERDP_API INT32 progressive_decompress_ex(PROGRESSIVE_CONTEXT* progressive, 59 const BYTE* pSrcData, UINT32 SrcSize, 60 BYTE* pDstData, UINT32 DstFormat, UINT32 nDstStep, 61 UINT32 nXDst, UINT32 nYDst, REGION16* invalidRegion, 62 UINT16 surfaceId, UINT32 frameId); 63 64 FREERDP_API INT32 progressive_create_surface_context(PROGRESSIVE_CONTEXT* progressive, 65 UINT16 surfaceId, UINT32 width, 66 UINT32 height); 67 FREERDP_API int progressive_delete_surface_context(PROGRESSIVE_CONTEXT* progressive, 68 UINT16 surfaceId); 69 70 FREERDP_API BOOL progressive_context_reset(PROGRESSIVE_CONTEXT* progressive); 71 72 FREERDP_API PROGRESSIVE_CONTEXT* progressive_context_new(BOOL Compressor); 73 FREERDP_API void progressive_context_free(PROGRESSIVE_CONTEXT* progressive); 74 75#ifdef __cplusplus 76} 77#endif 78 79#endif /* FREERDP_CODEC_PROGRESSIVE_H */