20#ifndef FREERDP_CODEC_VIDEO_H
21#define FREERDP_CODEC_VIDEO_H
23#include <freerdp/api.h>
24#include <freerdp/types.h>
25#include <winpr/stream.h>
32 typedef struct s_FREERDP_VIDEO_CONTEXT FREERDP_VIDEO_CONTEXT;
43 FREERDP_VIDEO_FORMAT_NONE = 0,
46 FREERDP_VIDEO_FORMAT_MJPEG,
47 FREERDP_VIDEO_FORMAT_H264,
50 FREERDP_VIDEO_FORMAT_YUV420P,
51 FREERDP_VIDEO_FORMAT_NV12,
54 FREERDP_VIDEO_FORMAT_YUYV422,
57 FREERDP_VIDEO_FORMAT_RGB24,
58 FREERDP_VIDEO_FORMAT_RGB32,
59 } FREERDP_VIDEO_FORMAT;
67 FREERDP_API
void freerdp_video_context_free(FREERDP_VIDEO_CONTEXT* context);
77 WINPR_ATTR_MALLOC(freerdp_video_context_free, 1)
78 FREERDP_API FREERDP_VIDEO_CONTEXT* freerdp_video_context_new(UINT32 width, UINT32 height);
87 FREERDP_API BOOL freerdp_video_available(
void);
98 FREERDP_API BOOL freerdp_video_conversion_supported(FREERDP_VIDEO_FORMAT srcFormat,
99 FREERDP_VIDEO_FORMAT dstFormat);
122 FREERDP_API BOOL freerdp_video_context_reconfigure(FREERDP_VIDEO_CONTEXT* context, UINT32 width,
123 UINT32 height, UINT32 framerate,
124 UINT32 bitrate, UINT32 usageType);
167 FREERDP_API BOOL freerdp_video_sample_convert(FREERDP_VIDEO_CONTEXT* context,
168 FREERDP_VIDEO_FORMAT srcFormat,
169 const
void* srcSampleData,
size_t srcSampleLength,
170 FREERDP_VIDEO_FORMAT dstFormat,
wStream* output);