20#include <winpr/wlog.h>
22#include <freerdp/api.h>
23#include <freerdp/types.h>
24#include <freerdp/channels/rdpgfx.h>
31 typedef struct S_FREERDP_HEVC_CONTEXT FREERDP_HEVC_CONTEXT;
40 } FREERDP_HEVC_RATECONTROL;
45 FREERDP_HEVC_CONTEXT_OPTION_PROFILE,
46 FREERDP_HEVC_CONTEXT_OPTION_RATECONTROL,
47 FREERDP_HEVC_CONTEXT_OPTION_BITRATE,
48 FREERDP_HEVC_CONTEXT_OPTION_USAGETYPE,
49 FREERDP_HEVC_CONTEXT_OPTION_HW_ACCEL
50 } FREERDP_HEVC_CONTEXT_OPTION;
62 FREERDP_API BOOL freerdp_hevc_context_set_option(FREERDP_HEVC_CONTEXT* hevc,
63 FREERDP_HEVC_CONTEXT_OPTION option,
74 FREERDP_API UINT32 freerdp_hevc_context_get_option(FREERDP_HEVC_CONTEXT* hevc,
75 FREERDP_HEVC_CONTEXT_OPTION option);
94 FREERDP_API INT32 freerdp_hevc_compress(FREERDP_HEVC_CONTEXT* hevc,
const BYTE* pSrcData,
95 DWORD SrcFormat, UINT32 nSrcStep, UINT32 nSrcWidth,
97 BYTE** ppDstData, UINT32* pDstSize,
117 FREERDP_API INT32 freerdp_hevc_decompress(FREERDP_HEVC_CONTEXT* hevc,
const BYTE* pSrcData,
118 UINT32 SrcSize, BYTE* pDstData, DWORD DstFormat,
119 UINT32 nDstStep, UINT32 nDstWidth, UINT32 nDstHeight,
121 UINT32 numRegionRect);
129 FREERDP_API BOOL freerdp_hevc_context_reset(FREERDP_HEVC_CONTEXT* hevc, UINT32 width,
137 FREERDP_API
void freerdp_hevc_context_free(FREERDP_HEVC_CONTEXT* hevc);
146 WINPR_ATTR_MALLOC(freerdp_hevc_context_free, 1)
147 FREERDP_API FREERDP_HEVC_CONTEXT* freerdp_hevc_context_new(BOOL Compressor);