FreeRDP
shadow_encoder.h
1 
19 #ifndef FREERDP_SERVER_SHADOW_ENCODER_H
20 #define FREERDP_SERVER_SHADOW_ENCODER_H
21 
22 #include <winpr/crt.h>
23 #include <winpr/stream.h>
24 
25 #include <freerdp/freerdp.h>
26 #include <freerdp/codecs.h>
27 
28 #include <freerdp/server/shadow.h>
29 
31 {
32  rdpShadowClient* client;
33  rdpShadowServer* server;
34 
35  UINT32 width;
36  UINT32 height;
37  UINT32 codecs;
38 
39  BYTE** grid;
40  UINT32 gridWidth;
41  UINT32 gridHeight;
42  BYTE* gridBuffer;
43  UINT32 maxTileWidth;
44  UINT32 maxTileHeight;
45 
46  wStream* bs;
47 
48  RFX_CONTEXT* rfx;
49  NSC_CONTEXT* nsc;
50  BITMAP_PLANAR_CONTEXT* planar;
51  BITMAP_INTERLEAVED_CONTEXT* interleaved;
52  H264_CONTEXT* h264;
53  PROGRESSIVE_CONTEXT* progressive;
54 
55  UINT32 fps;
56  UINT32 maxFps;
57  BOOL frameAck;
58  UINT32 frameId;
59  UINT32 lastAckframeId;
60  UINT32 queueDepth;
61 };
62 
63 #ifdef __cplusplus
64 extern "C"
65 {
66 #endif
67 
68  int shadow_encoder_reset(rdpShadowEncoder* encoder);
69  int shadow_encoder_prepare(rdpShadowEncoder* encoder, UINT32 codecs);
70  UINT32 shadow_encoder_create_frame_id(rdpShadowEncoder* encoder);
71 
72  void shadow_encoder_free(rdpShadowEncoder* encoder);
73 
74  WINPR_ATTR_MALLOC(shadow_encoder_free, 1)
75  rdpShadowEncoder* shadow_encoder_new(rdpShadowClient* client);
76 
77 #ifdef __cplusplus
78 }
79 #endif
80 
81 #endif /* FREERDP_SERVER_SHADOW_ENCODER_H */