svn commit: r425809 - in head/audio/pulseaudio: . files

Jan Beich jbeich at FreeBSD.org
Wed Nov 9 21:54:31 UTC 2016


Author: jbeich
Date: Wed Nov  9 21:54:29 2016
New Revision: 425809
URL: https://svnweb.freebsd.org/changeset/ports/425809

Log:
  audio/pulseaudio: respect hw.snd.default_unit
  
  PR:		211684
  Submitted by:	lightside <lightside at gmx.com>
  Reviewed by:	Tobias Kortkamp <t at tobik.me>
  Approved by:	maintainer timeout (3 months)
  MFH:		2016Q4 (notorious for affecting www/firefox)

Modified:
  head/audio/pulseaudio/Makefile   (contents, props changed)
  head/audio/pulseaudio/files/patch-src_modules_module-detect.c   (contents, props changed)
  head/audio/pulseaudio/files/pkg-message.in   (contents, props changed)

Modified: head/audio/pulseaudio/Makefile
==============================================================================
--- head/audio/pulseaudio/Makefile	Wed Nov  9 21:30:49 2016	(r425808)
+++ head/audio/pulseaudio/Makefile	Wed Nov  9 21:54:29 2016	(r425809)
@@ -6,6 +6,7 @@
 
 PORTNAME=	pulseaudio
 PORTVERSION=	9.0
+PORTREVISION=	1
 CATEGORIES=	audio
 MASTER_SITES=	http://freedesktop.org/software/pulseaudio/releases/
 

Modified: head/audio/pulseaudio/files/patch-src_modules_module-detect.c
==============================================================================
--- head/audio/pulseaudio/files/patch-src_modules_module-detect.c	Wed Nov  9 21:30:49 2016	(r425808)
+++ head/audio/pulseaudio/files/patch-src_modules_module-detect.c	Wed Nov  9 21:54:29 2016	(r425809)
@@ -1,12 +1,54 @@
 --- src/modules/module-detect.c.orig	2016-05-10 12:28:04 UTC
 +++ src/modules/module-detect.c
-@@ -160,8 +160,7 @@ static int detect_oss(pa_core *c, int ju
+@@ -160,11 +160,48 @@ static int detect_oss(pa_core *c, int ju
                  continue;
  
          } else if (sscanf(line, "pcm%u: ", &device) == 1) {
 -            /* FreeBSD support, the devices are named /dev/dsp0.0, dsp0.1 and so on */
 -            pa_snprintf(args, sizeof(args), "device=/dev/dsp%u.0", device);
 +            pa_snprintf(args, sizeof(args), "device=/dev/dsp%u", device);
++            pa_module *m = pa_module_load(c, "module-oss", args);
  
-             if (!pa_module_load(c, "module-oss", args))
+-            if (!pa_module_load(c, "module-oss", args))
++            if (!m)
++                continue;
++
++            if (!pa_endswith(line, "default"))
++                continue;
++
++            char *p = strrchr(line, '>');
++
++            if (p)
++                p = strchr(p, '(');
++
++            if (!p)
                  continue;
++
++            if (!c->default_sink && (strstr(p, "play") || (strstr(p, "p:") && !strstr(p, "(0p:")))) {
++                uint32_t idx = PA_IDXSET_INVALID;
++                pa_sink *s;
++                PA_IDXSET_FOREACH(s, c->sinks, idx) {
++                    if (s->module == m) {
++                        if (!pa_namereg_set_default_sink(c, s))
++                            pa_log_error("failed to set default sink for device: /dev/dsp%u", device);
++
++                        break;
++                    }
++                }
++            }
++
++            if (!c->default_source && (strstr(p, "rec") || (strstr(p, "r:") && !strstr(p, "/0r:")))) {
++                uint32_t idx = PA_IDXSET_INVALID;
++                pa_source *s;
++                PA_IDXSET_FOREACH(s, c->sources, idx) {
++                    if (s->module == m) {
++                        if (!pa_namereg_set_default_source(c, s))
++                            pa_log_error("failed to set default source for device: /dev/dsp%u", device);
++
++                        break;
++                    }
++                }
++            }
+         }
+ 
+         n++;

Modified: head/audio/pulseaudio/files/pkg-message.in
==============================================================================
--- head/audio/pulseaudio/files/pkg-message.in	Wed Nov  9 21:30:49 2016	(r425808)
+++ head/audio/pulseaudio/files/pkg-message.in	Wed Nov  9 21:54:29 2016	(r425809)
@@ -1,8 +1,10 @@
+Pulseaudio tries to determine default values for FreeBSD OSS driver at first
+start, based on /dev/sndstat output. The hw.snd.default_unit sysctl may affect
+these values, but restart of the Pulseaudio might be needed to rescan it again,
+e.g. `pacmd exit`.
 
-Pulseaudio doesn't know about the hw.snd.default_unit=3 sysctl for the
-FreeBSD OSS driver that is used to select the active input/output. So
-for Pulseaudio we also need to tell it which input/output to use. The
-difference is that Pulseaudio has separate input and output configure lines.
+Pulseaudio has separate input and output configure lines. You can change them
+with using following commands:
 
 To change the default sink (output):
 # pacmd set-default-sink 3
@@ -11,7 +13,7 @@ To change the default source (input):
 
 This can also be set in %%PREFIX%%/etc/pulse/default.pa
 
-Replace the number '3' with the new default your want to set.
+Replace the number '3' with the new default you want to set.
 
 
 The audio/freedesktop-sound-theme is needed if the default sound files


More information about the svn-ports-head mailing list