summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wtaymans@redhat.com>2017-08-23 10:45:08 +0200
committerWim Taymans <wtaymans@redhat.com>2017-08-23 13:22:39 +0200
commitb7e334e55ddbdd9afe811c043e782ae31596899e (patch)
tree3d0a67d5817191cc902e81ee567b645dfbccb9b9
parent5cc4c5c37814bb877f8d315aa46c860d62dfb9ee (diff)
Release 0.1.40.1.4
Remove spec file Fix systemd service file Send error on link errors Init socket to -1 so that we don't close anything on error Wait for all proxy objects in device monitor
-rw-r--r--meson.build2
-rw-r--r--pipewire.spec176
-rw-r--r--src/daemon/systemd/user/pipewire.service.in3
-rw-r--r--src/gst/gstpipewiredeviceprovider.c12
-rw-r--r--src/modules/module-autolink.c7
-rw-r--r--src/modules/module-protocol-native.c3
6 files changed, 22 insertions, 181 deletions
diff --git a/meson.build b/meson.build
index 51b528dd..5652c34f 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('pipewire', 'c',
- version : '0.1.3.1',
+ version : '0.1.4',
meson_version : '>= 0.36.0',
default_options : [ 'warning_level=1',
'c_std=gnu99',
diff --git a/pipewire.spec b/pipewire.spec
deleted file mode 100644
index dedc31dc..00000000
--- a/pipewire.spec
+++ /dev/null
@@ -1,176 +0,0 @@
-%global majorminor 0.1
-
-#global snap 20141103
-#global gitrel 327
-#global gitcommit aec811798cd883a454b9b5cd82c77831906bbd2d
-#global shortcommit %(c=%{gitcommit}; echo ${c:0:5})
-
-# https://bugzilla.redhat.com/983606
-%global _hardened_build 1
-
-# where/how to apply multilib hacks
-%global multilib_archs x86_64 %{ix86} ppc64 ppc s390x s390 sparc64 sparcv9 ppc64le
-
-Name: pipewire
-Summary: Media Sharing Server
-Version: 0.1.3.1
-Release: 1%{?snap:.%{snap}git%{shortcommit}}%{?dist}
-License: LGPLv2+
-URL: http://www.freedesktop.org/wiki/Software/PipeWire
-%if 0%{?gitrel}
-# git clone git://anongit.freedesktop.org/gstreamer/pipewire
-# cd pipewire; git reset --hard %{gitcommit}; ./autogen.sh; make; make distcheck
-Source0: pipewire-%{version}-%{gitrel}-g%{shortcommit}.tar.gz
-%else
-Source0: http://freedesktop.org/software/pipewire/releases/pipewire-%{version}.tar.gz
-%endif
-
-## upstream patches
-
-## upstreamable patches
-
-BuildRequires: meson >= 0.35.0
-BuildRequires: pkgconfig
-BuildRequires: pkgconfig(libudev)
-BuildRequires: pkgconfig(dbus-1)
-BuildRequires: pkgconfig(glib-2.0) >= 2.32
-BuildRequires: pkgconfig(gio-unix-2.0) >= 2.32
-BuildRequires: pkgconfig(gstreamer-1.0) >= 1.10.0
-BuildRequires: pkgconfig(gstreamer-base-1.0) >= 1.10.0
-BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) >= 1.10.0
-BuildRequires: pkgconfig(gstreamer-net-1.0) >= 1.10.0
-BuildRequires: pkgconfig(gstreamer-allocators-1.0) >= 1.10.0
-BuildRequires: systemd-devel >= 184
-BuildRequires: alsa-lib-devel
-BuildRequires: libv4l-devel
-BuildRequires: doxygen
-BuildRequires: xmltoman
-BuildRequires: graphviz
-
-Requires(pre): shadow-utils
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-Requires: systemd >= 184
-Requires: rtkit
-
-# https://bugzilla.redhat.com/983606
-%global _hardened_build 1
-
-## enable systemd activation
-%global systemd 1
-
-%description
-PipeWire is a multimedia server for Linux and other Unix like operating
-systems.
-
-%package libs
-Summary: Libraries for PipeWire clients
-License: LGPLv2+
-
-%description libs
-This package contains the runtime libraries for any application that wishes
-to interface with a PipeWire media server.
-
-%package devel
-Summary: Headers and libraries for PipeWire client development
-License: LGPLv2+
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-%description devel
-Headers and libraries for developing applications that can communicate with
-a PipeWire media server.
-
-%package doc
-Summary: PipeWire media server documentation
-License: LGPLv2+
-
-%description doc
-This package contains documentation for the PipeWire media server.
-
-%package utils
-Summary: PipeWire media server utilities
-License: LGPLv2+
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-
-%description utils
-This package contains command line utilities for the PipeWire media server.
-
-%prep
-%setup -q -T -b0 -n %{name}-%{version}%{?gitrel:-%{gitrel}-g%{shortcommit}}
-
-%build
-%meson
-%meson_build
-
-%install
-%meson_install
-
-%check
-%meson_test
-
-%pre
-getent group pipewire >/dev/null || groupadd -r pipewire
-getent passwd pipewire >/dev/null || \
- useradd -r -g pipewire -d /var/run/pipewire -s /sbin/nologin -c "PipeWire System Daemon" pipewire
-exit 0
-
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
-
-%files
-%license LICENSE GPL LGPL
-%doc README
-%if 0%{?systemd}
-%{_userunitdir}/pipewire.*
-%endif
-%{_bindir}/pipewire
-%{_libdir}/libpipewire-%{majorminor}.so.*
-%{_libdir}/libspa-lib.so.*
-%{_libdir}/gstreamer-1.0/libgstpipewire.*
-%{_libdir}/pipewire-%{majorminor}/
-%{_libdir}/spa/
-%{_mandir}/man1/pipewire.1*
-%{_sysconfdir}/pipewire/pipewire.conf
-
-%files libs
-%license LICENSE GPL LGPL
-%doc README
-%dir %{_sysconfdir}/pipewire/
-#%dir %{_libdir}/pipewire/
-
-%files devel
-%{_libdir}/libpipewire-%{majorminor}.so
-%{_libdir}/libspa-lib.so
-%{_includedir}/pipewire/
-%{_includedir}/spa/
-%{_libdir}/pkgconfig/libpipewire-%{majorminor}.pc
-%{_libdir}/pkgconfig/libspa-%{majorminor}.pc
-
-%files doc
-%{_datadir}/doc/pipewire/html
-
-%files utils
-%{_bindir}/pipewire-monitor
-%{_mandir}/man1/pipewire-monitor.1*
-%{_bindir}/spa-monitor
-%{_bindir}/spa-inspect
-
-%changelog
-* Wed Aug 09 2017 Wim Taymans <wtaymans@redhat.com> - 0.1.3-1
-- Update to 0.1.3
-
-* Tue Jul 04 2017 Wim Taymans <wtaymans@redhat.com> - 0.1.2-1
-- Update to 0.1.2
-- Added more build requirements
-- Make separate doc package
-
-* Mon Jun 26 2017 Wim Taymans <wtaymans@redhat.com> - 0.1.1-1
-- Update to 0.1.1
-- Add dbus-1 to BuildRequires
-- change libs-devel to -devel
-
-* Wed Sep 9 2015 Wim Taymans <wtaymans@redhat.com> - 0.1.0-2
-- Fix BuildRequires to use pkgconfig, add all dependencies found in configure.ac
-- Add user and groups if needed
-- Add license to %%licence
-
-* Tue Sep 1 2015 Wim Taymans <wtaymans@redhat.com> - 0.1.0-1
-- First version
diff --git a/src/daemon/systemd/user/pipewire.service.in b/src/daemon/systemd/user/pipewire.service.in
index f0578891..71cfc262 100644
--- a/src/daemon/systemd/user/pipewire.service.in
+++ b/src/daemon/systemd/user/pipewire.service.in
@@ -16,8 +16,7 @@ Description=Multimedia Service
Requires=pipewire.socket
[Service]
-# Note that notify will only work if --daemonize=no
-Type=notify
+Type=simple
ExecStart=@PW_BINARY@
Restart=on-failure
diff --git a/src/gst/gstpipewiredeviceprovider.c b/src/gst/gstpipewiredeviceprovider.c
index d9bbc9d2..5d293f73 100644
--- a/src/gst/gstpipewiredeviceprovider.c
+++ b/src/gst/gstpipewiredeviceprovider.c
@@ -297,8 +297,11 @@ on_sync_reply (void *data, uint32_t seq)
GstPipeWireDeviceProvider *self = data;
if (seq == 1)
pw_core_proxy_sync(self->core_proxy, 2);
- else if (seq == 2)
+ else if (seq == 2) {
self->end = true;
+ if (self->main_loop)
+ pw_thread_loop_signal (self->main_loop, FALSE);
+ }
}
static void
@@ -563,6 +566,13 @@ gst_pipewire_device_provider_start (GstDeviceProvider * provider)
pw_registry_proxy_add_listener(self->registry, &data->registry_listener, &registry_events, data);
pw_core_proxy_sync(self->core_proxy, 1);
+ for (;;) {
+ if (self->end)
+ break;
+ pw_thread_loop_wait (self->main_loop);
+ }
+ GST_DEBUG_OBJECT (self, "started");
+
pw_thread_loop_unlock (self->main_loop);
return TRUE;
diff --git a/src/modules/module-autolink.c b/src/modules/module-autolink.c
index 60ecf102..92538a21 100644
--- a/src/modules/module-autolink.c
+++ b/src/modules/module-autolink.c
@@ -117,8 +117,15 @@ link_state_changed(void *data, enum pw_link_state old, enum pw_link_state state,
switch (state) {
case PW_LINK_STATE_ERROR:
+ {
+ struct pw_resource *owner = pw_node_get_owner(info->node);
+
pw_log_debug("module %p: link %p: state error: %s", impl, link, error);
+ if (owner)
+ pw_resource_error(owner, SPA_RESULT_ERROR, error);
+
break;
+ }
case PW_LINK_STATE_UNLINKED:
pw_log_debug("module %p: link %p: unlinked", impl, link);
diff --git a/src/modules/module-protocol-native.c b/src/modules/module-protocol-native.c
index 153cf4f6..ca320841 100644
--- a/src/modules/module-protocol-native.c
+++ b/src/modules/module-protocol-native.c
@@ -625,7 +625,8 @@ impl_new_client(struct pw_protocol *protocol,
this->disconnect = impl_disconnect;
this->destroy = impl_destroy;
- impl->flush_event = pw_loop_add_event(remote->core->main_loop, do_flush_event, impl);
+ impl->fd = -1;
+ impl->flush_event = pw_loop_add_event(remote->core->main_loop, do_flush_event, impl);
spa_list_append(&protocol->client_list, &this->link);