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 +.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