aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2026-01-24 21:21:17 +0000
committerJan Beich <jbeich@FreeBSD.org>2026-01-24 22:16:45 +0000
commitf96400339bd602079db2daee658f6ec00dca5a41 (patch)
treef0549affa4da7a2f935aacd59789cbcfd84a87bf
parent4b390bd6db0a87c8a17416c44b5acf3049e53b90 (diff)
multimedia/gstreamer1-plugins-svt-av1: switch to GStreamer upstream
-rw-r--r--multimedia/gstreamer1-plugins-bad/files/patch-ext_svtav1_gstsvtav1enc.c100
-rw-r--r--multimedia/gstreamer1-plugins-svt-av1/Makefile28
-rw-r--r--multimedia/gstreamer1-plugins-svt-av1/distinfo3
-rw-r--r--multimedia/gstreamer1-plugins-svt-av1/files/patch-gstsvtav1enc.c42
-rw-r--r--multimedia/gstreamer1-plugins-svt-av1/pkg-descr2
-rw-r--r--multimedia/gstreamer1-plugins-svt-av1/pkg-plist1
6 files changed, 109 insertions, 67 deletions
diff --git a/multimedia/gstreamer1-plugins-bad/files/patch-ext_svtav1_gstsvtav1enc.c b/multimedia/gstreamer1-plugins-bad/files/patch-ext_svtav1_gstsvtav1enc.c
new file mode 100644
index 000000000000..21eece4866de
--- /dev/null
+++ b/multimedia/gstreamer1-plugins-bad/files/patch-ext_svtav1_gstsvtav1enc.c
@@ -0,0 +1,100 @@
+https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/a6cdd54b4d8f
+
+--- ext/svtav1/gstsvtav1enc.c.orig 2025-12-25 14:44:26 UTC
++++ 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 pr
+ #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 pr
+ #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 */
diff --git a/multimedia/gstreamer1-plugins-svt-av1/Makefile b/multimedia/gstreamer1-plugins-svt-av1/Makefile
index 04df0f0c3443..f7f78080ea15 100644
--- a/multimedia/gstreamer1-plugins-svt-av1/Makefile
+++ b/multimedia/gstreamer1-plugins-svt-av1/Makefile
@@ -1,28 +1,16 @@
-PORTNAME= svt-av1
-DISTVERSIONPREFIX= v
-DISTVERSION= 3.1.0
-PORTREVISION= 1
+PORTREVISION= 0
+PORTEPOCH= 1
CATEGORIES= multimedia
-PKGNAMEPREFIX= gstreamer1-plugins-
-MAINTAINER= jbeich@FreeBSD.org
COMMENT= GStreamer (svt-av1) plugin
-WWW= https://01.org/svt
-
-LICENSE= LGPL21+ # based on SPDX header
-LICENSE_FILE= ${_LICENSE_STORE}/LGPL21
LIB_DEPENDS= libSvtAv1Enc.so:multimedia/svt-av1
-USES= gnome gstreamer meson pkgconfig
-USE_GITLAB= yes
-USE_GNOME= glib20
-GL_ACCOUNT= AOMediaCodec
-GL_PROJECT= SVT-AV1
-WRKSRC_SUBDIR= gstreamer-plugin
-PLIST_FILES= lib/gstreamer-1.0/libgstsvtav1enc.so
+MASTERDIR= ${.CURDIR:H:H}/multimedia/gstreamer1-plugins
+
+PLIST= ${.CURDIR}/pkg-plist
-post-patch:
- @${REINPLACE_CMD} '/-O2/d' ${WRKSRC}/meson.build
+DIST= bad
+GST_PLUGIN= svtav1
-.include <bsd.port.mk>
+.include "${MASTERDIR}/Makefile"
diff --git a/multimedia/gstreamer1-plugins-svt-av1/distinfo b/multimedia/gstreamer1-plugins-svt-av1/distinfo
deleted file mode 100644
index 524cd47da53c..000000000000
--- a/multimedia/gstreamer1-plugins-svt-av1/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-TIMESTAMP = 1753481056
-SHA256 (SVT-AV1-v3.1.0.tar.bz2) = 8231b63ea6c50bae46a019908786ebfa2696e5743487270538f3c25fddfa215a
-SIZE (SVT-AV1-v3.1.0.tar.bz2) = 10203101
diff --git a/multimedia/gstreamer1-plugins-svt-av1/files/patch-gstsvtav1enc.c b/multimedia/gstreamer1-plugins-svt-av1/files/patch-gstsvtav1enc.c
deleted file mode 100644
index 08d80231b203..000000000000
--- a/multimedia/gstreamer1-plugins-svt-av1/files/patch-gstsvtav1enc.c
+++ /dev/null
@@ -1,42 +0,0 @@
-https://gitlab.com/AOMediaCodec/SVT-AV1/-/issues/2252
-https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/a6cdd54b4d8f
-
---- gstsvtav1enc.c.orig 2025-02-20 14:51:11 UTC
-+++ gstsvtav1enc.c
-@@ -277,7 +277,7 @@ static void gst_svtav1enc_class_init(GstSvtAv1EncClass
- PROP_TARGET_SOCKET,
- g_param_spec_int("target-socket",
- "Target socket",
-- "Target CPU socket to run on. -1: all available",
-+ "Deprecated. This property is ignored in SVT-AV1 4.0.0 and later.",
- -1,
- 15,
- PROP_TARGET_SOCKET_DEFAULT,
-@@ -434,7 +434,7 @@ static gboolean gst_svtav1enc_configure_svt(GstSvtAv1E
- 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;
-- svtav1enc->svt_config->enable_adaptive_quantization = false;
-+ svtav1enc->svt_config->aq_mode = 0;
- svtav1enc->svt_config->force_key_frames = true;
- } else {
- GST_DEBUG_OBJECT(svtav1enc, "Using default rate control settings");
-@@ -442,7 +442,6 @@ static gboolean gst_svtav1enc_configure_svt(GstSvtAv1E
- svtav1enc->svt_config->intra_period_length = svtav1enc->intra_period_length;
- svtav1enc->svt_config->intra_refresh_type = svtav1enc->intra_refresh_type;
- svtav1enc->svt_config->level_of_parallelism = svtav1enc->level_of_parallelism;
-- svtav1enc->svt_config->target_socket = svtav1enc->target_socket;
- gst_svtav1enc_parse_parameters_string(svtav1enc);
-
- /* set properties out of GstVideoInfo */
-@@ -535,10 +534,8 @@ static gboolean gst_svtav1enc_configure_svt(GstSvtAv1E
- svtav1enc->svt_config->mastering_display.white_point.y = master_display_info.white_point.y;
- svtav1enc->svt_config->mastering_display.max_luma = master_display_info.max_display_mastering_luminance;
- svtav1enc->svt_config->mastering_display.min_luma = master_display_info.min_display_mastering_luminance;
-- svtav1enc->svt_config->high_dynamic_range_input = true;
- } else {
- memset(&svtav1enc->svt_config->mastering_display, 0, sizeof(svtav1enc->svt_config->mastering_display));
-- svtav1enc->svt_config->high_dynamic_range_input = false;
- }
-
- GstVideoContentLightLevel content_light_level;
diff --git a/multimedia/gstreamer1-plugins-svt-av1/pkg-descr b/multimedia/gstreamer1-plugins-svt-av1/pkg-descr
deleted file mode 100644
index 6bf650ee6a9c..000000000000
--- a/multimedia/gstreamer1-plugins-svt-av1/pkg-descr
+++ /dev/null
@@ -1,2 +0,0 @@
-This plugin provides svtav1enc element to GStreamer in order to use
-the Scalable Video Technology for AV1 Encoder.
diff --git a/multimedia/gstreamer1-plugins-svt-av1/pkg-plist b/multimedia/gstreamer1-plugins-svt-av1/pkg-plist
new file mode 100644
index 000000000000..dad41774aad5
--- /dev/null
+++ b/multimedia/gstreamer1-plugins-svt-av1/pkg-plist
@@ -0,0 +1 @@
+lib/gstreamer-%%VERSION%%/libgstsvtav1.so