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
const char* freerdp_video_format_string(UINT32 format);
75 FREERDP_API
void freerdp_video_context_free(FREERDP_VIDEO_CONTEXT* context);
85 WINPR_ATTR_MALLOC(freerdp_video_context_free, 1)
86 FREERDP_API FREERDP_VIDEO_CONTEXT* freerdp_video_context_new(UINT32 width, UINT32 height);
95 FREERDP_API BOOL freerdp_video_available(
void);
106 FREERDP_API BOOL freerdp_video_conversion_supported(FREERDP_VIDEO_FORMAT srcFormat,
107 FREERDP_VIDEO_FORMAT dstFormat);
130 FREERDP_API BOOL freerdp_video_context_reconfigure(FREERDP_VIDEO_CONTEXT* context, UINT32 width,
131 UINT32 height, UINT32 framerate,
132 UINT32 bitrate, UINT32 usageType);
175 FREERDP_API BOOL freerdp_video_sample_convert(FREERDP_VIDEO_CONTEXT* context,
176 FREERDP_VIDEO_FORMAT srcFormat,
177 const
void* srcSampleData,
size_t srcSampleLength,
178 FREERDP_VIDEO_FORMAT dstFormat,
wStream* output);