FreeRDP
Loading...
Searching...
No Matches
av2.h
1
18#pragma once
19
20#include <winpr/wlog.h>
21
22#include <freerdp/api.h>
23#include <freerdp/types.h>
24#include <freerdp/channels/rdpgfx.h>
25
26#ifdef __cplusplus
27extern "C"
28{
29#endif
30
31 typedef struct S_FREERDP_AV2_CONTEXT FREERDP_AV2_CONTEXT;
32
34 typedef enum
35 {
36 FREERDP_AV2_VBR,
37 FREERDP_AV2_CBR,
38 FREERDP_AV2_CQ,
39 FREERDP_AV2_Q
40 } FREERDP_AV2_RATECONTROL;
41
43 typedef enum
44 {
45 FREERDP_AV2_CONTEXT_OPTION_PROFILE,
46 FREERDP_AV2_CONTEXT_OPTION_RATECONTROL,
47 FREERDP_AV2_CONTEXT_OPTION_BITRATE,
48 FREERDP_AV2_CONTEXT_OPTION_USAGETYPE
49 } FREERDP_AV2_CONTEXT_OPTION;
50
60 WINPR_ATTR_NODISCARD
61 FREERDP_API BOOL freerdp_av2_context_set_option(FREERDP_AV2_CONTEXT* av2,
62 FREERDP_AV2_CONTEXT_OPTION option,
63 UINT32 value);
64
72 WINPR_ATTR_NODISCARD
73 FREERDP_API UINT32 freerdp_av2_context_get_option(FREERDP_AV2_CONTEXT* av2,
74 FREERDP_AV2_CONTEXT_OPTION option);
75
92 WINPR_ATTR_NODISCARD
93 FREERDP_API INT32 freerdp_av2_compress(FREERDP_AV2_CONTEXT* av2, const BYTE* pSrcData,
94 DWORD SrcFormat, UINT32 nSrcStep, UINT32 nSrcWidth,
95 UINT32 nSrcHeight, const RECTANGLE_16* regionRect,
96 BYTE** ppDstData, UINT32* pDstSize,
98
115 WINPR_ATTR_NODISCARD
116 FREERDP_API INT32 freerdp_av2_decompress(FREERDP_AV2_CONTEXT* av2, const BYTE* pSrcData,
117 UINT32 SrcSize, BYTE* pDstData, DWORD DstFormat,
118 UINT32 nDstStep, UINT32 nDstWidth, UINT32 nDstHeight,
119 const RECTANGLE_16* regionRects, UINT32 numRegionRect);
120
126 WINPR_ATTR_NODISCARD
127 FREERDP_API BOOL freerdp_av2_context_reset(FREERDP_AV2_CONTEXT* av2, UINT32 width,
128 UINT32 height);
129
135 FREERDP_API void freerdp_av2_context_free(FREERDP_AV2_CONTEXT* av2);
136
144 WINPR_ATTR_MALLOC(freerdp_av2_context_free, 1)
145 FREERDP_API FREERDP_AV2_CONTEXT* freerdp_av2_context_new(BOOL Compressor);
146
147#ifdef __cplusplus
148}
149#endif