Submitted by: Xi Ruoyao (xry111 at xry111 dot site) Date: 2026-01-28 Initial Package Version: 1.26.10 Upstream Status: Applied Origin: Upstream Git repository (see From line for SHA); Manually edited to apply with patch -p1. Description: Fixes build with SVT-AV1-4.0.0. From a6cdd54b4d8f283cee21b7f5c60258d672f23f95 Mon Sep 17 00:00:00 2001 From: Christopher Degawa Date: Wed, 14 Jan 2026 19:07:40 -0600 Subject: [PATCH] svtav1enc: handle deprecations from SVT-AV1 4.0.0 `enable_adaptive_quantization` was replaced by `aq_mode` since it's not a boolean. `target_socket` was removed entirely. If someone wants to pin the encoder to a specific socket, they will have to use external means like numactl etc. Signed-off-by: Christopher Degawa Part-of: --- .../gst-plugins-bad/ext/svtav1/gstsvtav1enc.c | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/subprojects/gst-plugins-bad/ext/svtav1/gstsvtav1enc.c b/subprojects/gst-plugins-bad/ext/svtav1/gstsvtav1enc.c index 65e940d43d9..ed82487d19b 100644 --- gst-plugins-bad/ext/svtav1/gstsvtav1enc.c +++ gst-plugins-bad/ext/svtav1/gstsvtav1enc.c @@ -80,7 +80,9 @@ typedef struct _GstSvtAv1Enc #else gint logical_processors; #endif +#if !SVT_AV1_CHECK_VERSION(4, 0, 0) gint target_socket; +#endif gchar *parameters_string; EbBufferHeaderType *input_buf; @@ -132,7 +134,7 @@ enum PROP_INTRA_PERIOD_LENGTH, PROP_INTRA_REFRESH_TYPE, PROP_LOGICAL_PROCESSORS, /// DEPRECATED: should be removed once the minimum version is 3.0.0 - PROP_TARGET_SOCKET, + PROP_TARGET_SOCKET, /// DEPRECATED: should be removed once the minimum version is 4.0.0 PROP_PARAMETERS_STRING, PROP_LEVEL_OF_PARALLELISM, }; @@ -149,7 +151,7 @@ enum #define PROP_INTRA_REFRESH_TYPE_DEFAULT SVT_AV1_KF_REFRESH #define PROP_LEVEL_OF_PARALLELISM_DEFAULT 0 #define PROP_LOGICAL_PROCESSORS_DEFAULT 0 /// DEPRECATED: should be removed once the minimum version is 3.0.0 -#define PROP_TARGET_SOCKET_DEFAULT -1 +#define PROP_TARGET_SOCKET_DEFAULT -1 /// DEPRECATED: should be removed once the minimum version is 4.0.0 #define PROP_PARAMETERS_STRING_DEFAULT NULL #if G_BYTE_ORDER == G_LITTLE_ENDIAN @@ -339,10 +341,12 @@ gst_svtav1enc_class_init (GstSvtAv1EncClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_DEPRECATED)); g_object_class_install_property (gobject_class, - PROP_TARGET_SOCKET, - g_param_spec_int ("target-socket", - "Target socket", + PROP_TARGET_SOCKET, g_param_spec_int ("target-socket", "Target socket", +#if SVT_AV1_CHECK_VERSION(4, 0, 0) + "Deprecated. This property is ignored in SVT-AV1 4.0.0 and later.", +#else "Target CPU socket to run on. -1: all available", +#endif -1, 15, PROP_TARGET_SOCKET_DEFAULT, @@ -378,7 +382,9 @@ gst_svtav1enc_init (GstSvtAv1Enc * svtav1enc) #else svtav1enc->logical_processors = PROP_LOGICAL_PROCESSORS_DEFAULT; #endif +#if !SVT_AV1_CHECK_VERSION(4, 0, 0) svtav1enc->target_socket = PROP_TARGET_SOCKET_DEFAULT; +#endif svtav1enc->parameters_string = PROP_PARAMETERS_STRING_DEFAULT; } @@ -439,7 +445,9 @@ gst_svtav1enc_set_property (GObject * object, guint property_id, #endif break; case PROP_TARGET_SOCKET: +#if !SVT_AV1_CHECK_VERSION(4, 0, 0) svtav1enc->target_socket = g_value_get_int (value); +#endif break; case PROP_PARAMETERS_STRING:{ g_free (svtav1enc->parameters_string); @@ -500,7 +508,9 @@ gst_svtav1enc_get_property (GObject * object, guint property_id, GValue * value, #endif break; case PROP_TARGET_SOCKET: +#if !SVT_AV1_CHECK_VERSION(4, 0, 0) g_value_set_int (value, svtav1enc->target_socket); +#endif break; case PROP_PARAMETERS_STRING: g_value_set_string (value, svtav1enc->parameters_string); @@ -586,7 +596,11 @@ gst_svtav1enc_configure_svt (GstSvtAv1Enc * svtav1enc) GST_DEBUG_OBJECT (svtav1enc, "Enabling CQP mode (qp %u)", svtav1enc->cqp); svtav1enc->svt_config->qp = svtav1enc->cqp; svtav1enc->svt_config->rate_control_mode = SVT_AV1_RC_MODE_CQP_OR_CRF; +#if SVT_AV1_CHECK_VERSION(4, 0, 0) + svtav1enc->svt_config->aq_mode = 0; +#else svtav1enc->svt_config->enable_adaptive_quantization = FALSE; +#endif svtav1enc->svt_config->force_key_frames = TRUE; } else { GST_DEBUG_OBJECT (svtav1enc, "Using default rate control settings"); @@ -598,7 +612,9 @@ gst_svtav1enc_configure_svt (GstSvtAv1Enc * svtav1enc) #else svtav1enc->svt_config->logical_processors = svtav1enc->logical_processors; #endif +#if !SVT_AV1_CHECK_VERSION(4, 0, 0) svtav1enc->svt_config->target_socket = svtav1enc->target_socket; +#endif gst_svtav1enc_parse_parameters_string (svtav1enc); /* set properties out of GstVideoInfo */ -- GitLab