diff --git a/tests/xrdp/Makefile.am b/tests/xrdp/Makefile.am index 26870bf021..7656584b39 100644 --- a/tests/xrdp/Makefile.am +++ b/tests/xrdp/Makefile.am @@ -83,3 +83,10 @@ test_xrdp_LDADD += \ $(top_builddir)/xrdp/xrdp_encoder_x264.o \ $(XRDP_X264_LIBS) endif + +if XRDP_OPENH264 +AM_CPPFLAGS += -DXRDP_X264 $(XRDP_OPENH264_CFLAGS) +test_xrdp_LDADD += \ + $(top_builddir)/xrdp/xrdp_encoder_openh264.o \ + $(XRDP_OPENH264_LIBS) +endif diff --git a/tests/xrdp/gfx/gfx.toml b/tests/xrdp/gfx/gfx.toml index af3fcf86ed..ef98c4e1f9 100644 --- a/tests/xrdp/gfx/gfx.toml +++ b/tests/xrdp/gfx/gfx.toml @@ -1,40 +1,86 @@ [codec] order = [ "H.264", "RFX" ] +# Specify a preferred H.264 encoder, "x264" or "OpenH264". +# This parameter takes effect only when more than one encoder is +# enabled at compile time. If only one encoder is enabled, the encoder +# will be used regardless the value of this parameter. +h264_encoder = "OpenH264" + +# +# Configurations for x264 +# [x264.default] +# NOTE: x264 specifies bitrate in unit of kbps. preset = "ultrafast" tune = "zerolatency" profile = "main" # profile is forced to baseline if preset == ultrafast vbv_max_bitrate = 0 vbv_buffer_size = 0 -fps_num = 24 +fps_num = 60 fps_den = 1 [x264.lan] # inherits default [x264.wan] -vbv_max_bitrate = 15000 -vbv_buffer_size = 1500 +vbv_max_bitrate = 15_000 +vbv_buffer_size = 1_500 [x264.broadband_high] preset = "superfast" -vbv_max_bitrate = 8000 +vbv_max_bitrate = 8_000 vbv_buffer_Size = 800 [x264.satellite] preset = "superfast" -vbv_max_bitrate = 5000 +vbv_max_bitrate = 5_000 vbv_buffer_size = 500 [x264.broadband_low] preset = "veryfast" -tune = "zerolatency" -vbv_max_bitrate = 1600 +vbv_max_bitrate = 1_600 vbv_buffer_size = 66 [x264.modem] preset = "fast" -tune = "zerolatency" -vbv_max_bitrate = 1200 +vbv_max_bitrate = 1_200 vbv_buffer_size = 50 + +# +# Configurations for OpenH264 +# +[OpenH264.default] +# NOTE: OpenH264 specifies bitrate in unit of bps, not kbps. +EnableFrameSkip = false +TargetBitrate = 20_000_000 +MaxBitrate = 0 # unspecified +MaxFrameRate = 60.0 + +[OpenH264.lan] +# inherits default + +[OpenH264.wan] +TargetBitrate = 10_000_000 +MaxBitrate = 12_000_000 + +[OpenH264.broadband_high] +EnableFrameSkip = true +TargetBitrate = 8_000_000 +MaxBitrate = 10_000_000 + +[OpenH264.satellite] +EnableFrameSkip = true +TargetBitrate = 4_000_000 +MaxBitrate = 6_000_000 + +[OpenH264.broadband_low] +EnableFrameSkip = true +TargetBitrate = 1_600_000 +MaxBitrate = 1_800_000 + +[OpenH264.modem] +EnableFrameSkip = true +TargetBitrate = 600_000 +MaxBitrate = 1_200_000 + diff --git a/tests/xrdp/test_tconfig.c b/tests/xrdp/test_tconfig.c index 81184984d1..1fd29ad691 100644 --- a/tests/xrdp/test_tconfig.c +++ b/tests/xrdp/test_tconfig.c @@ -27,7 +27,7 @@ START_TEST(test_tconfig_gfx_x264_load_basic) ck_assert_str_eq(gfxconfig.x264_param[0].profile, "main"); ck_assert_int_eq(gfxconfig.x264_param[0].vbv_max_bitrate, 0); ck_assert_int_eq(gfxconfig.x264_param[0].vbv_buffer_size, 0); - ck_assert_int_eq(gfxconfig.x264_param[0].fps_num, 24); + ck_assert_int_eq(gfxconfig.x264_param[0].fps_num, 60); ck_assert_int_eq(gfxconfig.x264_param[0].fps_den, 1); } diff --git a/xrdp/xrdp_tconfig.h b/xrdp/xrdp_tconfig.h index 5ab0bf7c7f..263da4d714 100644 --- a/xrdp/xrdp_tconfig.h +++ b/xrdp/xrdp_tconfig.h @@ -26,6 +26,8 @@ #ifndef _XRDP_TCONFIG_H_ #define _XRDP_TCONFIG_H_ +#include "arch.h" + /* The number of connection types in MS-RDPBCGR 2.2.1.3.2 */ #define NUM_CONNECTION_TYPES 7 #define GFX_CONF XRDP_CFG_PATH "/gfx.toml"