x264: make threads configurable
Closes: #3366 (cherry picked from commit e6f5e3b0b59feaa08873c0406f85e5a8632881c7)
This commit is contained in:
@@ -9,6 +9,7 @@ vbv_max_bitrate = 0
|
||||
vbv_buffer_size = 0
|
||||
fps_num = 24
|
||||
fps_den = 1
|
||||
threads = 1
|
||||
|
||||
[x264.lan]
|
||||
[x264.wan]
|
||||
|
||||
@@ -9,6 +9,7 @@ vbv_max_bitrate = 0
|
||||
vbv_buffer_size = 0
|
||||
fps_num = 24
|
||||
fps_den = 1
|
||||
threads = 1
|
||||
|
||||
[x264.lan]
|
||||
[x264.wan]
|
||||
|
||||
@@ -9,6 +9,7 @@ vbv_max_bitrate = 0
|
||||
vbv_buffer_size = 0
|
||||
fps_num = 24
|
||||
fps_den = 1
|
||||
threads = 1
|
||||
|
||||
[x264.lan]
|
||||
[x264.wan]
|
||||
|
||||
@@ -9,6 +9,7 @@ vbv_max_bitrate = 0
|
||||
vbv_buffer_size = 0
|
||||
fps_num = 24
|
||||
fps_den = 1
|
||||
threads = 1
|
||||
|
||||
[x264.lan]
|
||||
[x264.wan]
|
||||
|
||||
@@ -9,6 +9,7 @@ vbv_max_bitrate = 0
|
||||
vbv_buffer_size = 0
|
||||
fps_num = 24
|
||||
fps_den = 1
|
||||
threads = 1
|
||||
|
||||
[x264.lan]
|
||||
[x264.wan]
|
||||
|
||||
@@ -9,6 +9,7 @@ vbv_max_bitrate = 0
|
||||
vbv_buffer_size = 0
|
||||
fps_num = 24
|
||||
fps_den = 1
|
||||
threads = 1
|
||||
|
||||
[x264.lan]
|
||||
[x264.wan]
|
||||
|
||||
@@ -19,6 +19,7 @@ vbv_max_bitrate = 0
|
||||
vbv_buffer_size = 0
|
||||
fps_num = 60
|
||||
fps_den = 1
|
||||
threads = 1
|
||||
|
||||
[x264.lan]
|
||||
# inherits default
|
||||
|
||||
@@ -19,6 +19,7 @@ vbv_max_bitrate = 0
|
||||
vbv_buffer_size = 0
|
||||
fps_num = 60
|
||||
fps_den = 1
|
||||
threads = 1
|
||||
|
||||
[x264.lan]
|
||||
# inherits default
|
||||
|
||||
@@ -19,6 +19,7 @@ vbv_max_bitrate = 0
|
||||
vbv_buffer_size = 0
|
||||
fps_num = 60
|
||||
fps_den = 1
|
||||
threads = 1
|
||||
|
||||
[x264.lan]
|
||||
# inherits default
|
||||
|
||||
@@ -19,6 +19,7 @@ vbv_max_bitrate = 0
|
||||
vbv_buffer_size = 0
|
||||
fps_num = 60
|
||||
fps_den = 1
|
||||
threads = 1
|
||||
|
||||
[x264.lan]
|
||||
# inherits default
|
||||
|
||||
@@ -19,6 +19,7 @@ vbv_max_bitrate = 0
|
||||
vbv_buffer_size = 0
|
||||
fps_num = 60
|
||||
fps_den = 1
|
||||
threads = 1 # recommended: 1 or 2, see `man gfx.toml` for details
|
||||
|
||||
[x264.lan]
|
||||
# inherits default
|
||||
|
||||
@@ -153,7 +153,7 @@ xrdp_encoder_x264_encode(void *handle, int session, int left, int top,
|
||||
x264_param_default_preset(&(xe->x264_params),
|
||||
xg->x264_param[ct].preset,
|
||||
xg->x264_param[ct].tune);
|
||||
xe->x264_params.i_threads = 1;
|
||||
xe->x264_params.i_threads = xg->x264_param[ct].threads;
|
||||
xe->x264_params.i_width = (width + 15) & ~15;
|
||||
xe->x264_params.i_height = (height + 15) & ~15;
|
||||
xe->x264_params.i_fps_num = xg->x264_param[ct].fps_num;
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
#define X264_DEFAULT_PROFILE "main"
|
||||
#define X264_DEFAULT_FPS_NUM 24
|
||||
#define X264_DEFAULT_FPS_DEN 1
|
||||
#define X264_DEFAULT_THREADS 1 /* not to exhaust CPU threads for 1 user */
|
||||
|
||||
const char *
|
||||
tconfig_codec_order_to_str(
|
||||
@@ -334,6 +335,33 @@ tconfig_load_gfx_x264_ct(toml_table_t *tfile, const int connection_type,
|
||||
param[connection_type].fps_den = X264_DEFAULT_FPS_DEN;
|
||||
}
|
||||
|
||||
/* threads */
|
||||
datum = toml_int_in(x264_ct, "threads");
|
||||
if (datum.ok)
|
||||
{
|
||||
if (datum.u.i >= 0)
|
||||
{
|
||||
param[connection_type].threads = datum.u.i;
|
||||
}
|
||||
else
|
||||
{
|
||||
TCLOG(LOG_LEVEL_WARNING,
|
||||
"[x264.%s] an invalid value (< 0) is specified for threads, "
|
||||
"adopting the default value [%d]",
|
||||
rdpbcgr_connection_type_names[connection_type],
|
||||
X264_DEFAULT_THREADS);
|
||||
param[connection_type].threads = X264_DEFAULT_THREADS;
|
||||
}
|
||||
}
|
||||
else if (connection_type == 0)
|
||||
{
|
||||
TCLOG(LOG_LEVEL_WARNING,
|
||||
"[x264.%s] threads is not set, adopting the default value [%d]",
|
||||
rdpbcgr_connection_type_names[connection_type],
|
||||
X264_DEFAULT_THREADS);
|
||||
param[connection_type].threads = X264_DEFAULT_THREADS;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -42,6 +42,7 @@ struct xrdp_tconfig_gfx_x264_param
|
||||
int vbv_buffer_size;
|
||||
int fps_num;
|
||||
int fps_den;
|
||||
int threads;
|
||||
};
|
||||
|
||||
struct xrdp_tconfig_gfx_openh264_param
|
||||
|
||||
Reference in New Issue
Block a user