mirror of
https://git.freebsd.org/ports.git
synced 2026-06-02 11:08:52 +00:00
multimedia/gstreamer1-plugins-svt-av1: switch to GStreamer upstream
https://gitlab.com/AOMediaCodec/SVT-AV1/-/commit/8ff0c1cd27fb
This commit is contained in:
@@ -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 */
|
||||
@@ -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
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} '/-O2/d' ${WRKSRC}/meson.build
|
||||
PLIST= ${.CURDIR}/pkg-plist
|
||||
|
||||
.include <bsd.port.mk>
|
||||
DIST= bad
|
||||
GST_PLUGIN= svtav1
|
||||
|
||||
.include "${MASTERDIR}/Makefile"
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
TIMESTAMP = 1753481056
|
||||
SHA256 (SVT-AV1-v3.1.0.tar.bz2) = 8231b63ea6c50bae46a019908786ebfa2696e5743487270538f3c25fddfa215a
|
||||
SIZE (SVT-AV1-v3.1.0.tar.bz2) = 10203101
|
||||
@@ -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;
|
||||
@@ -1,2 +0,0 @@
|
||||
This plugin provides svtav1enc element to GStreamer in order to use
|
||||
the Scalable Video Technology for AV1 Encoder.
|
||||
@@ -0,0 +1 @@
|
||||
lib/gstreamer-%%VERSION%%/libgstsvtav1.so
|
||||
Reference in New Issue
Block a user