FreeRDP
client/video.h
1 
20 #ifndef FREERDP_CHANNELS_CLIENT_VIDEO_H
21 #define FREERDP_CHANNELS_CLIENT_VIDEO_H
22 
23 #include <freerdp/client/geometry.h>
24 #include <freerdp/channels/video.h>
25 
26 #ifdef __cplusplus
27 extern "C"
28 {
29 #endif
30 
31  typedef struct s_VideoClientContext VideoClientContext;
32  typedef struct s_VideoClientContextPriv VideoClientContextPriv;
33 
35  typedef struct
36  {
37  UINT32 x, y, w, h;
38  UINT32 alignedWidth, alignedHeight;
39  BYTE* data;
40  DWORD format;
41  UINT32 scanline;
42  } VideoSurface;
43 
44  typedef void (*pcVideoTimer)(VideoClientContext* video, UINT64 now);
45  typedef void (*pcVideoSetGeometry)(VideoClientContext* video, GeometryClientContext* geometry);
46  typedef VideoSurface* (*pcVideoCreateSurface)(VideoClientContext* video, UINT32 x, UINT32 y,
47  UINT32 width, UINT32 height);
48  typedef BOOL (*pcVideoShowSurface)(VideoClientContext* video, const VideoSurface* surface,
49  UINT32 destinationWidth, UINT32 destinationHeight);
50  typedef BOOL (*pcVideoDeleteSurface)(VideoClientContext* video, VideoSurface* surface);
51 
54  {
55  void* handle;
56  void* custom;
57  VideoClientContextPriv* priv;
58 
59  pcVideoSetGeometry setGeometry;
60  pcVideoTimer timer;
61  pcVideoCreateSurface createSurface;
62  pcVideoShowSurface showSurface;
63  pcVideoDeleteSurface deleteSurface;
64  };
65 
66  FREERDP_API VideoSurface* VideoClient_CreateCommonContext(size_t size, UINT32 x, UINT32 y,
67  UINT32 w, UINT32 h);
68  FREERDP_API void VideoClient_DestroyCommonContext(VideoSurface* surface);
69 
70 #ifdef __cplusplus
71 }
72 #endif
73 
74 #endif /* FREERDP_CHANNELS_CLIENT_VIDEO_H */
an implementation of surface used by the video channel
Definition: client/video.h:36
context for the video (MS-RDPEVOR) channel
Definition: client/video.h:54