summaryrefslogtreecommitdiff
path: root/user/gstreamer
diff options
context:
space:
mode:
Diffstat (limited to 'user/gstreamer')
-rw-r--r--user/gstreamer/APKBUILD25
-rw-r--r--user/gstreamer/disable-tests.patch24
-rw-r--r--user/gstreamer/test-deadlock.patch140
-rw-r--r--user/gstreamer/time64.patch60
4 files changed, 9 insertions, 240 deletions
diff --git a/user/gstreamer/APKBUILD b/user/gstreamer/APKBUILD
index 94c5af1c9..7ee893c50 100644
--- a/user/gstreamer/APKBUILD
+++ b/user/gstreamer/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=gstreamer
-pkgver=1.20.1
+pkgver=1.26.1
pkgrel=0
pkgdesc="GStreamer multimedia framework"
url="https://gstreamer.freedesktop.org/"
@@ -9,16 +9,12 @@ license="LGPL-2.0+"
depends=""
depends_dev="libxml2-dev"
makedepends="$depends_dev bison flex gobject-introspection-dev glib-dev
- meson ninja"
+ meson"
subpackages="$pkgname-dev $pkgname-doc $pkgname-tools $pkgname-lang"
-source="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-$pkgver.tar.xz
- disable-tests.patch
- test-deadlock.patch
- time64.patch
- "
+source="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-$pkgver.tar.xz"
build() {
- meson \
+ meson setup \
-Dprefix=/usr \
-Dintrospection=enabled \
-Dpackage-name="GStreamer (${DISTRO_NAME:-Adélie Linux})" \
@@ -26,16 +22,16 @@ build() {
-Dglib-asserts=disabled \
-Dnls=enabled \
-Dptp-helper-permissions=none \
- _build
- ninja -C _build
+ build
+ meson compile -C build
}
check() {
- ninja -C _build test
+ meson test -C build
}
package() {
- DESTDIR="$pkgdir" ninja -C _build install
+ DESTDIR="$pkgdir" meson install -C build
}
dev() {
@@ -55,7 +51,4 @@ tools() {
mv "$pkgdir"/usr/lib/libgstcheck-1.0.so.* "$subpkgdir"/usr/lib/
}
-sha512sums="d6f67cce81ba15fba3fcf70850e3c84b25e8da3e53fd56e6f2c87c7ee1701071ea44deb754a0ea371b3cb17877f26aab94d9eccb6729cbb370d6d6d5c324aa1a gstreamer-1.20.1.tar.xz
-39e6bfb52ebe85beefa2550eb404f83c5bbb3546cc1733b99e757401d2d182f95d829b90df99d5f43506d7c85d4f44ac797f35653cd42a935f1dc56d0b844c02 disable-tests.patch
-d7e574e8715607d3103d46eb05388b781702a9e937d78f8cfab6d8d48d04baa7fbfe547bdeb816bbfddb5a333dd1862e460b057b12ea24704351ef5653f78491 test-deadlock.patch
-977a9e689cce68b151a742ef67dbb60a10a55fcfae67f086909e1f0fc4a5998026acd03aeed32068fdb0485dd884c4313f39a63e3bab5baaafa878c439531bc3 time64.patch"
+sha512sums="7a5da377fbfb25cacc2d9613a57210c00ca70ee00f3ef4d108a3c98bd6a2cb703b773ca6fd6d9ac7b59b60d0bf0573cff69bdea18e07159ac56ee992613d0a78 gstreamer-1.26.1.tar.xz"
diff --git a/user/gstreamer/disable-tests.patch b/user/gstreamer/disable-tests.patch
deleted file mode 100644
index 7fc78e9e4..000000000
--- a/user/gstreamer/disable-tests.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-elements_leaks:
- Fails due to heavy parallelisation on ppc64.
- It always succeeds when run serially.
-
-elements_filesink:
- Seems to be disabled on other musl distros as well.
- Filed at: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1194
-
---- gstreamer-1.20.1/tests/check/meson.build.old 2022-03-14 06:33:40.000000000 -0500
-+++ gstreamer-1.20.1/tests/check/meson.build 2022-05-02 01:55:00.352168066 -0500
-@@ -84,11 +84,11 @@
- [ 'elements/fakesrc.c', not gst_registry ],
- # FIXME: blocked forever on Windows due to missing fcntl (.. O_NONBLOCK)
- [ 'elements/fdsrc.c', not gst_registry or host_system == 'windows' ],
-- [ 'elements/filesink.c', not gst_registry ],
-+ [ 'elements/filesink.c', true ],
- [ 'elements/filesrc.c', not gst_registry ],
- [ 'elements/funnel.c', not gst_registry ],
- [ 'elements/identity.c', not gst_registry or not gst_parse ],
-- [ 'elements/leaks.c', not tracer_hooks or not gst_debug ],
-+ [ 'elements/leaks.c', true ],
- [ 'elements/multiqueue.c', not gst_registry ],
- [ 'elements/selector.c', not gst_registry ],
- [ 'elements/streamiddemux.c', not gst_registry ],
diff --git a/user/gstreamer/test-deadlock.patch b/user/gstreamer/test-deadlock.patch
deleted file mode 100644
index b506ca19f..000000000
--- a/user/gstreamer/test-deadlock.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-From f24595e9d7952e1e957c0973de62e6c3df031c08 Mon Sep 17 00:00:00 2001
-From: Jose Quaresma <quaresma.jose@gmail.com>
-Date: Sun, 20 Feb 2022 23:26:10 +0000
-Subject: [PATCH 1/3] gstreamer: tests: make the gstbin pop message more clear
-
-Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
----
- tests/check/gst/gstbin.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/tests/check/gst/gstbin.c b/tests/check/gst/gstbin.c
-index e366d5fe20f..06be4c75fbb 100644
---- a/tests/check/gst/gstbin.c
-+++ b/tests/check/gst/gstbin.c
-@@ -38,7 +38,7 @@ pop_async_done (GstBus * bus)
- == GST_MESSAGE_ASYNC_DONE, "did not get GST_MESSAGE_ASYNC_DONE");
-
- gst_message_unref (message);
-- GST_DEBUG ("popped message");
-+ GST_DEBUG ("popped async-done message");
- }
-
- static void
-@@ -46,14 +46,14 @@ pop_latency (GstBus * bus)
- {
- GstMessage *message;
-
-- GST_DEBUG ("popping async-done message");
-+ GST_DEBUG ("popping latency message");
- message = gst_bus_poll (bus, GST_MESSAGE_LATENCY, -1);
-
- fail_unless (message && GST_MESSAGE_TYPE (message)
- == GST_MESSAGE_LATENCY, "did not get GST_MESSAGE_LATENCY");
-
- gst_message_unref (message);
-- GST_DEBUG ("popped message");
-+ GST_DEBUG ("popped latency message");
- }
-
- static void
-@@ -63,7 +63,7 @@ pop_state_changed (GstBus * bus, int count)
-
- int i;
-
-- GST_DEBUG ("popping %d messages", count);
-+ GST_DEBUG ("popping %d state-changed message", count);
- for (i = 0; i < count; ++i) {
- message = gst_bus_poll (bus, GST_MESSAGE_STATE_CHANGED, -1);
-
-@@ -72,7 +72,7 @@ pop_state_changed (GstBus * bus, int count)
-
- gst_message_unref (message);
- }
-- GST_DEBUG ("popped %d messages", count);
-+ GST_DEBUG ("popped %d state-changed messages", count);
- }
-
- static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
---
-GitLab
-
-
-From 2c47f61c69702572bf666ad9ecaf59710f4a342c Mon Sep 17 00:00:00 2001
-From: Jose Quaresma <quaresma.jose@gmail.com>
-Date: Sun, 20 Feb 2022 23:28:00 +0000
-Subject: [PATCH 2/3] gstreamer: tests: add a timeout in gstbin pop functions
- instaed of wait forever
-
-Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
----
- tests/check/gst/gstbin.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/tests/check/gst/gstbin.c b/tests/check/gst/gstbin.c
-index 06be4c75fbb..c837d0e7e8a 100644
---- a/tests/check/gst/gstbin.c
-+++ b/tests/check/gst/gstbin.c
-@@ -32,7 +32,7 @@ pop_async_done (GstBus * bus)
- GstMessage *message;
-
- GST_DEBUG ("popping async-done message");
-- message = gst_bus_poll (bus, GST_MESSAGE_ASYNC_DONE, -1);
-+ message = gst_bus_poll (bus, GST_MESSAGE_ASYNC_DONE, GST_SECOND);
-
- fail_unless (message && GST_MESSAGE_TYPE (message)
- == GST_MESSAGE_ASYNC_DONE, "did not get GST_MESSAGE_ASYNC_DONE");
-@@ -47,7 +47,7 @@ pop_latency (GstBus * bus)
- GstMessage *message;
-
- GST_DEBUG ("popping latency message");
-- message = gst_bus_poll (bus, GST_MESSAGE_LATENCY, -1);
-+ message = gst_bus_poll (bus, GST_MESSAGE_LATENCY, GST_SECOND);
-
- fail_unless (message && GST_MESSAGE_TYPE (message)
- == GST_MESSAGE_LATENCY, "did not get GST_MESSAGE_LATENCY");
-@@ -65,7 +65,7 @@ pop_state_changed (GstBus * bus, int count)
-
- GST_DEBUG ("popping %d state-changed message", count);
- for (i = 0; i < count; ++i) {
-- message = gst_bus_poll (bus, GST_MESSAGE_STATE_CHANGED, -1);
-+ message = gst_bus_poll (bus, GST_MESSAGE_STATE_CHANGED, GST_SECOND);
-
- fail_unless (message && GST_MESSAGE_TYPE (message)
- == GST_MESSAGE_STATE_CHANGED, "did not get GST_MESSAGE_STATE_CHANGED");
---
-GitLab
-
-
-From 686add28e21ae0031f9e3b07f9fb5cd4d5d19bc5 Mon Sep 17 00:00:00 2001
-From: Jose Quaresma <quaresma.jose@gmail.com>
-Date: Mon, 21 Feb 2022 23:06:07 +0000
-Subject: [PATCH 3/3] gstreamer: tests: fix gstbin deadlock
-
-this is a bit ugly but if the latency message is lost
-the pop_latency will hang forever.
-
-Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/778
-
-Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
----
- tests/check/gst/gstbin.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/tests/check/gst/gstbin.c b/tests/check/gst/gstbin.c
-index c837d0e7e8a..5d9a09171aa 100644
---- a/tests/check/gst/gstbin.c
-+++ b/tests/check/gst/gstbin.c
-@@ -741,7 +741,8 @@ GST_START_TEST (test_watch_for_state_change)
- pop_state_changed (bus, 3);
- if (ret == GST_STATE_CHANGE_ASYNC) {
- pop_async_done (bus);
-- pop_latency (bus);
-+ if (gst_bus_have_pending (bus))
-+ pop_latency (bus);
- }
-
- fail_unless (gst_bus_have_pending (bus) == FALSE,
---
-GitLab
-
diff --git a/user/gstreamer/time64.patch b/user/gstreamer/time64.patch
deleted file mode 100644
index 89c88c380..000000000
--- a/user/gstreamer/time64.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 664fc63a246cba97e202f712aa48105f46a9ff69 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
-Date: Mon, 12 Dec 2022 11:34:51 +0200
-Subject: [PATCH] systemclock: Use `futex_time64` syscall on x32 and other
- platforms that always use a 32-bit `struct timespec` for the normal `futex`
- syscall
-
-See also https://gitlab.gnome.org/GNOME/glib/-/issues/2634
----
- gst/gstsystemclock.c | 26 +++++++++++++++++++++-
- 1 file changed, 25 insertions(+), 1 deletion(-)
-
-diff --git a/gst/gstsystemclock.c b/gst/gstsystemclock.c
-index 6d0b6ec47b6..8c396d2c7b4 100644
---- a/gst/gstsystemclock.c
-+++ b/gst/gstsystemclock.c
-@@ -130,7 +130,31 @@ gst_futex_cond_broadcast (guint * cond_val)
- static gboolean
- gst_futex_cond_wait_until (guint * cond_val, GMutex * mutex, gint64 end_time)
- {
-+ /* On x32 (ILP32 ABI on x86_64) and potentially sparc64, the raw futex()
-+ * syscall takes a 32-bit timespan argument *regardless* of whether userspace
-+ * is using 32-bit or 64-bit `struct timespec`. This means that we can’t
-+ * unconditionally pass a `struct timespec` pointer into the syscall.
-+ *
-+ * Assume that any such platform is new enough to define the
-+ * `__NR_futex_time64` workaround syscall (which accepts 64-bit timespecs,
-+ * introduced in kernel 5.1), and use that to pass a 64-bit timespec instead.
-+ *
-+ * `clock_gettime()` on such systems will either return a 32-bit `struct
-+ * timespec`, in which case the values we will get passed in here are
-+ * already not y2038-safe, or `struct timespec` is using 64-bit `time_t` and
-+ * everything is fine.
-+ */
-+#ifdef __NR_futex_time64
-+ struct
-+ {
-+ gint64 tv_sec;
-+ gint64 tv_nsec;
-+ } end;
-+ const long int futex_syscall_id = __NR_futex_time64;
-+#else
- struct timespec end;
-+ const long int futex_syscall_id = __NR_futex;
-+#endif
- guint sampled;
- int res;
- gboolean success;
-@@ -146,7 +170,7 @@ gst_futex_cond_wait_until (guint * cond_val, GMutex * mutex, gint64 end_time)
- /* we use FUTEX_WAIT_BITSET_PRIVATE rather than FUTEX_WAIT_PRIVATE to be
- * able to use absolute time */
- res =
-- syscall (__NR_futex, cond_val, (gsize) FUTEX_WAIT_BITSET_PRIVATE,
-+ syscall (futex_syscall_id, cond_val, (gsize) FUTEX_WAIT_BITSET_PRIVATE,
- (gsize) sampled, &end, NULL, FUTEX_BITSET_MATCH_ANY);
- success = (res < 0 && errno == ETIMEDOUT) ? FALSE : TRUE;
- g_mutex_lock (mutex);
---
-GitLab
-