From 2d041968df25c173c44ad0cedbb2f4125989724d Mon Sep 17 00:00:00 2001 From: Nathan Owens Date: Sun, 15 Nov 2020 10:56:23 -0600 Subject: [PATCH 01/10] gst-libav: update to 1.18.1 --- srcpkgs/gst-libav/template | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/srcpkgs/gst-libav/template b/srcpkgs/gst-libav/template index 715637e6d99..127259e4c38 100644 --- a/srcpkgs/gst-libav/template +++ b/srcpkgs/gst-libav/template @@ -1,6 +1,6 @@ # Template file for 'gst-libav' pkgname=gst-libav -version=1.16.2 +version=1.18.1 revision=1 wrksrc="${pkgname}-${version}" build_style=meson @@ -12,18 +12,10 @@ maintainer="Orphaned " license="LGPL-2.0-or-later" homepage="https://gstreamer.freedesktop.org" distfiles="${homepage}/src/${pkgname}/${pkgname}-${version}.tar.xz" -checksum=c724f612700c15a933c7356fbeabb0bb9571fb5538f8b1b54d4d2d94188deef2 +checksum=39a717bc2613efbbba19df3cf5cacff0987471fc8281ba2c5dcdeaded79c2ed8 case "$XBPS_TARGET_MACHINE" in *-musl) # Required by musl for M_SQRT1_2 CFLAGS="-D_XOPEN_SOURCE" ;; esac - -post_configure() { - case "$XBPS_TARGET_MACHINE" in - x86_64-musl) # compiling with -O3 triggers a gcc bug - sed -i 's/-O3/-O2/g' gst-libs/ext/libav/config.mak - ;; - esac -} From b42716e382c6f4e017311ab2784223e021dca29d Mon Sep 17 00:00:00 2001 From: Nathan Owens Date: Sun, 15 Nov 2020 13:59:27 -0600 Subject: [PATCH 02/10] gst-omx: update to 1.18.1 --- srcpkgs/gst-omx/template | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/srcpkgs/gst-omx/template b/srcpkgs/gst-omx/template index a4d2fad7609..06f1940401f 100644 --- a/srcpkgs/gst-omx/template +++ b/srcpkgs/gst-omx/template @@ -1,27 +1,14 @@ # Template file for 'gst-omx' pkgname=gst-omx -version=1.16.2 +version=1.18.1 revision=1 -build_style=gnu-configure -configure_args="--disable-examples" -hostmakedepends="pkg-config python glib-devel" +build_style=meson +configure_args="-Dexamples=disabled -Dtarget=generic" +hostmakedepends="pkg-config python3 glib-devel" makedepends="gst-plugins-base1-devel" short_desc="GStreamer OpenMAX IL wrapper plugin (1.x)" maintainer="Orphaned " license="LGPL-2.1-only" homepage="https://gstreamer.freedesktop.org" distfiles="${homepage}/src/${pkgname}/${pkgname}-${version}.tar.xz" -checksum=11ed411a2eba75610d72331eeb14ff05e2df28f4fd05cb69225a88bec6d27439 - -case "$XBPS_TARGET_MACHINE" in - i686*|x86_64*|aarch64*|ppc*) - # XXX bellagio target - configure_args+=" --with-omx-target=generic" - ;; - armv[67]*) - configure_args+=" --with-omx-target=rpi" - makedepends+=" rpi-firmware rpi-userland-devel" - export PKG_CONFIG_PATH="$XBPS_CROSS_BASE/opt/vc/lib/pkgconfig" - CFLAGS="-I${XBPS_CROSS_BASE}/opt/vc/include/IL" - ;; -esac +checksum=42a8e0f9518b94655981ede441638f9f9395f4b1b9a4b329f068ee793975a965 From 9fb0c1fb746992aeb7732924b3e2749dd0381c24 Mon Sep 17 00:00:00 2001 From: Nathan Owens Date: Sun, 15 Nov 2020 14:01:55 -0600 Subject: [PATCH 03/10] gstreamer-vaapi: update to 1.18.1 --- srcpkgs/gstreamer-vaapi/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/gstreamer-vaapi/template b/srcpkgs/gstreamer-vaapi/template index 3c3ed86673a..fd8d96ef21e 100644 --- a/srcpkgs/gstreamer-vaapi/template +++ b/srcpkgs/gstreamer-vaapi/template @@ -1,6 +1,6 @@ # Template file for 'gstreamer-vaapi' pkgname=gstreamer-vaapi -version=1.16.2 +version=1.18.1 revision=1 build_style=meson hostmakedepends="pkg-config" @@ -11,4 +11,4 @@ license="LGPL-2.1-or-later" homepage="https://gstreamer.freedesktop.org" changelog="https://raw.githubusercontent.com/GStreamer/gstreamer-vaapi/master/ChangeLog" distfiles="${homepage}/src/gstreamer-vaapi/gstreamer-vaapi-${version}.tar.xz" -checksum=191de7b0ab64a85dd0875c990721e7be95518f60e2a9106beca162004ed7c601 +checksum=400d3c42810b50b4566df03f37319a6bdd758f969560c40147e7d9a3b0e8a6ea From 0065a58541bbd3b6890ddafa5df46530fc6f24e1 Mon Sep 17 00:00:00 2001 From: Nathan Owens Date: Sun, 15 Nov 2020 14:09:41 -0600 Subject: [PATCH 04/10] gst1-python3: update to 1.18.1 --- srcpkgs/gst1-python3/patches/python-3.8.patch | 11 ----------- srcpkgs/gst1-python3/template | 7 +++---- 2 files changed, 3 insertions(+), 15 deletions(-) delete mode 100644 srcpkgs/gst1-python3/patches/python-3.8.patch diff --git a/srcpkgs/gst1-python3/patches/python-3.8.patch b/srcpkgs/gst1-python3/patches/python-3.8.patch deleted file mode 100644 index cbf1a58ea51..00000000000 --- a/srcpkgs/gst1-python3/patches/python-3.8.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- meson.build -+++ meson.build -@@ -24,7 +24,7 @@ pygobject_dep = dependency('pygobject-3.0', fallback: ['pygobject', 'pygobject_d - - pymod = import('python') - python = pymod.find_installation(get_option('python')) --python_dep = python.dependency(required : true) -+python_dep = dependency('python3-embed', required : true) - - python_abi_flags = python.get_variable('ABIFLAGS', '') - pylib_loc = get_option('libpython-dir') diff --git a/srcpkgs/gst1-python3/template b/srcpkgs/gst1-python3/template index 402018c0476..eb6759c3798 100644 --- a/srcpkgs/gst1-python3/template +++ b/srcpkgs/gst1-python3/template @@ -1,10 +1,9 @@ # Template file for 'gst1-python3' pkgname=gst1-python3 -version=1.16.2 -revision=3 +version=1.18.1 +revision=1 wrksrc="gst-python-${version}" build_style=meson -pycompile_module="gi/overrides" hostmakedepends="pkg-config python3" makedepends="libglib-devel python3-devel python3-gobject-devel gst-plugins-base1-devel" depends="python3-gobject" @@ -13,4 +12,4 @@ maintainer="Orphaned " license="LGPL-2.1-or-later" homepage="https://gstreamer.freedesktop.org" distfiles="${homepage}/src/gst-python/gst-python-${version}.tar.xz" -checksum=208df3148d73d9f416d016564737585d8ea763d91201732d44b5fe688c6288a8 +checksum=42b289422f7ab32757670848cf2245c5a8a8b08a665a9cab65ded8d69364f6f6 From e06fa8ff91d48b40c4ce2416bb0921e34d20e922 Mon Sep 17 00:00:00 2001 From: Nathan Owens Date: Sun, 15 Nov 2020 14:26:13 -0600 Subject: [PATCH 05/10] gst1-editing-services: update to 1.18.1 --- srcpkgs/gst1-editing-services/template | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/srcpkgs/gst1-editing-services/template b/srcpkgs/gst1-editing-services/template index a23f876d84b..4353084d233 100644 --- a/srcpkgs/gst1-editing-services/template +++ b/srcpkgs/gst1-editing-services/template @@ -1,8 +1,8 @@ # Template file for 'gst1-editing-services' pkgname=gst1-editing-services -version=1.16.2 +version=1.18.1 revision=1 -wrksrc="${pkgname/gst1/gstreamer}-${version}" +wrksrc="${pkgname/gst1/gst}-${version}" build_style=meson build_helper="gir" configure_args="-Dgtk_doc=disabled" @@ -12,16 +12,15 @@ short_desc="GStreamer 1.x Editing Services" maintainer="Toyam Cox " license="LGPL-2.0-or-later" homepage="https://gstreamer.freedesktop.org" -distfiles="${homepage}/src/${pkgname/gst1/gst}/${pkgname/gst1/gstreamer}-${version}.tar.xz" -checksum=0e06a6191a0c6c16e16272bf2573cecaeb245f10629486ad940a299bef700c16 -python_version=2 #unverified +distfiles="${homepage}/src/${pkgname/gst1/gst}/${pkgname/gst1/gst}-${version}.tar.xz" +checksum=e93cb3f1896565c57defa72758e49b6eb6685e0f804abd184f395c94822a3927 gst1-editing-services-devel_package() { short_desc+=" - development files" depends="${sourcepkg}>=${version}_${revision}" pkg_install() { vmove usr/include - vmove usr/lib/*.so + vmove "usr/lib/*.so" vmove usr/lib/pkgconfig } } From 15ff22e49105159968275ed16dfb59d0fd83efe6 Mon Sep 17 00:00:00 2001 From: Nathan Owens Date: Sun, 15 Nov 2020 10:46:22 -0600 Subject: [PATCH 06/10] gst-plugins-bad1: update to 1.18.1 --- .../patches/no-gir-automagic.patch | 24 ++++++++-- ...an-Drop-use-of-VK_RESULT_BEGIN_RANGE.patch | 48 ------------------- srcpkgs/gst-plugins-bad1/template | 8 ++-- 3 files changed, 23 insertions(+), 57 deletions(-) delete mode 100644 srcpkgs/gst-plugins-bad1/patches/vulkan-Drop-use-of-VK_RESULT_BEGIN_RANGE.patch diff --git a/srcpkgs/gst-plugins-bad1/patches/no-gir-automagic.patch b/srcpkgs/gst-plugins-bad1/patches/no-gir-automagic.patch index 68c74ee18e5..38cc2f5edc1 100644 --- a/srcpkgs/gst-plugins-bad1/patches/no-gir-automagic.patch +++ b/srcpkgs/gst-plugins-bad1/patches/no-gir-automagic.patch @@ -1,11 +1,25 @@ ---- meson.build 2019-06-09 12:56:31.309473261 +0200 -+++ meson.build 2019-06-09 12:56:46.166649265 +0200 -@@ -405,7 +405,7 @@ +From d4cba6b214ff9a631cdfb845c07101f97510abff Mon Sep 17 00:00:00 2001 +From: Nathan Owens +Date: Sun, 15 Nov 2020 10:33:52 -0600 +Subject: [PATCH] no-gir-automatic + +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git meson.build meson.build +index 5d52ea9..4b2b5ea 100644 +--- meson.build ++++ meson.build +@@ -445,7 +445,7 @@ python3 = import('python').find_installation() gir = find_program('g-ir-scanner', required : get_option('introspection')) gnome = import('gnome') --build_gir = gir.found() and not meson.is_cross_build() -+build_gir = gir.found() +-build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled()) ++build_gir = gir.found() or get_option('introspection').enabled() gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \ 'g_setenv("GST_REGISTRY_1.0", "@0@", TRUE);'.format(meson.current_build_dir() + '/gir_empty_registry.reg') + \ 'g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);' + \ +-- +2.29.2 + diff --git a/srcpkgs/gst-plugins-bad1/patches/vulkan-Drop-use-of-VK_RESULT_BEGIN_RANGE.patch b/srcpkgs/gst-plugins-bad1/patches/vulkan-Drop-use-of-VK_RESULT_BEGIN_RANGE.patch deleted file mode 100644 index 30271438d8e..00000000000 --- a/srcpkgs/gst-plugins-bad1/patches/vulkan-Drop-use-of-VK_RESULT_BEGIN_RANGE.patch +++ /dev/null @@ -1,48 +0,0 @@ -uptream: yes (master) - -From 29bf8d8528ec694f65c8fae310adac996322cc74 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" -Date: Sat, 9 May 2020 19:59:46 +0200 -Subject: [PATCH] vulkan: Drop use of VK_RESULT_BEGIN_RANGE - -This was removed in Vulkan 1.2.140. - -> Shortly after 2020-04-24, we will be removing the automatically -> generated `VK_*_BEGIN_RANGE`, `VK_*_END_RANGE`, and `VK_*_RANGE_SIZE` -> tokens from the Vulkan headers. These tokens are currently defined for -> some enumerated types, but are explicitly not part of the Vulkan API. -> They existed only to support some Vulkan implementation internals, -> which no longer require them. We will be accepting comments on this -> topic in [#1230], but we strongly suggest any external projects using -> these tokens immediately migrate away from them. - -[#1230]: https://github.com/KhronosGroup/Vulkan-Docs/issues/1230 ---- - ext/vulkan/vkerror.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/ext/vulkan/vkerror.c b/ext/vulkan/vkerror.c -index 3fec27e4d..c91589d9b 100644 ---- ext/vulkan/vkerror.c -+++ ext/vulkan/vkerror.c -@@ -27,7 +27,7 @@ - #include "vkerror.h" - - /* *INDENT-OFF* */ --static const struct -+static const struct - { - VkResult result; - const char *str; -@@ -63,8 +63,6 @@ _vk_result_to_string (VkResult result) - - if (result >= 0) - return NULL; -- if (result < VK_RESULT_BEGIN_RANGE) -- return "Unknown Error"; - - for (i = 0; i < G_N_ELEMENTS (vk_result_string_map); i++) { - if (result == vk_result_string_map[i].result) --- -2.26.2 - diff --git a/srcpkgs/gst-plugins-bad1/template b/srcpkgs/gst-plugins-bad1/template index 212203c24a1..5e744eb84c7 100644 --- a/srcpkgs/gst-plugins-bad1/template +++ b/srcpkgs/gst-plugins-bad1/template @@ -1,7 +1,7 @@ # Template file for 'gst-plugins-bad1' pkgname=gst-plugins-bad1 -version=1.16.2 -revision=10 +version=1.18.1 +revision=1 wrksrc="${pkgname/1/}-${version}" build_helper="gir" build_style=meson @@ -15,7 +15,7 @@ configure_args="-Dpackage-origin=https://voidlinux.org -Dgtk_doc=false -Dwildmidi=disabled -Dwpe=disabled -Ddirectfb=disabled -Dgme=$(vopt_if gme enabled disabled) -Dintrospection=$(vopt_if gir enabled disabled) -Dneon=disabled" -hostmakedepends="automake gettext libtool pkg-config python glib-devel +hostmakedepends="automake gettext libtool pkg-config python3 glib-devel orc wayland-devel" makedepends="alsa-lib-devel celt-devel libressl-devel exempi-devel gst-plugins-base1-devel libdca-devel orc-devel libmms-devel @@ -36,7 +36,7 @@ maintainer="Orphaned " license="GPL-2.0-or-later, LGPL-2.1-or-later" homepage="https://gstreamer.freedesktop.org" distfiles="${homepage}/src/${pkgname/1/}/${pkgname/1/}-${version}.tar.xz" -checksum=f1cb7aa2389569a5343661aae473f0a940a90b872001824bc47fa8072a041e74 +checksum=c195978c85d97406c05eb9d43ac54b9ab35eda6ffdae32b3ed597b8f1743c1b2 build_options="gir gme" build_options_default="gir" From 958dd491083117f39c6aafc54707cfd468e1f16d Mon Sep 17 00:00:00 2001 From: Nathan Owens Date: Sun, 15 Nov 2020 10:52:30 -0600 Subject: [PATCH 07/10] gst-plugins-good1: update to 1.18.1 --- srcpkgs/gst-plugins-good1/template | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/srcpkgs/gst-plugins-good1/template b/srcpkgs/gst-plugins-good1/template index ba326be3f1d..65b773ef0f1 100644 --- a/srcpkgs/gst-plugins-good1/template +++ b/srcpkgs/gst-plugins-good1/template @@ -1,7 +1,7 @@ # Template file for 'gst-plugins-good1' pkgname=gst-plugins-good1 -version=1.16.2 -revision=3 +version=1.18.1 +revision=1 wrksrc="${pkgname/1/}-${version}" build_style=meson configure_args="-Ddv=disabled -Ddv1394=disabled -Dshout2=disabled -Dqt5=enabled @@ -23,7 +23,7 @@ maintainer="Orphaned " license="LGPL-2.1-or-later" homepage="https://gstreamer.freedesktop.org" distfiles="${homepage}/src/${pkgname/1/}/${pkgname/1/}-${version}.tar.xz" -checksum=40bb3bafda25c0b739c8fc36e48380fccf61c4d3f83747e97ac3f9b0171b1319 +checksum=e210e91a5590ecb6accc9d06c949a58ca6897d8edb3b3d55828e424c624f626c build_options="gtk3" build_options_default="gtk3" From b0829a825f2e89d5d4778f89574e9a4696fdb97e Mon Sep 17 00:00:00 2001 From: Nathan Owens Date: Sun, 15 Nov 2020 10:54:53 -0600 Subject: [PATCH 08/10] gst-plugins-ugly1: update to 1.18.1 --- srcpkgs/gst-plugins-ugly1/template | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/srcpkgs/gst-plugins-ugly1/template b/srcpkgs/gst-plugins-ugly1/template index c4661f69138..4d239ff1a2d 100644 --- a/srcpkgs/gst-plugins-ugly1/template +++ b/srcpkgs/gst-plugins-ugly1/template @@ -1,12 +1,12 @@ # Template file for 'gst-plugins-ugly1' pkgname=gst-plugins-ugly1 -version=1.16.2 -revision=2 +version=1.18.1 +revision=1 wrksrc="${pkgname/1/}-${version}" build_style=meson configure_args="-Damrnb=disabled -Damrwbdec=disabled -Dsidplay=disabled" # XXX add required pkgs for the amr, sid plugins. -hostmakedepends="pkg-config intltool python" +hostmakedepends="pkg-config intltool python3" makedepends="glib-devel libxml2-devel gst-plugins-base1-devel libcdio-devel libdvdread-devel libmad-devel x264-devel mpg123-devel orc-devel liba52-devel libmpeg2-devel lame-devel" @@ -16,5 +16,5 @@ maintainer="Orphaned " license="LGPL-2.1-or-later" homepage="https://gstreamer.freedesktop.org" distfiles="${homepage}/src/${pkgname/1/}/${pkgname/1/}-${version}.tar.xz" -checksum=5500415b865e8b62775d4742cbb9f37146a50caecfc0e7a6fc0160d3c560fbca +checksum=18cd6cb829eb9611ca63cbcbf46aca0f0de1dd28b2df18caa2834326a75ff725 lib32disabled=yes From 528b488ceff802af5b078736d0e2c1e5ec91a80c Mon Sep 17 00:00:00 2001 From: Nathan Owens Date: Sun, 15 Nov 2020 10:31:16 -0600 Subject: [PATCH 09/10] gst-plugins-base1: update to 1.18.1 Split sndio plugin related to #25044 --- .../patches/no-gir-automagic.patch | 24 +- srcpkgs/gst-plugins-base1/patches/sndio.patch | 1134 ----------------- srcpkgs/gst-plugins-base1/template | 12 +- srcpkgs/gst-sndio | 1 + 4 files changed, 30 insertions(+), 1141 deletions(-) delete mode 100644 srcpkgs/gst-plugins-base1/patches/sndio.patch create mode 120000 srcpkgs/gst-sndio diff --git a/srcpkgs/gst-plugins-base1/patches/no-gir-automagic.patch b/srcpkgs/gst-plugins-base1/patches/no-gir-automagic.patch index f1226041ae6..36483a10e06 100644 --- a/srcpkgs/gst-plugins-base1/patches/no-gir-automagic.patch +++ b/srcpkgs/gst-plugins-base1/patches/no-gir-automagic.patch @@ -1,11 +1,25 @@ ---- meson.build 2019-06-09 10:53:06.607859182 +0200 -+++ meson.build 2019-06-09 10:53:24.953088389 +0200 -@@ -356,7 +356,7 @@ +From 0d734eb2314fc60deee59de5f1440617e04e5125 Mon Sep 17 00:00:00 2001 +From: Nathan Owens +Date: Sun, 15 Nov 2020 10:25:30 -0600 +Subject: [PATCH] no-gir-automatic + +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git meson.build meson.build +index 5ecce7f..98f8113 100644 +--- meson.build ++++ meson.build +@@ -416,7 +416,7 @@ endif gir = find_program('g-ir-scanner', required : get_option('introspection')) gnome = import('gnome') --build_gir = gir.found() and not meson.is_cross_build() -+build_gir = gir.found() +-build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled()) ++build_gir = gir.found() or get_option('introspection').enabled() gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \ 'g_setenv("GST_REGISTRY_DISABLE", "yes", TRUE);' + \ 'g_setenv("GST_REGISTRY_1.0", "@0@", TRUE);'.format(meson.current_build_dir() + '/gir_empty_registry.reg') + \ +-- +2.29.2 + diff --git a/srcpkgs/gst-plugins-base1/patches/sndio.patch b/srcpkgs/gst-plugins-base1/patches/sndio.patch deleted file mode 100644 index fe61fb88e67..00000000000 --- a/srcpkgs/gst-plugins-base1/patches/sndio.patch +++ /dev/null @@ -1,1134 +0,0 @@ -Source: OpenBSD ports, adapted to work with meson -Upstream: No -Reason: sndio support - -diff --git ext/meson.build ext/meson.build -index d984b50..5f0becc 100644 ---- ext/meson.build -+++ ext/meson.build -@@ -5,5 +5,6 @@ subdir('libvisual') - subdir('ogg') - subdir('opus') - subdir('pango') -+subdir('sndio') - subdir('theora') - subdir('vorbis') -diff --git ext/sndio/gstsndio.c ext/sndio/gstsndio.c -new file mode 100644 -index 0000000..2321dc2 ---- /dev/null -+++ ext/sndio/gstsndio.c -@@ -0,0 +1,401 @@ -+/* -+ * Copyright (C) 2008 Jacob Meuser -+ * Copyright (C) 2012 Alexandre Ratchov -+ * -+ * Permission to use, copy, modify, and distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+#ifdef HAVE_CONFIG_H -+#include "config.h" -+#endif -+ -+#include -+#include "gstsndio.h" -+ -+GST_DEBUG_CATEGORY (gst_sndio_debug); -+#define GST_CAT_DEFAULT gst_sndio_debug -+ -+GType gst_sndiosink_get_type (void); -+GType gst_sndiosrc_get_type (void); -+ -+static gboolean -+plugin_init (GstPlugin * plugin) -+{ -+ GST_DEBUG_CATEGORY_INIT (gst_sndio_debug, "sndio", 0, "sndio plugins"); -+ -+ /* prefer sndiosrc over pulsesrc (GST_RANK_PRIMARY + 10) */ -+ if (!gst_element_register (plugin, "sndiosrc", GST_RANK_PRIMARY + 20, -+ gst_sndiosrc_get_type())) -+ return FALSE; -+ /* prefer sndiosink over pulsesink (GST_RANK_PRIMARY + 10) */ -+ if (!gst_element_register (plugin, "sndiosink", GST_RANK_PRIMARY + 20, -+ gst_sndiosink_get_type())) -+ return FALSE; -+ return TRUE; -+} -+ -+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, -+ GST_VERSION_MINOR, -+ sndio, -+ "sndio plugin library", -+ plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) -+ -+/* -+ * common code to src and sink -+ */ -+ -+void -+gst_sndio_init (struct gstsndio *sio, GObject *obj) -+{ -+ sio->obj = obj; -+ sio->hdl = NULL; -+ sio->device = g_strdup (SIO_DEVANY); -+} -+ -+void -+gst_sndio_finalize (struct gstsndio *sio) -+{ -+ gst_caps_replace (&sio->cur_caps, NULL); -+ g_free (sio->device); -+} -+ -+GstCaps * -+gst_sndio_getcaps (struct gstsndio *sio, GstCaps * filter) -+{ -+ if (sio->cur_caps == NULL) { -+ /* XXX */ -+ GST_LOG_OBJECT (sio->obj, "getcaps called, returning template caps"); -+ return NULL; -+ } -+ -+ GST_LOG_OBJECT (sio->obj, "returning %" GST_PTR_FORMAT, sio->cur_caps); -+ -+ if (filter) { -+ return gst_caps_intersect_full (filter, -+ sio->cur_caps, GST_CAPS_INTERSECT_FIRST); -+ } else { -+ return gst_caps_ref (sio->cur_caps); -+ } -+} -+ -+static void -+gst_sndio_onvol (void *arg, unsigned int vol) -+{ -+ struct gstsndio *sio = arg; -+ sio->volume = vol; -+ g_object_notify (G_OBJECT (sio->obj), "mute"); -+ g_object_notify (G_OBJECT (sio->obj), "volume"); -+} -+ -+gboolean -+gst_sndio_open (struct gstsndio *sio, gint mode) -+{ -+ GValue list = G_VALUE_INIT, item = G_VALUE_INIT; -+ GstStructure *s; -+ GstCaps *caps; -+ struct sio_enc *enc; -+ struct sio_cap cap; -+ char fmt[16]; -+ int i, chan; -+ -+ GST_DEBUG_OBJECT (sio->obj, "open"); -+ -+ sio->hdl = sio_open (sio->device, mode, 0); -+ if (sio->hdl == NULL) { -+ GST_ELEMENT_ERROR (sio->obj, RESOURCE, OPEN_READ_WRITE, -+ ("Couldn't open sndio device"), (NULL)); -+ return FALSE; -+ } -+ sio->mode = mode; -+ -+ if (!sio_getcap(sio->hdl, &cap)) { -+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_WRITE, -+ ("Couldn't get device capabilities"), (NULL)); -+ sio_close(sio->hdl); -+ sio->hdl = NULL; -+ return FALSE; -+ } -+ if (cap.nconf == 0) { -+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_WRITE, -+ ("Device has empty capabilities"), (NULL)); -+ sio_close(sio->hdl); -+ sio->hdl = NULL; -+ return FALSE; -+ } -+ sio_onvol (sio->hdl, gst_sndio_onvol, sio); -+ -+ caps = gst_caps_new_empty (); -+ s = gst_structure_new ("audio/x-raw", (char *)NULL, (void *)NULL); -+ -+ /* -+ * scan supported rates -+ */ -+ g_value_init (&list, GST_TYPE_LIST); -+ g_value_init (&item, G_TYPE_INT); -+ for (i = 0; i < SIO_NRATE; i++) { -+ if ((cap.confs[0].rate & (1 << i)) == 0) -+ continue; -+ g_value_set_int(&item, cap.rate[i]); -+ gst_value_list_append_value (&list, &item); -+ } -+ gst_structure_set_value (s, "rate", &list); -+ g_value_unset (&item); -+ g_value_unset (&list); -+ -+ /* -+ * scan supported channels -+ */ -+ g_value_init (&list, GST_TYPE_LIST); -+ g_value_init (&item, G_TYPE_INT); -+ chan = (mode == SIO_PLAY) ? cap.confs[0].pchan : cap.confs[0].rchan; -+ for (i = 0; i < SIO_NCHAN; i++) { -+ if ((chan & (1 << i)) == 0) -+ continue; -+ g_value_set_int(&item, (mode == SIO_PLAY) ? cap.pchan[i] : cap.rchan[i]); -+ gst_value_list_append_value (&list, &item); -+ } -+ gst_structure_set_value (s, "channels", &list); -+ g_value_unset (&item); -+ g_value_unset (&list); -+ -+ /* -+ * scan supported encodings -+ */ -+ g_value_init (&list, GST_TYPE_LIST); -+ g_value_init (&item, G_TYPE_STRING); -+ for (i = 0; i < SIO_NENC; i++) { -+ if ((cap.confs[0].enc & (1 << i)) == 0) -+ continue; -+ enc = cap.enc + i; -+ if (enc->bits % 8 != 0) -+ continue; -+ if (enc->bits < enc->bps * 8 && enc->msb) -+ continue; -+ if (enc->bits == enc->bps * 8) { -+ snprintf(fmt, sizeof(fmt), "%s%u%s", -+ enc->sig ? "S" : "U", -+ enc->bits, -+ enc->bps > 1 ? (enc->le ? "LE" : "BE") : ""); -+ } else { -+ snprintf(fmt, sizeof(fmt), "%s%u_%u%s", -+ enc->sig ? "S" : "U", -+ enc->bits, -+ enc->bps * 8, -+ enc->bps > 1 ? (enc->le ? "LE" : "BE") : ""); -+ } -+ g_value_set_string(&item, fmt); -+ gst_value_list_append_value (&list, &item); -+ } -+ gst_structure_set_value (s, "format", &list); -+ g_value_unset (&item); -+ g_value_unset (&list); -+ -+ /* -+ * add the only supported layout: interleaved -+ */ -+ g_value_init (&item, G_TYPE_STRING); -+ g_value_set_string(&item, "interleaved"); -+ gst_structure_set_value (s, "layout", &item); -+ g_value_unset (&item); -+ -+ gst_caps_append_structure (caps, s); -+ sio->cur_caps = caps; -+ GST_DEBUG ("caps are %s", gst_caps_to_string(caps)); -+ return TRUE; -+} -+ -+gboolean -+gst_sndio_close (struct gstsndio *sio) -+{ -+ GST_DEBUG_OBJECT (sio->obj, "close"); -+ -+ gst_caps_replace (&sio->cur_caps, NULL); -+ sio_close (sio->hdl); -+ sio->hdl = NULL; -+ return TRUE; -+} -+ -+static void -+gst_sndio_cb (void *addr, int delta) -+{ -+ struct gstsndio *sio = addr; -+ -+ delta *= sio->bpf; -+ if (sio->mode == SIO_PLAY) -+ sio->delay -= delta; -+ else -+ sio->delay += delta; -+} -+ -+gboolean -+gst_sndio_prepare (struct gstsndio *sio, GstAudioRingBufferSpec *spec) -+{ -+ struct sio_par par, retpar; -+ unsigned nchannels; -+ -+ GST_DEBUG_OBJECT (sio, "prepare"); -+ -+ if (spec->type != GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW) { -+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_READ_WRITE, -+ ("Only raw buffer format supported by sndio"), (NULL)); -+ return FALSE; -+ } -+ if (!GST_AUDIO_INFO_IS_INTEGER(&spec->info)) { -+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_READ_WRITE, -+ ("Only integer format supported"), (NULL)); -+ return FALSE; -+ } -+ if (GST_AUDIO_INFO_DEPTH(&spec->info) % 8) { -+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_READ_WRITE, -+ ("Only depths multiple of 8 are supported"), (NULL)); -+ return FALSE; -+ } -+ -+ sio_initpar (&par); -+ switch (GST_AUDIO_INFO_FORMAT (&spec->info)) { -+ case GST_AUDIO_FORMAT_S8: -+ case GST_AUDIO_FORMAT_U8: -+ case GST_AUDIO_FORMAT_S16LE: -+ case GST_AUDIO_FORMAT_S16BE: -+ case GST_AUDIO_FORMAT_U16LE: -+ case GST_AUDIO_FORMAT_U16BE: -+ case GST_AUDIO_FORMAT_S32LE: -+ case GST_AUDIO_FORMAT_S32BE: -+ case GST_AUDIO_FORMAT_U32LE: -+ case GST_AUDIO_FORMAT_U32BE: -+ case GST_AUDIO_FORMAT_S24_32LE: -+ case GST_AUDIO_FORMAT_S24_32BE: -+ case GST_AUDIO_FORMAT_U24_32LE: -+ case GST_AUDIO_FORMAT_U24_32BE: -+ case GST_AUDIO_FORMAT_S24LE: -+ case GST_AUDIO_FORMAT_S24BE: -+ case GST_AUDIO_FORMAT_U24LE: -+ case GST_AUDIO_FORMAT_U24BE: -+ break; -+ default: -+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_READ_WRITE, -+ ("Unsupported audio format"), -+ ("format = %d", GST_AUDIO_INFO_FORMAT (&spec->info))); -+ return FALSE; -+ } -+ par.sig = GST_AUDIO_INFO_IS_SIGNED(&spec->info); -+ par.bits = GST_AUDIO_INFO_WIDTH(&spec->info); -+ par.bps = GST_AUDIO_INFO_DEPTH(&spec->info) / 8; -+ if (par.bps > 1) -+ par.le = GST_AUDIO_INFO_IS_LITTLE_ENDIAN(&spec->info); -+ if (par.bits < par.bps * 8) -+ par.msb = 0; -+ par.rate = GST_AUDIO_INFO_RATE(&spec->info); -+ if (sio->mode == SIO_PLAY) -+ par.pchan = GST_AUDIO_INFO_CHANNELS(&spec->info); -+ else -+ par.rchan = GST_AUDIO_INFO_CHANNELS(&spec->info); -+ par.round = par.rate / 1000000. * spec->latency_time; -+ par.appbufsz = par.rate / 1000000. * spec->buffer_time; -+ -+ if (!sio_setpar (sio->hdl, &par)) { -+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_WRITE, -+ ("Unsupported audio encoding"), (NULL)); -+ return FALSE; -+ } -+ if (!sio_getpar (sio->hdl, &retpar)) { -+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_WRITE, -+ ("Couldn't get audio device parameters"), (NULL)); -+ return FALSE; -+ } -+#if 0 -+ GST_DEBUG ("format = %s, " -+ "requested: sig = %d, bits = %d, bps = %d, le = %d, msb = %d, " -+ "rate = %d, pchan = %d, round = %d, appbufsz = %d; " -+ "returned: sig = %d, bits = %d, bps = %d, le = %d, msb = %d, " -+ "rate = %d, pchan = %d, round = %d, appbufsz = %d, bufsz = %d", -+ GST_AUDIO_INFO_NAME(&spec->info), -+ par.sig, par.bits, par.bps, par.le, par.msb, -+ par.rate, par.pchan, par.round, par.appbufsz, -+ retpar.sig, retpar.bits, retpar.bps, retpar.le, retpar.msb, -+ retpar.rate, retpar.pchan, retpar.round, retpar.appbufsz, retpar.bufsz); -+#endif -+ if (par.bits != retpar.bits || -+ par.bps != retpar.bps || -+ par.rate != retpar.rate || -+ (sio->mode == SIO_PLAY && par.pchan != retpar.pchan) || -+ (sio->mode == SIO_REC && par.rchan != retpar.rchan) || -+ (par.bps > 1 && par.le != retpar.le) || -+ (par.bits < par.bps * 8 && par.msb != retpar.msb)) { -+ GST_ELEMENT_ERROR (sio, RESOURCE, OPEN_WRITE, -+ ("Audio device refused requested parameters"), (NULL)); -+ return FALSE; -+ } -+ -+ nchannels = (sio->mode == SIO_PLAY) ? retpar.pchan : retpar.rchan; -+ spec->segsize = retpar.round * retpar.bps * nchannels; -+ spec->segtotal = retpar.bufsz / retpar.round; -+ sio->bpf = retpar.bps * nchannels; -+ sio->delay = 0; -+ sio_onmove (sio->hdl, gst_sndio_cb, sio); -+ -+ if (!sio_start (sio->hdl)) { -+ GST_ELEMENT_ERROR (sio->obj, RESOURCE, OPEN_READ_WRITE, -+ ("Could not start sndio"), (NULL)); -+ return FALSE; -+ } -+ return TRUE; -+} -+ -+gboolean -+gst_sndio_unprepare (struct gstsndio *sio) -+{ -+ if (sio->hdl) -+ sio_stop (sio->hdl); -+ return TRUE; -+} -+ -+void -+gst_sndio_set_property (struct gstsndio *sio, guint prop_id, -+ const GValue * value, GParamSpec * pspec) -+{ -+ switch (prop_id) { -+ case PROP_DEVICE: -+ g_free (sio->device); -+ sio->device = g_value_dup_string (value); -+ break; -+ case PROP_VOLUME: -+ sio_setvol (sio->hdl, g_value_get_double (value) * SIO_MAXVOL); -+ break; -+ case PROP_MUTE: -+ if (g_value_get_boolean (value)) -+ sio_setvol (sio->hdl, 0); -+ break; -+ default: -+ break; -+ } -+} -+ -+void -+gst_sndio_get_property (struct gstsndio *sio, guint prop_id, -+ GValue * value, GParamSpec * pspec) -+{ -+ switch (prop_id) { -+ case PROP_DEVICE: -+ g_value_set_string (value, sio->device); -+ break; -+ case PROP_VOLUME: -+ g_value_set_double (value, (gdouble)sio->volume / SIO_MAXVOL); -+ break; -+ case PROP_MUTE: -+ g_value_set_boolean (value, (sio->volume == 0)); -+ break; -+ default: -+ G_OBJECT_WARN_INVALID_PROPERTY_ID (sio->obj, prop_id, pspec); -+ } -+} -diff --git ext/sndio/gstsndio.h ext/sndio/gstsndio.h -new file mode 100644 -index 0000000..77ec4e6 ---- /dev/null -+++ ext/sndio/gstsndio.h -@@ -0,0 +1,78 @@ -+/* -+ * Copyright (C) 2012 Alexandre Ratchov -+ * -+ * Permission to use, copy, modify, and distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+#ifndef __GST_SNDIO_H__ -+#define __GST_SNDIO_H__ -+ -+#include -+#include -+#include -+#include -+#include -+ -+enum -+{ -+ PROP_0, -+ PROP_DEVICE, -+ PROP_VOLUME, -+ PROP_MUTE -+}; -+ -+#define GST_SNDIO_CAPS_STRING \ -+ "audio/x-raw, " \ -+ "format = (string) { " \ -+ "S8, U8, " \ -+ "S16LE, S16BE, U16LE, U16BE, " \ -+ "S32LE, S32BE, U32LE, U32BE, " \ -+ "S24_32LE, S24_32BE, U24_32LE, " \ -+ "U24_32BE, S24LE, S24BE, U24LE, U24BE " \ -+ "}, " \ -+ "layout = (string) interleaved, " \ -+ "rate = (int) [ 8000, 192000 ], " \ -+ "channels = (int) [1, 16]" -+ -+/* -+ * data common to src and sink -+ */ -+struct gstsndio { -+ struct sio_hdl *hdl; -+ gchar *device; -+ gint mode; -+ gint bpf; /* bytes per frame */ -+ gint delay; /* bytes stored in the audio fifo */ -+ guint volume; /* volume level */ -+ GstCaps *cur_caps; /* saved capabilities of opened device */ -+ GObject *obj; /* for logging */ -+}; -+ -+#define GST_SNDIO_DELAY(s) ((s)->delay / (s)->bpf) -+ -+void gst_sndio_init (struct gstsndio *sio, GObject *obj); -+void gst_sndio_finalize (struct gstsndio *sio); -+GstCaps *gst_sndio_getcaps (struct gstsndio *sio, GstCaps * filter); -+gboolean gst_sndio_open (struct gstsndio *sio, gint mode); -+gboolean gst_sndio_close (struct gstsndio *sio); -+gboolean gst_sndio_prepare (struct gstsndio *sio, GstAudioRingBufferSpec *spec); -+gboolean gst_sndio_unprepare (struct gstsndio *sio); -+void gst_sndio_set_property (struct gstsndio *sio, guint prop_id, -+ const GValue * value, GParamSpec * pspec); -+void gst_sndio_get_property (struct gstsndio *sio, guint prop_id, -+ GValue * value, GParamSpec * pspec); -+ -+int gst_sndio_setpar(gpointer sio, GstAudioRingBufferSpec * spec, -+ int mode, struct sio_hdl *hdl); -+GstCaps *gst_sndio_caps (gpointer sio, int mode, struct sio_hdl *hdl); -+ -+#endif -diff --git ext/sndio/meson.build ext/sndio/meson.build -new file mode 100644 -index 0000000..3f9a9fe ---- /dev/null -+++ ext/sndio/meson.build -@@ -0,0 +1,21 @@ -+sndio_sources = [ -+ 'gstsndio.c', -+ 'sndiosink.c', -+ 'sndiosrc.c', -+] -+ -+cc = meson.get_compiler('c') -+ -+sndio_dep = cc.find_library('sndio', required : get_option('sndio')) -+ -+if sndio_dep.found() -+ gstsndio = library('gstsndio', -+ sndio_sources, -+ c_args : gst_plugins_base_args, -+ include_directories: [configinc, libsinc], -+ dependencies: [gst_base_dep, sndio_dep, audio_dep], -+ install : true, -+ install_dir : plugins_install_dir, -+ ) -+ pkgconfig.generate(gstsndio, install_dir : plugins_pkgconfig_install_dir) -+endif -diff --git ext/sndio/sndiosink.c ext/sndio/sndiosink.c -new file mode 100644 -index 0000000..cc68bd2 ---- /dev/null -+++ ext/sndio/sndiosink.c -@@ -0,0 +1,226 @@ -+/* -+ * Copyright (C) 2008 Jacob Meuser -+ * Copyright (C) 2012 Alexandre Ratchov -+ * -+ * Permission to use, copy, modify, and distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+/** -+ * SECTION:element-sndiosink -+ * @see_also: #GstAutoAudioSink -+ * -+ * -+ * -+ * This element outputs sound to a sound card using sndio. -+ * -+ * -+ * Simple example pipeline that plays an Ogg/Vorbis file via sndio: -+ * -+ * gst-launch -v filesrc location=foo.ogg ! decodebin ! audioconvert ! audioresample ! sndiosink -+ * -+ * -+ * -+ */ -+ -+#ifdef HAVE_CONFIG_H -+#include "config.h" -+#endif -+#include "sndiosink.h" -+ -+GST_DEBUG_CATEGORY_EXTERN (gst_sndio_debug); -+#define GST_CAT_DEFAULT gst_sndio_debug -+ -+#define gst_sndiosink_parent_class parent_class -+ -+static GstStaticPadTemplate sndiosink_factory = -+ GST_STATIC_PAD_TEMPLATE ("sink", -+ GST_PAD_SINK, -+ GST_PAD_ALWAYS, -+ GST_STATIC_CAPS (GST_SNDIO_CAPS_STRING) -+ ); -+ -+G_DEFINE_TYPE_WITH_CODE (GstSndioSink, gst_sndiosink, GST_TYPE_AUDIO_SINK, -+ G_IMPLEMENT_INTERFACE (GST_TYPE_STREAM_VOLUME, NULL)); -+ -+static void gst_sndiosink_finalize (GObject * object); -+static GstCaps *gst_sndiosink_getcaps (GstBaseSink * bsink, -+ GstCaps * filter); -+static gboolean gst_sndiosink_open (GstAudioSink * asink); -+static gboolean gst_sndiosink_close (GstAudioSink * asink); -+static gboolean gst_sndiosink_prepare (GstAudioSink * asink, -+ GstAudioRingBufferSpec * spec); -+static gboolean gst_sndiosink_unprepare (GstAudioSink * asink); -+static gint gst_sndiosink_write (GstAudioSink * asink, gpointer data, -+ guint length); -+static guint gst_sndiosink_delay (GstAudioSink * asink); -+static void gst_sndiosink_reset (GstAudioSink * asink); -+static void gst_sndiosink_set_property (GObject * object, guint prop_id, -+ const GValue * value, GParamSpec * pspec); -+static void gst_sndiosink_get_property (GObject * object, guint prop_id, -+ GValue * value, GParamSpec * pspec); -+ -+static void -+gst_sndiosink_init (GstSndioSink * sink) -+{ -+ gst_sndio_init (&sink->sndio, G_OBJECT(sink)); -+} -+ -+static void -+gst_sndiosink_finalize (GObject * object) -+{ -+ GstSndioSink *sink = GST_SNDIOSINK (object); -+ -+ gst_sndio_finalize (&sink->sndio); -+ G_OBJECT_CLASS (parent_class)->finalize (object); -+} -+ -+static GstCaps * -+gst_sndiosink_getcaps (GstBaseSink * bsink, GstCaps * filter) -+{ -+ GstSndioSink *sink = GST_SNDIOSINK (bsink); -+ -+ return gst_sndio_getcaps (&sink->sndio, filter); -+} -+ -+static gboolean -+gst_sndiosink_open (GstAudioSink * asink) -+{ -+ GstSndioSink *sink = GST_SNDIOSINK (asink); -+ -+ return gst_sndio_open (&sink->sndio, SIO_PLAY); -+} -+ -+static gboolean -+gst_sndiosink_close (GstAudioSink * asink) -+{ -+ GstSndioSink *sink = GST_SNDIOSINK (asink); -+ -+ return gst_sndio_close (&sink->sndio); -+} -+ -+static gboolean -+gst_sndiosink_prepare (GstAudioSink * asink, GstAudioRingBufferSpec * spec) -+{ -+ GstSndioSink *sink = GST_SNDIOSINK (asink); -+ -+ return gst_sndio_prepare (&sink->sndio, spec); -+} -+ -+static gboolean -+gst_sndiosink_unprepare (GstAudioSink * asink) -+{ -+ GstSndioSink *sink = GST_SNDIOSINK (asink); -+ -+ return gst_sndio_unprepare (&sink->sndio); -+} -+ -+static gint -+gst_sndiosink_write (GstAudioSink * asink, gpointer data, guint length) -+{ -+ GstSndioSink *sink = GST_SNDIOSINK (asink); -+ guint done; -+ -+ if (length == 0) -+ return 0; -+ done = sio_write (sink->sndio.hdl, data, length); -+ if (done == 0) { -+ GST_ELEMENT_ERROR (sink, RESOURCE, WRITE, -+ ("Failed to write data to sndio"), (NULL)); -+ return 0; -+ } -+ sink->sndio.delay += done; -+ return done; -+} -+ -+static guint -+gst_sndiosink_delay (GstAudioSink * asink) -+{ -+ GstSndioSink *sink = GST_SNDIOSINK (asink); -+ -+ return GST_SNDIO_DELAY(&sink->sndio); -+} -+ -+static void -+gst_sndiosink_reset (GstAudioSink * asink) -+{ -+} -+ -+static void -+gst_sndiosink_set_property (GObject * object, guint prop_id, -+ const GValue * value, GParamSpec * pspec) -+{ -+ GstSndioSink *sink = GST_SNDIOSINK (object); -+ -+ gst_sndio_set_property (&sink->sndio, prop_id, value, pspec); -+} -+ -+static void -+gst_sndiosink_get_property (GObject * object, guint prop_id, GValue * value, -+ GParamSpec * pspec) -+{ -+ GstSndioSink *sink = GST_SNDIOSINK (object); -+ -+ gst_sndio_get_property (&sink->sndio, prop_id, value, pspec); -+} -+ -+static void -+gst_sndiosink_class_init (GstSndioSinkClass * klass) -+{ -+ GObjectClass *gobject_class; -+ GstElementClass *gstelement_class; -+ GstBaseSinkClass *gstbasesink_class; -+ GstAudioBaseSinkClass *gstbaseaudiosink_class; -+ GstAudioSinkClass *gstaudiosink_class; -+ -+ gobject_class = (GObjectClass *) klass; -+ gstelement_class = (GstElementClass *) klass; -+ gstbasesink_class = (GstBaseSinkClass *) klass; -+ gstbaseaudiosink_class = (GstAudioBaseSinkClass *) klass; -+ gstaudiosink_class = (GstAudioSinkClass *) klass; -+ -+ parent_class = g_type_class_peek_parent (klass); -+ -+ gobject_class->finalize = gst_sndiosink_finalize; -+ gobject_class->get_property = gst_sndiosink_get_property; -+ gobject_class->set_property = gst_sndiosink_set_property; -+ -+ gst_element_class_set_static_metadata (gstelement_class, -+ "Audio sink (sndio)", "Sink/Audio", -+ "Output to a sound card via sndio", -+ "Jacob Meuser "); -+ -+ gst_element_class_add_pad_template (gstelement_class, -+ gst_static_pad_template_get (&sndiosink_factory)); -+ -+ gstbasesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_sndiosink_getcaps); -+ gstaudiosink_class->open = GST_DEBUG_FUNCPTR (gst_sndiosink_open); -+ gstaudiosink_class->prepare = GST_DEBUG_FUNCPTR (gst_sndiosink_prepare); -+ gstaudiosink_class->unprepare = GST_DEBUG_FUNCPTR (gst_sndiosink_unprepare); -+ gstaudiosink_class->close = GST_DEBUG_FUNCPTR (gst_sndiosink_close); -+ gstaudiosink_class->write = GST_DEBUG_FUNCPTR (gst_sndiosink_write); -+ gstaudiosink_class->delay = GST_DEBUG_FUNCPTR (gst_sndiosink_delay); -+ gstaudiosink_class->reset = GST_DEBUG_FUNCPTR (gst_sndiosink_reset); -+ -+ g_object_class_install_property (gobject_class, PROP_DEVICE, -+ g_param_spec_string ("device", "Device", -+ "sndio device as defined in sndio(7)", -+ SIO_DEVANY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -+ g_object_class_install_property (gobject_class, PROP_VOLUME, -+ g_param_spec_double ("volume", "Volume", -+ "Linear volume of this stream, 1.0=100%", 0.0, 1.0, -+ 1.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -+ g_object_class_install_property (gobject_class, PROP_MUTE, -+ g_param_spec_boolean ("mute", "Mute", -+ "Mute state of this stream", FALSE, -+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -+} -diff --git ext/sndio/sndiosink.h ext/sndio/sndiosink.h -new file mode 100644 -index 0000000..314e622 ---- /dev/null -+++ ext/sndio/sndiosink.h -@@ -0,0 +1,57 @@ -+/* -+ * Copyright (C) 2008 Jacob Meuser -+ * Copyright (C) 2012 Alexandre Ratchov -+ * -+ * Permission to use, copy, modify, and distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+ -+#ifndef __GST_SNDIOSINK_H__ -+#define __GST_SNDIOSINK_H__ -+ -+#include -+ -+#include -+#include -+#include "gstsndio.h" -+ -+G_BEGIN_DECLS -+ -+#define GST_TYPE_SNDIOSINK \ -+ (gst_sndiosink_get_type()) -+#define GST_SNDIOSINK(obj) \ -+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SNDIOSINK,GstSndioSink)) -+#define GST_SNDIOSINK_CLASS(klass) \ -+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SNDIOSINK,GstSndioSinkClass)) -+#define GST_IS_SNDIOSINK(obj) \ -+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SNDIOSINK)) -+#define GST_IS_SNDIOSINK_CLASS(klass) \ -+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SNDIOSINK)) -+ -+typedef struct _GstSndioSink GstSndioSink; -+typedef struct _GstSndioSinkClass GstSndioSinkClass; -+ -+struct _GstSndioSink { -+ GstAudioSink sink; -+ struct gstsndio sndio; -+}; -+ -+struct _GstSndioSinkClass { -+ GstAudioSinkClass parent_class; -+}; -+ -+GType gst_sndiosink_get_type (void); -+ -+G_END_DECLS -+ -+#endif /* __GST_SNDIOSINK_H__ */ -diff --git ext/sndio/sndiosrc.c ext/sndio/sndiosrc.c -new file mode 100644 -index 0000000..5b6d787 ---- /dev/null -+++ ext/sndio/sndiosrc.c -@@ -0,0 +1,225 @@ -+/* -+ * Copyright (C) 2008 Jacob Meuser -+ * Copyright (C) 2012 Alexandre Ratchov -+ * -+ * Permission to use, copy, modify, and distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+/** -+ * SECTION:element-sndiosrc -+ * @see_also: #GstAutoAudioSrc -+ * -+ * -+ * -+ * This element retrieves samples from a sound card using sndio. -+ * -+ * -+ * Simple example pipeline that records an Ogg/Vorbis file via sndio: -+ * -+ * gst-launch -v sndiosrc ! audioconvert ! vorbisenc ! oggmux ! filesink location=foo.ogg -+ * -+ * -+ * -+ */ -+ -+#ifdef HAVE_CONFIG_H -+#include "config.h" -+#endif -+ -+#include "sndiosrc.h" -+#include "gstsndio.h" -+ -+GST_DEBUG_CATEGORY_EXTERN (gst_sndio_debug); -+#define GST_CAT_DEFAULT gst_sndio_debug -+ -+#define gst_sndiosrc_parent_class parent_class -+G_DEFINE_TYPE_WITH_CODE (GstSndioSrc, gst_sndiosrc, GST_TYPE_AUDIO_SRC, -+ G_IMPLEMENT_INTERFACE (GST_TYPE_STREAM_VOLUME, NULL)); -+ -+static void gst_sndiosrc_finalize (GObject * object); -+static GstCaps *gst_sndiosrc_getcaps (GstBaseSrc * bsrc, GstCaps * filter); -+static gboolean gst_sndiosrc_open (GstAudioSrc * asrc); -+static gboolean gst_sndiosrc_close (GstAudioSrc * asrc); -+static gboolean gst_sndiosrc_prepare (GstAudioSrc * asrc, -+ GstAudioRingBufferSpec * spec); -+static gboolean gst_sndiosrc_unprepare (GstAudioSrc * asrc); -+static guint gst_sndiosrc_read (GstAudioSrc * asrc, gpointer data, -+ guint length); -+static guint gst_sndiosrc_delay (GstAudioSrc * asrc); -+static void gst_sndiosrc_reset (GstAudioSrc * asrc); -+static void gst_sndiosrc_set_property (GObject * object, guint prop_id, -+ const GValue * value, GParamSpec * pspec); -+static void gst_sndiosrc_get_property (GObject * object, -+ guint prop_id, GValue * value, GParamSpec * pspec); -+ -+static GstStaticPadTemplate sndiosrc_factory = -+ GST_STATIC_PAD_TEMPLATE ("src", -+ GST_PAD_SRC, -+ GST_PAD_ALWAYS, -+ GST_STATIC_CAPS (GST_SNDIO_CAPS_STRING) -+ ); -+ -+static void -+gst_sndiosrc_init (GstSndioSrc * src) -+{ -+ gst_sndio_init (&src->sndio, G_OBJECT(src)); -+} -+ -+static void -+gst_sndiosrc_finalize (GObject * object) -+{ -+ GstSndioSrc *src = GST_SNDIOSRC (object); -+ -+ gst_sndio_finalize (&src->sndio); -+ G_OBJECT_CLASS (parent_class)->finalize (object); -+} -+ -+static GstCaps * -+gst_sndiosrc_getcaps (GstBaseSrc * bsrc, GstCaps * filter) -+{ -+ GstSndioSrc *src = GST_SNDIOSRC (bsrc); -+ -+ return gst_sndio_getcaps (&src->sndio, filter); -+} -+ -+static gboolean -+gst_sndiosrc_open (GstAudioSrc * asrc) -+{ -+ GstSndioSrc *src = GST_SNDIOSRC (asrc); -+ -+ return gst_sndio_open (&src->sndio, SIO_REC); -+} -+ -+static gboolean -+gst_sndiosrc_close (GstAudioSrc * asrc) -+{ -+ GstSndioSrc *src = GST_SNDIOSRC (asrc); -+ -+ return gst_sndio_close (&src->sndio); -+} -+ -+static gboolean -+gst_sndiosrc_prepare (GstAudioSrc * asrc, GstAudioRingBufferSpec * spec) -+{ -+ GstSndioSrc *src = GST_SNDIOSRC (asrc); -+ -+ return gst_sndio_prepare (&src->sndio, spec); -+} -+ -+static gboolean -+gst_sndiosrc_unprepare (GstAudioSrc * asrc) -+{ -+ GstSndioSrc *src = GST_SNDIOSRC (asrc); -+ -+ return gst_sndio_unprepare (&src->sndio); -+} -+ -+static guint -+gst_sndiosrc_read (GstAudioSrc * asrc, gpointer data, guint length) -+{ -+ GstSndioSrc *src = GST_SNDIOSRC (asrc); -+ guint done; -+ -+ if (length == 0) -+ return 0; -+ done = sio_read (src->sndio.hdl, data, length); -+ if (done == 0) { -+ GST_ELEMENT_ERROR (src, RESOURCE, READ, -+ ("Failed to read data from sndio"), (NULL)); -+ return 0; -+ } -+ src->sndio.delay -= done; -+ return done; -+} -+ -+static guint -+gst_sndiosrc_delay (GstAudioSrc * asrc) -+{ -+ GstSndioSrc *src = GST_SNDIOSRC (asrc); -+ -+ return GST_SNDIO_DELAY(&src->sndio); -+} -+ -+static void -+gst_sndiosrc_reset (GstAudioSrc * asrc) -+{ -+} -+ -+static void -+gst_sndiosrc_set_property (GObject * object, guint prop_id, -+ const GValue * value, GParamSpec * pspec) -+{ -+ GstSndioSrc *src = GST_SNDIOSRC (object); -+ -+ gst_sndio_set_property (&src->sndio, prop_id, value, pspec); -+} -+ -+static void -+gst_sndiosrc_get_property (GObject * object, guint prop_id, GValue * value, -+ GParamSpec * pspec) -+{ -+ GstSndioSrc *src = GST_SNDIOSRC (object); -+ -+ gst_sndio_get_property (&src->sndio, prop_id, value, pspec); -+} -+ -+static void -+gst_sndiosrc_class_init (GstSndioSrcClass * klass) -+{ -+ GObjectClass *gobject_class; -+ GstElementClass *gstelement_class; -+ GstBaseSrcClass *gstbasesrc_class; -+ GstAudioBaseSrcClass *gstbaseaudiosrc_class; -+ GstAudioSrcClass *gstaudiosrc_class; -+ gobject_class = (GObjectClass *) klass; -+ gstelement_class = (GstElementClass *) klass; -+ gstbasesrc_class = (GstBaseSrcClass *) klass; -+ gstbaseaudiosrc_class = (GstAudioBaseSrcClass *) klass; -+ gstaudiosrc_class = (GstAudioSrcClass *) klass; -+ -+ parent_class = g_type_class_peek_parent (klass); -+ -+ gobject_class->finalize = gst_sndiosrc_finalize; -+ gobject_class->get_property = gst_sndiosrc_get_property; -+ gobject_class->set_property = gst_sndiosrc_set_property; -+ -+ gst_element_class_set_static_metadata (gstelement_class, -+ "Audio src (sndio)", "Src/Audio", -+ "Input from a sound card via sndio", -+ "Jacob Meuser "); -+ -+ gst_element_class_add_pad_template (gstelement_class, -+ gst_static_pad_template_get (&sndiosrc_factory)); -+ -+ gstbasesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_sndiosrc_getcaps); -+ gstaudiosrc_class->open = GST_DEBUG_FUNCPTR (gst_sndiosrc_open); -+ gstaudiosrc_class->prepare = GST_DEBUG_FUNCPTR (gst_sndiosrc_prepare); -+ gstaudiosrc_class->unprepare = GST_DEBUG_FUNCPTR (gst_sndiosrc_unprepare); -+ gstaudiosrc_class->close = GST_DEBUG_FUNCPTR (gst_sndiosrc_close); -+ gstaudiosrc_class->read = GST_DEBUG_FUNCPTR (gst_sndiosrc_read); -+ gstaudiosrc_class->delay = GST_DEBUG_FUNCPTR (gst_sndiosrc_delay); -+ gstaudiosrc_class->reset = GST_DEBUG_FUNCPTR (gst_sndiosrc_reset); -+ -+ g_object_class_install_property (gobject_class, PROP_DEVICE, -+ g_param_spec_string ("device", "Device", -+ "sndio device as defined in sndio(7)", -+ SIO_DEVANY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -+ g_object_class_install_property (gobject_class, PROP_VOLUME, -+ g_param_spec_double ("volume", "Volume", -+ "Linear volume of this stream, 1.0=100%", 0.0, 1.0, -+ 1.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -+ g_object_class_install_property (gobject_class, PROP_MUTE, -+ g_param_spec_boolean ("mute", "Mute", -+ "Mute state of this stream", FALSE, -+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -+} -diff --git ext/sndio/sndiosrc.h ext/sndio/sndiosrc.h -new file mode 100644 -index 0000000..83fd29c ---- /dev/null -+++ ext/sndio/sndiosrc.h -@@ -0,0 +1,57 @@ -+/* -+ * Copyright (C) 2008 Jacob Meuser -+ * Copyright (C) 2012 Alexandre Ratchov -+ * -+ * Permission to use, copy, modify, and distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+ -+#ifndef __GST_SNDIOSRC_H__ -+#define __GST_SNDIOSRC_H__ -+ -+#include -+ -+#include -+#include -+#include "gstsndio.h" -+ -+G_BEGIN_DECLS -+ -+#define GST_TYPE_SNDIOSRC \ -+ (gst_sndiosrc_get_type()) -+#define GST_SNDIOSRC(obj) \ -+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SNDIOSRC,GstSndioSrc)) -+#define GST_SNDIOSRC_CLASS(klass) \ -+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SNDIOSRC,GstSndioSrcClass)) -+#define GST_IS_SNDIOSRC(obj) \ -+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SNDIOSRC)) -+#define GST_IS_SNDIOSRC_CLASS(klass) \ -+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SNDIOSRC)) -+ -+typedef struct _GstSndioSrc GstSndioSrc; -+typedef struct _GstSndioSrcClass GstSndioSrcClass; -+ -+struct _GstSndioSrc { -+ GstAudioSrc src; -+ struct gstsndio sndio; -+}; -+ -+struct _GstSndioSrcClass { -+ GstAudioSrcClass parent_class; -+}; -+ -+GType gst_sndiosrc_get_type (void); -+ -+G_END_DECLS -+ -+#endif /* __GST_SNDIOSRC_H__ */ -diff --git meson_options.txt meson_options.txt -index e7af4dd..827507f 100644 ---- meson_options.txt -+++ meson_options.txt -@@ -58,6 +58,7 @@ option('libvisual', type : 'feature', value : 'auto', description : 'libvisual a - option('ogg', type : 'feature', value : 'auto', description : 'ogg parser, muxer, demuxer plugin') - option('opus', type : 'feature', value : 'auto', description : 'OPUS audio codec plugin') - option('pango', type : 'feature', value : 'auto', description : 'Pango text rendering and overlay plugin') -+option('sndio', type : 'feature', value : 'auto', description : 'sndio support') - option('theora', type : 'feature', value : 'auto', description : 'Theora video parser and codec plugin') - option('tremor', type : 'feature', value : 'auto', description : 'Integer Vorbis decoder plugin for devices without floating point') - option('vorbis', type : 'feature', value : 'auto', description : 'Vorbis audio parser, tagger, and codec plugin') diff --git a/srcpkgs/gst-plugins-base1/template b/srcpkgs/gst-plugins-base1/template index e5e3e8ccb6a..c0ed513c9ee 100644 --- a/srcpkgs/gst-plugins-base1/template +++ b/srcpkgs/gst-plugins-base1/template @@ -1,6 +1,6 @@ # Template file for 'gst-plugins-base1' pkgname=gst-plugins-base1 -version=1.16.2 +version=1.18.1 revision=1 wrksrc="${pkgname/1/}-${version}" build_style=meson @@ -21,7 +21,7 @@ maintainer="Orphaned " license="GPL-2.0-or-later, LGPL-2.0-or-later" homepage="https://gstreamer.freedesktop.org" distfiles="${homepage}/src/${pkgname/1/}/${pkgname/1/}-${version}.tar.xz" -checksum=b13e73e2fe74a4166552f9577c3dcb24bed077021b9c7fa600d910ec6987816a +checksum=1ba654d7de30f7284b4c7071b32f881b609733ce02ab6d9d9ea29386a036c641 # Package build options build_options="cdparanoia gir sndio" @@ -45,3 +45,11 @@ gst-plugins-base1-devel_package() { fi } } + +gst-sndio_package() { + depends="gstreamer1" + short_desc="Gstreamer sndio plugin (v1.X)" + pkg_install() { + vmove usr/lib/gstreamer-1.0/libgstsndio.so + } +} diff --git a/srcpkgs/gst-sndio b/srcpkgs/gst-sndio new file mode 120000 index 00000000000..ada48a8a5d1 --- /dev/null +++ b/srcpkgs/gst-sndio @@ -0,0 +1 @@ +gst-plugins-base1 \ No newline at end of file From 04fff8c1b467ae8818fd23e7e1ff7fc4b7e1e7eb Mon Sep 17 00:00:00 2001 From: Nathan Owens Date: Sun, 15 Nov 2020 10:21:10 -0600 Subject: [PATCH 10/10] gstreamer1: update to 1.18.1 Remove gtk_doc option as it does nothing and doubt many use --- .../gstreamer1/patches/no-gir-automagic.patch | 22 ++++++++++++++---- srcpkgs/gstreamer1/template | 23 +++++-------------- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/srcpkgs/gstreamer1/patches/no-gir-automagic.patch b/srcpkgs/gstreamer1/patches/no-gir-automagic.patch index c0135214edd..53740b4bb04 100644 --- a/srcpkgs/gstreamer1/patches/no-gir-automagic.patch +++ b/srcpkgs/gstreamer1/patches/no-gir-automagic.patch @@ -1,13 +1,25 @@ -diff --git a/meson.build b/meson.build -index e738c55..e1b8d93 100644 +From 225e87688f21a817224655372004eb512f862d43 Mon Sep 17 00:00:00 2001 +From: Nathan Owens +Date: Sun, 15 Nov 2020 10:04:50 -0600 +Subject: [PATCH] no-gir-automatic + +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git meson.build meson.build +index 5a21823..5d1db37 100644 --- meson.build +++ meson.build -@@ -451,7 +451,7 @@ rt_lib = cc.find_library('rt', required : false) +@@ -503,7 +503,7 @@ rt_lib = cc.find_library('rt', required : false) gir = find_program('g-ir-scanner', required : get_option('introspection')) gnome = import('gnome') --build_gir = gir.found() and not meson.is_cross_build() -+build_gir = gir.found() +-build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled()) ++build_gir = gir.found() or get_option('introspection').enabled() gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \ 'g_setenv("GST_REGISTRY_DISABLE", "yes", TRUE);' + \ +-- +2.29.2 + diff --git a/srcpkgs/gstreamer1/template b/srcpkgs/gstreamer1/template index 16f7379fc93..aea4d67a853 100644 --- a/srcpkgs/gstreamer1/template +++ b/srcpkgs/gstreamer1/template @@ -1,16 +1,15 @@ # Template file for 'gstreamer1' pkgname=gstreamer1 -version=1.16.2 +version=1.18.1 revision=1 wrksrc="gstreamer-${version}" build_style=meson build_helper="gir" configure_args="-Dptp-helper-permissions=capabilities -Dpackage-origin=https://www.voidlinux.org -Ddbghelp=disabled - -Dintrospection=$(vopt_if gir enabled disabled) - -Dgtk_doc=$(vopt_if gtk_doc enabled disabled)" -hostmakedepends="gettext pkg-config flex python docbook-xsl glib-devel - libcap-progs $(vopt_if gtk_doc gtk-doc)" + -Dintrospection=$(vopt_if gir enabled disabled)" +hostmakedepends="gettext pkg-config flex python3 docbook-xsl glib-devel + libcap-progs" makedepends="libxml2-devel libglib-devel gtk+3-devel libcap-devel libunwind-devel bash-completion" short_desc="Core GStreamer libraries and elements (1.x)" @@ -18,18 +17,11 @@ maintainer="Orphaned " license="LGPL-2.0-or-later" homepage="https://gstreamer.freedesktop.org" distfiles="${homepage}/src/gstreamer/gstreamer-${version}.tar.xz" -checksum=e3f044246783fd685439647373fa13ba14f7ab0b346eadd06437092f8419e94e +checksum=79df8de21f284a105a5c1568527f8c559c583c85c0f2bd7bdb5b0372b8beecba -# Package build options -build_options="gir gtk_doc" +build_options="gir" build_options_default="gir" -desc_option_gtk_doc="Build GTK Documentation with gtk-doc" - -if [ -z "$CROSS_BUILD" ]; then - build_options_default+=" gtk_doc" -fi - gstreamer1-devel_package() { depends="${makedepends} ${sourcepkg}>=${version}_${revision}" short_desc+=" - development files" @@ -37,9 +29,6 @@ gstreamer1-devel_package() { vmove usr/include vmove usr/lib/pkgconfig vmove "usr/lib/*.so" - if [ "$build_option_gtk_doc" ]; then - vmove usr/share/gtk-doc - fi vmove usr/share/aclocal if [ "$build_option_gir" ]; then vmove "usr/share/gir*"