FreeRDP
Loading...
Searching...
No Matches
codecs.h
1
20#ifndef FREERDP_CODECS_H
21#define FREERDP_CODECS_H
22
23#include <freerdp/api.h>
24#include <freerdp/types.h>
25#include <freerdp/config.h>
26
27#include <freerdp/codec/color.h>
28
29#if defined(WITH_GFX_AV1)
30#include <freerdp/codec/av1.h>
31#endif
32#include <freerdp/codec/rfx.h>
33#include <freerdp/codec/nsc.h>
34#include <freerdp/codec/h264.h>
35#include <freerdp/codec/clear.h>
36#include <freerdp/codec/planar.h>
37#include <freerdp/codec/interleaved.h>
38#include <freerdp/codec/progressive.h>
39
40typedef enum
41{
42 FREERDP_CODEC_INTERLEAVED = 0x00000001u,
43 FREERDP_CODEC_PLANAR = 0x00000002u,
44 FREERDP_CODEC_NSCODEC = 0x00000004u,
45 FREERDP_CODEC_REMOTEFX = 0x00000008u,
46 FREERDP_CODEC_CLEARCODEC = 0x00000010u,
47 FREERDP_CODEC_ALPHACODEC = 0x00000020u,
48 FREERDP_CODEC_PROGRESSIVE = 0x00000040u,
49 FREERDP_CODEC_AVC420 = 0x00000080u,
50 FREERDP_CODEC_AVC444 = 0x00000100u,
51#if defined(WITH_GFX_AV1)
52 FREERDP_CODEC_AV1_I420 = 0x00000200u,
53 FREERDP_CODEC_AV1_I444 = 0x00000400u,
54#endif
55 FREERDP_CODEC_ALL = 0x7FFFFFFFu /* C enum types are restricted to int */
56} FreeRDP_CodecFlags;
57
58#ifdef __cplusplus
59extern "C"
60{
61#endif
62
64 {
65 UINT32 ThreadingFlags;
67 RFX_CONTEXT* rfx;
68 NSC_CONTEXT* nsc;
69 H264_CONTEXT* h264;
70 CLEAR_CONTEXT* clear;
71 PROGRESSIVE_CONTEXT* progressive;
72 BITMAP_PLANAR_CONTEXT* planar;
73 BITMAP_INTERLEAVED_CONTEXT* interleaved;
74 };
75 typedef struct rdp_codecs rdpCodecs;
76
77 WINPR_ATTR_NODISCARD
78 FREERDP_API BOOL freerdp_client_codecs_prepare(rdpCodecs* codecs, UINT32 flags, UINT32 width,
79 UINT32 height);
80
81 WINPR_ATTR_NODISCARD
82 FREERDP_API BOOL freerdp_client_codecs_reset(rdpCodecs* codecs, UINT32 flags, UINT32 width,
83 UINT32 height);
84
90 FREERDP_API void freerdp_client_codecs_free(rdpCodecs* codecs);
91
97 WINPR_ATTR_MALLOC(freerdp_client_codecs_free, 1)
98 FREERDP_API rdpCodecs* freerdp_client_codecs_new(UINT32 ThreadingFlags);
99
100#if !defined(WITHOUT_FREERDP_3x_DEPRECATED)
101 WINPR_DEPRECATED_VAR("[since 3.6.0] Use freerdp_client_codecs_free",
102 FREERDP_API void codecs_free(rdpCodecs* codecs));
103
104 WINPR_DEPRECATED_VAR(
105 "[since 3.6.0] Use freerdp_client_codecs_new",
106 WINPR_ATTR_MALLOC(codecs_free, 1)
107 WINPR_ATTR_NODISCARD FREERDP_API rdpCodecs* codecs_new(rdpContext* context));
108#endif
109
115 WINPR_ATTR_NODISCARD
116 FREERDP_API const char* freerdp_codec_id_to_str(UINT32 id);
117
118#ifdef __cplusplus
119}
120#endif
121
122#endif /* FREERDP_CODECS_H */
RFX_CONTEXT * rfx
Definition codecs.h:67