FreeRDP
Loading...
Searching...
No Matches
av1.h
1
21#pragma once
22
23#include <winpr/wlog.h>
24
25#include <freerdp/api.h>
26#include <freerdp/types.h>
27#include <freerdp/channels/rdpgfx.h>
28
29#ifdef __cplusplus
30extern "C"
31{
32#endif
33
34 typedef struct S_FREERDP_AV1_CONTEXT FREERDP_AV1_CONTEXT;
35
36 typedef enum
37 {
38 FREERDP_AV1_VBR,
39 FREERDP_AV1_CBR,
40 FREERDP_AV1_CQ,
41 FREERDP_AV1_Q
42 } FREERDP_AV1_RATECONTROL;
43
44 typedef enum
45 {
46 FREERDP_AV1_CONTEXT_OPTION_PROFILE,
47 FREERDP_AV1_CONTEXT_OPTION_RATECONTROL,
48 FREERDP_AV1_CONTEXT_OPTION_BITRATE,
49 FREERDP_AV1_CONTEXT_OPTION_USAGETYPE
50 } FREERDP_AV1_CONTEXT_OPTION;
51
52 WINPR_ATTR_NODISCARD
53 FREERDP_API BOOL freerdp_av1_context_set_option(FREERDP_AV1_CONTEXT* av1,
54 FREERDP_AV1_CONTEXT_OPTION option,
55 UINT32 value);
56
57 WINPR_ATTR_NODISCARD
58 FREERDP_API UINT32 freerdp_av1_context_get_option(FREERDP_AV1_CONTEXT* av1,
59 FREERDP_AV1_CONTEXT_OPTION option);
60
61 WINPR_ATTR_NODISCARD
62 FREERDP_API INT32 freerdp_av1_compress(FREERDP_AV1_CONTEXT* freerdp_av1, const BYTE* pSrcData,
63 DWORD SrcFormat, UINT32 nSrcStep, UINT32 nSrcWidth,
64 UINT32 nSrcHeight, const RECTANGLE_16* regionRect,
65 BYTE** ppDstData, UINT32* pDstSize,
67
68 WINPR_ATTR_NODISCARD
69 FREERDP_API INT32 freerdp_av1_decompress(FREERDP_AV1_CONTEXT* freerdp_av1, const BYTE* pSrcData,
70 UINT32 SrcSize, BYTE* pDstData, DWORD DstFormat,
71 UINT32 nDstStep, UINT32 nDstWidth, UINT32 nDstHeight,
72 const RECTANGLE_16* regionRects, UINT32 numRegionRect);
73
74 WINPR_ATTR_NODISCARD
75 FREERDP_API BOOL freerdp_av1_context_reset(FREERDP_AV1_CONTEXT* av1, UINT32 width,
76 UINT32 height);
77
78 FREERDP_API void freerdp_av1_context_free(FREERDP_AV1_CONTEXT* av1);
79
87 WINPR_ATTR_MALLOC(freerdp_av1_context_free, 1)
88 FREERDP_API FREERDP_AV1_CONTEXT* freerdp_av1_context_new(BOOL Compressor);
89
90#ifdef __cplusplus
91}
92#endif