23#include <winpr/wlog.h>
25#include <freerdp/api.h>
26#include <freerdp/types.h>
27#include <freerdp/channels/rdpgfx.h>
34 typedef struct S_FREERDP_AV1_CONTEXT FREERDP_AV1_CONTEXT;
42 } FREERDP_AV1_RATECONTROL;
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;
53 FREERDP_API BOOL freerdp_av1_context_set_option(FREERDP_AV1_CONTEXT* av1,
54 FREERDP_AV1_CONTEXT_OPTION option,
58 FREERDP_API UINT32 freerdp_av1_context_get_option(FREERDP_AV1_CONTEXT* av1,
59 FREERDP_AV1_CONTEXT_OPTION option);
62 FREERDP_API INT32 freerdp_av1_compress(FREERDP_AV1_CONTEXT* freerdp_av1,
const BYTE* pSrcData,
63 DWORD SrcFormat, UINT32 nSrcStep, UINT32 nSrcWidth,
65 BYTE** ppDstData, UINT32* pDstSize,
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,
75 FREERDP_API BOOL freerdp_av1_context_reset(FREERDP_AV1_CONTEXT* av1, UINT32 width,
78 FREERDP_API
void freerdp_av1_context_free(FREERDP_AV1_CONTEXT* av1);
87 WINPR_ATTR_MALLOC(freerdp_av1_context_free, 1)
88 FREERDP_API FREERDP_AV1_CONTEXT* freerdp_av1_context_new(BOOL Compressor);