FreeRDP
Loading...
Searching...
No Matches
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
27extern "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;
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
context for the video (MS-RDPEVOR) channel