Configure H.264 encoder settings.
Configure H.264 encoder settingsMust be called before the first encoding operation. Should be called again to reconfigure encoding settings (will reset encoder only if settings differ).
FREERDP_VIDEO_CONTEXT* ctx = freerdp_video_context_new(1920, 1080); freerdp_video_context_reconfigure(ctx, 1920, 1080, 30, 0,
H264_CAMERA_VIDEO_REAL_TIME);
#ifndef FREERDP_CODEC_VIDEO_H
#define FREERDP_CODEC_VIDEO_H
#include <freerdp/api.h>
#include <freerdp/types.h>
#include <winpr/stream.h>
#ifdef __cplusplus
extern "C"
{
#endif
typedef struct s_FREERDP_VIDEO_CONTEXT FREERDP_VIDEO_CONTEXT;
typedef enum
{
FREERDP_VIDEO_FORMAT_NONE = 0,
FREERDP_VIDEO_FORMAT_MJPEG,
FREERDP_VIDEO_FORMAT_H264,
FREERDP_VIDEO_FORMAT_YUV420P,
FREERDP_VIDEO_FORMAT_NV12,
FREERDP_VIDEO_FORMAT_YUYV422,
FREERDP_VIDEO_FORMAT_RGB24,
FREERDP_VIDEO_FORMAT_RGB32,
} FREERDP_VIDEO_FORMAT;
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_video_format_string(UINT32 format);
FREERDP_API void freerdp_video_context_free(FREERDP_VIDEO_CONTEXT* context);
WINPR_ATTR_MALLOC(freerdp_video_context_free, 1)
FREERDP_API FREERDP_VIDEO_CONTEXT* freerdp_video_context_new(UINT32 width, UINT32 height);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_video_available(void);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_video_conversion_supported(FREERDP_VIDEO_FORMAT srcFormat,
FREERDP_VIDEO_FORMAT dstFormat);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_video_context_reconfigure(FREERDP_VIDEO_CONTEXT* context, UINT32 width,
UINT32 height, UINT32 framerate,
UINT32 bitrate, UINT32 usageType);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_video_sample_convert(FREERDP_VIDEO_CONTEXT* context,
FREERDP_VIDEO_FORMAT srcFormat,
const void* srcSampleData, size_t srcSampleLength,
FREERDP_VIDEO_FORMAT dstFormat,
wStream* output);
#ifdef __cplusplus
}
#endif
#endif