<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[145997] trunk/dports/audio/pulseaudio</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/145997">145997</a></dd>
<dt>Author</dt> <dd>ionic@macports.org</dd>
<dt>Date</dt> <dd>2016-02-23 19:07:26 -0800 (Tue, 23 Feb 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>pulseaudio: update to 8.0.

Changes:
  - Drop libsamplerate support, was already deprecated in 6.0 and speex
    can handle everything libsamplerate did.
  - Add soxr as a normal dependency for resampling support. Disable when
    using the minimal variant.
  - Refactor patches, drop upstreamed patches, rework the others.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportsaudiopulseaudioPortfile">trunk/dports/audio/pulseaudio/Portfile</a></li>
<li><a href="#trunkdportsaudiopulseaudiofilespatchconfigureaccoreservicesdiff">trunk/dports/audio/pulseaudio/files/patch-configure.ac-coreservices.diff</a></li>
<li><a href="#trunkdportsaudiopulseaudiofilespatchmanMakefileamdiff">trunk/dports/audio/pulseaudio/files/patch-man-Makefile.am.diff</a></li>
<li><a href="#trunkdportsaudiopulseaudiofilespatchsrc_daemon_capscenablerootdiff">trunk/dports/audio/pulseaudio/files/patch-src_daemon_caps.c-enable-root.diff</a></li>
<li><a href="#trunkdportsaudiopulseaudiofilespatchsrc_daemon_defaultpainskipconsolekitandsystemdlogindiff">trunk/dports/audio/pulseaudio/files/patch-src_daemon_default.pa.in-skip-consolekit-and-systemdlogin.diff</a></li>
<li><a href="#trunkdportsaudiopulseaudiofilespatchsrc_modules_macosx_module_coreaudio_detect_devicecaddrecordplaybackmodargdiff">trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_detect_device.c-add-record-playback-modarg.diff</a></li>
<li><a href="#trunkdportsaudiopulseaudiofilespatchsrc_modules_macosx_module_coreaudio_devicecrespectPA_NAME_MAXdiff">trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-respect-PA_NAME_MAX.diff</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkdportsaudiopulseaudiofilespatchsrc_modules_macosx_module_coreaudio_devicecdynamicallyallocateCstringwhenconvertingfromCFStringpatch">trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-dynamically-allocate-C-string-when-converting-from-CFString.patch</a></li>
<li><a href="#trunkdportsaudiopulseaudiofilespatchsrc_modules_macosx_module_coreaudio_devicecskipunsupportedchannelscountdiff">trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-skip-unsupported-channels-count.diff</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkdportsaudiopulseaudiofilespatchconfigureacaddHAVE_COREAUDIOdiff">trunk/dports/audio/pulseaudio/files/patch-configure.ac-add-HAVE_COREAUDIO.diff</a></li>
<li><a href="#trunkdportsaudiopulseaudiofilespatchsrc_daemon_defaultpainloadmodulecoreaudiodetectdiff">trunk/dports/audio/pulseaudio/files/patch-src_daemon_default.pa.in-load-module-coreaudio-detect.diff</a></li>
<li><a href="#trunkdportsaudiopulseaudiofilespatchsrc_daemon_systempainloadmodulecoreaudiodetectdiff">trunk/dports/audio/pulseaudio/files/patch-src_daemon_system.pa.in-load-module-coreaudio-detect.diff</a></li>
<li><a href="#trunkdportsaudiopulseaudiofilespatchsrc_modules_macosx_module_coreaudio_devicecfixchannelsdiff">trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-fix-channels.diff</a></li>
<li><a href="#trunkdportsaudiopulseaudiofilespatchsrc_modules_macosx_module_coreaudio_devicecfixdevicenamesdiff">trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-fix-device-names.diff</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportsaudiopulseaudioPortfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/audio/pulseaudio/Portfile (145996 => 145997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/audio/pulseaudio/Portfile        2016-02-24 02:03:51 UTC (rev 145996)
+++ trunk/dports/audio/pulseaudio/Portfile        2016-02-24 03:07:26 UTC (rev 145997)
</span><span class="lines">@@ -8,8 +8,8 @@
</span><span class="cx"> PortGroup           active_variants 1.1
</span><span class="cx"> 
</span><span class="cx"> name                pulseaudio
</span><del>-version             6.0
-revision            9
</del><ins>+version             8.0
+revision            0
</ins><span class="cx"> license             LGPL-2.1
</span><span class="cx"> categories          audio
</span><span class="cx"> maintainers         ionic openmaintainer
</span><span class="lines">@@ -28,8 +28,8 @@
</span><span class="cx"> 
</span><span class="cx"> use_xz              yes
</span><span class="cx"> 
</span><del>-checksums           rmd160  a3f96cabc2872646c34ba581d6044dc4a6513fd9 \
-                    sha256  b50640e0b80b1607600accfad2e45aabb79d379bf6354c9671efa2065477f6f6
</del><ins>+checksums           rmd160  fc2700ec34ae9cbecd85c1ad6253b4c224541c96 \
+                    sha256  690eefe28633466cfd1ab9d85ebfa9376f6b622deec6bfee5091ac9737cd1989
</ins><span class="cx"> 
</span><span class="cx"> depends_build       port:pkgconfig \
</span><span class="cx">                     port:intltool \
</span><span class="lines">@@ -41,7 +41,6 @@
</span><span class="cx"> depends_lib         port:libiconv \
</span><span class="cx">                     port:json-c \
</span><span class="cx">                     port:libsndfile \
</span><del>-                    port:libsamplerate \
</del><span class="cx">                     port:libtool \
</span><span class="cx">                     port:gdbm \
</span><span class="cx">                     path:lib/pkgconfig/glib-2.0.pc:glib2 \
</span><span class="lines">@@ -49,7 +48,8 @@
</span><span class="cx">                     port:dbus \
</span><span class="cx">                     port:fftw-3-single \
</span><span class="cx">                     path:lib/libspeex.dylib:speex \
</span><del>-                    port:orc
</del><ins>+                    port:orc \
+                    port:soxr
</ins><span class="cx"> 
</span><span class="cx"> # configure falls back to libatomic_ops as last resort
</span><span class="cx"> # if no linux kernel support and inline asm snippet fails to build
</span><span class="lines">@@ -66,21 +66,18 @@
</span><span class="cx"> #configure.cflags-append -g3 -ggdb3 -gdwarf-4 -O0
</span><span class="cx"> #configure.cxxflags-append -g3 -ggdb3 -gdwarf-4 -O0
</span><span class="cx"> 
</span><del>-# The last three patches make PulseAudio startup correctly.
</del><ins>+# Some patches make PulseAudio startup correctly.
</ins><span class="cx"> # Will hopefully be merged upstream soon.
</span><del>-# All work has been sent upstream.
</del><ins>+# All work has or will be sent upstream.
</ins><span class="cx"> # C.f. https://bugs.freedesktop.org/show_bug.cgi?id=62987
</span><span class="cx"> # and posts on the mailing list.
</span><span class="cx"> patchfiles          patch-man-Makefile.am.diff \
</span><span class="cx">                     i386.patch \
</span><del>-                    patch-configure.ac-add-HAVE_COREAUDIO.diff \
</del><span class="cx">                     patch-configure.ac-coreservices.diff \
</span><del>-                    patch-src_daemon_default.pa.in-load-module-coreaudio-detect.diff \
-                    patch-src_daemon_system.pa.in-load-module-coreaudio-detect.diff \
</del><ins>+                    patch-src_modules_macosx_module_coreaudio_device.c-dynamically-allocate-C-string-when-converting-from-CFString.patch \
+                    patch-src_modules_macosx_module_coreaudio_device.c-skip-unsupported-channels-count.diff \
+                    patch-src_modules_macosx_module_coreaudio_device.c-respect-PA_NAME_MAX.diff \
</ins><span class="cx">                     patch-src_daemon_default.pa.in-skip-consolekit-and-systemdlogin.diff \
</span><del>-                    patch-src_modules_macosx_module_coreaudio_device.c-fix-device-names.diff \
-                    patch-src_modules_macosx_module_coreaudio_device.c-fix-channels.diff \
-                    patch-src_modules_macosx_module_coreaudio_device.c-respect-PA_NAME_MAX.diff \
</del><span class="cx">                     patch-src_modules_macosx_module_coreaudio_detect_device.c-add-record-playback-modarg.diff
</span><span class="cx"> 
</span><span class="cx"> # reconfigure using upstream autogen.sh for intltool 0.51 compatibility
</span><span class="lines">@@ -94,6 +91,7 @@
</span><span class="cx"> 
</span><span class="cx"> configure.args      --with-mac-version-min=$macosx_deployment_target \
</span><span class="cx">                     --with-caps \
</span><ins>+                    --with-soxr \
</ins><span class="cx">                     --disable-silent-rules \
</span><span class="cx">                     --disable-tests \
</span><span class="cx">                     --disable-x11 \
</span><span class="lines">@@ -147,14 +145,17 @@
</span><span class="cx"> 
</span><span class="cx"> variant minimal conflicts jack conflicts x11 description {Builds a minimal version. Do not use if unsure. Please build this ONLY in trace mode.} {
</span><span class="cx">     depends_lib-delete      port:libiconv \
</span><del>-                            port:libsamplerate \
</del><span class="cx">                             port:gdbm \
</span><span class="cx">                             path:lib/pkgconfig/glib-2.0.pc:glib2 \
</span><span class="cx">                             port:gtk3 \
</span><span class="cx">                             port:dbus \
</span><span class="cx">                             port:fftw-3-single \
</span><del>-                            port:orc
</del><ins>+                            port:orc \
+                            port:soxr
</ins><span class="cx"> 
</span><ins>+    configure.args-replace  --with-soxr \
+                            --without-soxr
+
</ins><span class="cx">     configure.args-replace  --enable-orc \
</span><span class="cx">                             --disable-orc
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkdportsaudiopulseaudiofilespatchconfigureacaddHAVE_COREAUDIOdiff"></a>
<div class="delfile"><h4>Deleted: trunk/dports/audio/pulseaudio/files/patch-configure.ac-add-HAVE_COREAUDIO.diff (145996 => 145997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/audio/pulseaudio/files/patch-configure.ac-add-HAVE_COREAUDIO.diff        2016-02-24 02:03:51 UTC (rev 145996)
+++ trunk/dports/audio/pulseaudio/files/patch-configure.ac-add-HAVE_COREAUDIO.diff        2016-02-24 03:07:26 UTC (rev 145997)
</span><span class="lines">@@ -1,14 +0,0 @@
</span><del>---- configure.ac.orig        2014-02-15 03:33:32.000000000 -0500
-+++ configure.ac        2014-11-23 22:05:59.000000000 -0500
-@@ -767,8 +794,11 @@
- AS_IF([test &quot;x$enable_coreaudio_output&quot; = &quot;xyes&quot; &amp;&amp; test &quot;x$HAVE_COREAUDIO&quot; = &quot;x0&quot;],
-     [AC_MSG_ERROR([*** CoreAudio output support not found])])

-+AC_SUBST(HAVE_COREAUDIO)
- AM_CONDITIONAL([HAVE_COREAUDIO], [test &quot;x$HAVE_COREAUDIO&quot; = &quot;x1&quot; &amp;&amp; test &quot;x$enable_coreaudio_output&quot; != &quot;xno&quot;])

-+AS_IF([test &quot;x$HAVE_COREAUDIO&quot; = &quot;x1&quot;], AC_DEFINE([HAVE_COREAUDIO], 1, [Have CoreAudio?]))
-+
- #### ALSA support (optional) ####

- AC_ARG_ENABLE([alsa],
</del></span></pre></div>
<a id="trunkdportsaudiopulseaudiofilespatchconfigureaccoreservicesdiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/audio/pulseaudio/files/patch-configure.ac-coreservices.diff (145996 => 145997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/audio/pulseaudio/files/patch-configure.ac-coreservices.diff        2016-02-24 02:03:51 UTC (rev 145996)
+++ trunk/dports/audio/pulseaudio/files/patch-configure.ac-coreservices.diff        2016-02-24 03:07:26 UTC (rev 145997)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><del>---- configure.ac.orig        2015-06-16 02:16:21.000000000 -0700
-+++ configure.ac        2015-06-16 02:24:07.000000000 -0700
-@@ -521,13 +521,9 @@ AC_SEARCH_LIBS([backtrace], [execinfo ub
</del><ins>+--- configure.ac.old        2016-01-22 08:33:38.000000000 +0100
++++ configure.ac        2016-02-22 21:15:46.000000000 +0100
+@@ -533,13 +533,9 @@ AC_SEARCH_LIBS([backtrace], [execinfo ub
</ins><span class="cx">  # Darwin/OS X
</span><span class="cx">  if test &quot;x$os_is_darwin&quot; = &quot;x1&quot; ; then
</span><span class="cx">      AC_MSG_CHECKING([looking for Apple CoreService Framework])
</span></span></pre></div>
<a id="trunkdportsaudiopulseaudiofilespatchmanMakefileamdiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/audio/pulseaudio/files/patch-man-Makefile.am.diff (145996 => 145997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/audio/pulseaudio/files/patch-man-Makefile.am.diff        2016-02-24 02:03:51 UTC (rev 145996)
+++ trunk/dports/audio/pulseaudio/files/patch-man-Makefile.am.diff        2016-02-24 03:07:26 UTC (rev 145997)
</span><span class="lines">@@ -1,11 +1,11 @@
</span><del>---- man/Makefile.am.old        2015-04-17 00:22:04.000000000 +0200
-+++ man/Makefile.am        2015-04-17 00:23:14.000000000 +0200
-@@ -59,7 +59,7 @@
</del><ins>+--- man/Makefile.am.old        2015-09-10 06:51:41.000000000 +0200
++++ man/Makefile.am        2016-02-22 20:59:16.000000000 +0100
+@@ -57,7 +57,7 @@ CLEANFILES = \
</ins><span class="cx">          $(dist_man_MANS)
</span><span class="cx">  
</span><span class="cx">  %: %.xml Makefile
</span><span class="cx"> -        $(AM_V_GEN) perl $(srcdir)/xmltoman $&lt; &gt; $@ || rm -f $@
</span><span class="cx"> +        $(AM_V_GEN) @@MP_PERL@@ $(srcdir)/xmltoman $&lt; &gt; $@ || rm -f $@
</span><span class="cx">  
</span><del>- endif

</del><ins>+ if OS_IS_WIN32
+ SYMLINK_PROGRAM=cd $(DESTDIR)$(man1dir) &amp;&amp; cp
</ins></span></pre></div>
<a id="trunkdportsaudiopulseaudiofilespatchsrc_daemon_capscenablerootdiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/audio/pulseaudio/files/patch-src_daemon_caps.c-enable-root.diff (145996 => 145997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/audio/pulseaudio/files/patch-src_daemon_caps.c-enable-root.diff        2016-02-24 02:03:51 UTC (rev 145996)
+++ trunk/dports/audio/pulseaudio/files/patch-src_daemon_caps.c-enable-root.diff        2016-02-24 03:07:26 UTC (rev 145997)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><del>---- src/daemon/caps.c.old        2015-04-19 04:21:39.000000000 +0200
-+++ src/daemon/caps.c        2015-04-19 04:31:07.000000000 +0200
</del><ins>+--- src/daemon/caps.c.old        2015-09-10 06:51:41.000000000 +0200
++++ src/daemon/caps.c        2016-02-22 22:08:05.000000000 +0100
</ins><span class="cx"> @@ -54,22 +54,22 @@ void pa_drop_root(void) {
</span><span class="cx">      gid = getgid();
</span><span class="cx">  
</span></span></pre></div>
<a id="trunkdportsaudiopulseaudiofilespatchsrc_daemon_defaultpainloadmodulecoreaudiodetectdiff"></a>
<div class="delfile"><h4>Deleted: trunk/dports/audio/pulseaudio/files/patch-src_daemon_default.pa.in-load-module-coreaudio-detect.diff (145996 => 145997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/audio/pulseaudio/files/patch-src_daemon_default.pa.in-load-module-coreaudio-detect.diff        2016-02-24 02:03:51 UTC (rev 145996)
+++ trunk/dports/audio/pulseaudio/files/patch-src_daemon_default.pa.in-load-module-coreaudio-detect.diff        2016-02-24 03:07:26 UTC (rev 145997)
</span><span class="lines">@@ -1,13 +0,0 @@
</span><del>---- src/daemon/default.pa.in.orig        2014-01-23 13:57:55.000000000 -0500
-+++ src/daemon/default.pa.in        2014-11-23 22:03:02.000000000 -0500
-@@ -70,6 +70,10 @@
- .ifexists module-udev-detect@PA_SOEXT@
- load-module module-udev-detect
- .else
-+], @HAVE_COREAUDIO@, 1, [dnl
-+.ifexists module-coreaudio-detect@PA_SOEXT@
-+load-module module-coreaudio-detect record=1 playback=1
-+.else
- ], [dnl
- .ifexists module-detect@PA_SOEXT@
- ])dnl
</del></span></pre></div>
<a id="trunkdportsaudiopulseaudiofilespatchsrc_daemon_defaultpainskipconsolekitandsystemdlogindiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/audio/pulseaudio/files/patch-src_daemon_default.pa.in-skip-consolekit-and-systemdlogin.diff (145996 => 145997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/audio/pulseaudio/files/patch-src_daemon_default.pa.in-skip-consolekit-and-systemdlogin.diff        2016-02-24 02:03:51 UTC (rev 145996)
+++ trunk/dports/audio/pulseaudio/files/patch-src_daemon_default.pa.in-skip-consolekit-and-systemdlogin.diff        2016-02-24 03:07:26 UTC (rev 145997)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><del>---- src/daemon/default.pa.in.old        2015-04-20 06:24:03.000000000 +0200
-+++ src/daemon/default.pa.in        2015-04-21 05:49:35.000000000 +0200
</del><ins>+--- src/daemon/default.pa.in.old        2016-01-18 11:14:20.000000000 +0100
++++ src/daemon/default.pa.in        2016-02-22 21:31:10.000000000 +0100
</ins><span class="cx"> @@ -153,12 +153,14 @@ load-module module-suspend-on-idle
</span><span class="cx">  
</span><span class="cx">  ### If autoexit on idle is enabled we want to make sure we only quit
</span></span></pre></div>
<a id="trunkdportsaudiopulseaudiofilespatchsrc_daemon_systempainloadmodulecoreaudiodetectdiff"></a>
<div class="delfile"><h4>Deleted: trunk/dports/audio/pulseaudio/files/patch-src_daemon_system.pa.in-load-module-coreaudio-detect.diff (145996 => 145997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/audio/pulseaudio/files/patch-src_daemon_system.pa.in-load-module-coreaudio-detect.diff        2016-02-24 02:03:51 UTC (rev 145996)
+++ trunk/dports/audio/pulseaudio/files/patch-src_daemon_system.pa.in-load-module-coreaudio-detect.diff        2016-02-24 03:07:26 UTC (rev 145997)
</span><span class="lines">@@ -1,13 +0,0 @@
</span><del>---- src/daemon/system.pa.in.orig        2014-01-23 13:57:55.000000000 -0500
-+++ src/daemon/system.pa.in        2014-11-23 22:04:15.000000000 -0500
-@@ -28,6 +28,10 @@
- .ifexists module-hal-detect@PA_SOEXT@
- load-module module-hal-detect
- .else
-+], @HAVE_COREAUDIO@, 1, [dnl
-+.ifexists module-coreaudio-detect@PA_SOEXT@
-+load-module module-coreaudio-detect
-+.else
- ], [dnl
- .ifexists module-detect@PA_SOEXT@
- ])dnl
</del></span></pre></div>
<a id="trunkdportsaudiopulseaudiofilespatchsrc_modules_macosx_module_coreaudio_detect_devicecaddrecordplaybackmodargdiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_detect_device.c-add-record-playback-modarg.diff (145996 => 145997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_detect_device.c-add-record-playback-modarg.diff        2016-02-24 02:03:51 UTC (rev 145996)
+++ trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_detect_device.c-add-record-playback-modarg.diff        2016-02-24 03:07:26 UTC (rev 145997)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><del>---- src/modules/macosx/module-coreaudio-detect.c.old        2015-04-27 21:10:17.000000000 +0200
-+++ src/modules/macosx/module-coreaudio-detect.c        2015-04-27 22:09:07.000000000 +0200
</del><ins>+--- src/modules/macosx/module-coreaudio-detect.c.old        2015-09-10 06:51:41.000000000 +0200
++++ src/modules/macosx/module-coreaudio-detect.c        2016-02-23 00:59:31.000000000 +0100
</ins><span class="cx"> @@ -39,10 +39,14 @@ PA_MODULE_AUTHOR(&quot;Daniel Mack&quot;);
</span><span class="cx">  PA_MODULE_DESCRIPTION(&quot;CoreAudio device detection&quot;);
</span><span class="cx">  PA_MODULE_VERSION(PACKAGE_VERSION);
</span><span class="lines">@@ -45,10 +45,17 @@
</span><span class="cx">  
</span><span class="cx">      m-&gt;userdata = u;
</span><span class="cx">  
</span><del>-@@ -220,6 +227,16 @@ int pa__init(pa_module *m) {
</del><ins>+@@ -220,6 +227,23 @@ int pa__init(pa_module *m) {
</ins><span class="cx">          goto fail;
</span><span class="cx">      }
</span><span class="cx">  
</span><ins>++    /*
++     * Set default value to true if not given as a modarg.
++     * In such a case, pa_modargs_get_value_boolean() will not touch the
++     * buffer.
++     */
++    u-&gt;playback = u-&gt;record = true;
++
</ins><span class="cx"> +    if (pa_modargs_get_value_boolean(ma, &quot;record&quot;, &amp;u-&gt;record) &lt; 0 || pa_modargs_get_value_boolean(ma, &quot;playback&quot;, &amp;u-&gt;playback) &lt; 0) {
</span><span class="cx"> +        pa_log(&quot;record= and playback= expect boolean argument.&quot;);
</span><span class="cx"> +        goto fail;
</span><span class="lines">@@ -62,8 +69,8 @@
</span><span class="cx">      pa_modargs_get_value_u32(ma, &quot;ioproc_frames&quot;, &amp;u-&gt;ioproc_frames);
</span><span class="cx">  
</span><span class="cx">      property_address.mSelector = kAudioHardwarePropertyDevices;
</span><del>---- src/modules/macosx/module-coreaudio-device.c.old        2015-04-27 21:10:17.000000000 +0200
-+++ src/modules/macosx/module-coreaudio-device.c        2015-04-27 22:04:21.000000000 +0200
</del><ins>+--- src/modules/macosx/module-coreaudio-device.c.old        2016-02-23 00:57:43.000000000 +0100
++++ src/modules/macosx/module-coreaudio-device.c        2016-02-23 00:59:31.000000000 +0100
</ins><span class="cx"> @@ -58,11 +58,15 @@ PA_MODULE_DESCRIPTION(&quot;CoreAudio device&quot;
</span><span class="cx">  PA_MODULE_VERSION(PACKAGE_VERSION);
</span><span class="cx">  PA_MODULE_LOAD_ONCE(false);
</span></span></pre></div>
<a id="trunkdportsaudiopulseaudiofilespatchsrc_modules_macosx_module_coreaudio_devicecdynamicallyallocateCstringwhenconvertingfromCFStringpatch"></a>
<div class="addfile"><h4>Added: trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-dynamically-allocate-C-string-when-converting-from-CFString.patch (0 => 145997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-dynamically-allocate-C-string-when-converting-from-CFString.patch                                (rev 0)
+++ trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-dynamically-allocate-C-string-when-converting-from-CFString.patch        2016-02-24 03:07:26 UTC (rev 145997)
</span><span class="lines">@@ -0,0 +1,121 @@
</span><ins>+--- src/modules/macosx/module-coreaudio-device.c.old        2016-01-18 11:14:20.000000000 +0100
++++ src/modules/macosx/module-coreaudio-device.c        2016-02-23 00:53:21.000000000 +0100
+@@ -376,23 +376,23 @@ static int ca_sink_set_state(pa_sink *s,
+ }

+ /* Caveat: The caller is responsible to get rid of the CFString(Ref). */
+-static bool CFString_to_cstr_n(CFStringRef cfstr, char *buf, long n) {
+-    bool ret;
+-
+-    pa_assert (buf);
+-
+-    ret = false;
++static char * CFString_to_cstr(CFStringRef cfstr) {
++    char *ret = NULL;

+     if (cfstr != NULL) {
+         const char *tmp = CFStringGetCStringPtr(cfstr, kCFStringEncodingUTF8);
++        CFIndex n = CFStringGetLength(cfstr) + 1 /* for the terminating NULL */;
++
++        ret = pa_xmalloc(n);

+         if (tmp == NULL) {
+-            if (CFStringGetCString(cfstr, buf, n, kCFStringEncodingUTF8))
+-                ret = true;
++            if (!CFStringGetCString(cfstr, ret, n, kCFStringEncodingUTF8)) {
++                pa_xfree(ret);
++                ret = NULL;
++            }
+         } else {
+-            strncpy(buf, tmp, n);
+-            buf[n - 1] = 0;
+-            ret = true;
++            strncpy(ret, tmp, n - 1);
++            ret[n - 1] = '\0';
+         }
+     }

+@@ -408,7 +408,7 @@ static int ca_device_create_sink(pa_modu
+     coreaudio_sink *ca_sink;
+     pa_sink *sink;
+     unsigned int i;
+-    char tmp[255];
++    char *tmp;
+     pa_strbuf *strbuf;
+     AudioObjectPropertyAddress property_address;
+     CFStringRef tmp_cfstr = NULL;
+@@ -425,23 +425,24 @@ static int ca_device_create_sink(pa_modu
+         property_address.mSelector = kAudioObjectPropertyElementName;
+         property_address.mScope = kAudioDevicePropertyScopeOutput;
+         property_address.mElement = channel_idx + i + 1;
+-        size = sizeof(tmp);
++        size = sizeof(tmp_cfstr);
+         err = AudioObjectGetPropertyData(u-&gt;object_id, &amp;property_address, 0, NULL, &amp;size, &amp;tmp_cfstr);
+         if (err == 0) {
+-            err = !(CFString_to_cstr_n(tmp_cfstr, tmp, sizeof(tmp)));
++            tmp = CFString_to_cstr(tmp_cfstr);

+-            if (tmp_cfstr) {
++            if (tmp_cfstr)
+                 CFRelease(tmp_cfstr);
+-            }
+         }

+-        if (err || !strlen(tmp))
+-            snprintf(tmp, sizeof(tmp), &quot;Channel %d&quot;, (int) property_address.mElement);
+-
+         if (i &gt; 0)
+             pa_strbuf_puts(strbuf, &quot;, &quot;);

+-        pa_strbuf_puts(strbuf, tmp);
++        if (err || !tmp || !strlen(tmp))
++            pa_strbuf_printf(strbuf, &quot;Channel %d&quot;, (int) property_address.mElement);
++        else
++            pa_strbuf_puts(strbuf, tmp);
++
++        pa_xfree(tmp);
+     }

+     ca_sink-&gt;name = pa_strbuf_to_string_free(strbuf);
+@@ -535,7 +536,7 @@ static int ca_device_create_source(pa_mo
+     coreaudio_source *ca_source;
+     pa_source *source;
+     unsigned int i;
+-    char tmp[255];
++    char *tmp;
+     pa_strbuf *strbuf;
+     AudioObjectPropertyAddress property_address;
+     CFStringRef tmp_cfstr = NULL;
+@@ -552,23 +553,24 @@ static int ca_device_create_source(pa_mo
+         property_address.mSelector = kAudioObjectPropertyElementName;
+         property_address.mScope = kAudioDevicePropertyScopeInput;
+         property_address.mElement = channel_idx + i + 1;
+-        size = sizeof(tmp);
++        size = sizeof(tmp_cfstr);
+         err = AudioObjectGetPropertyData(u-&gt;object_id, &amp;property_address, 0, NULL, &amp;size, &amp;tmp_cfstr);
+         if (err == 0) {
+-            err = !(CFString_to_cstr_n(tmp_cfstr, tmp, sizeof(tmp)));
++            tmp = CFString_to_cstr(tmp_cfstr);

+-            if (tmp_cfstr) {
++            if (tmp_cfstr)
+                 CFRelease(tmp_cfstr);
+-            }
+         }

+-        if (err || !strlen(tmp))
+-            snprintf(tmp, sizeof(tmp), &quot;Channel %d&quot;, (int) property_address.mElement);
+-
+         if (i &gt; 0)
+             pa_strbuf_puts(strbuf, &quot;, &quot;);

+-        pa_strbuf_puts(strbuf, tmp);
++        if (err || !tmp || !strlen(tmp))
++            pa_strbuf_printf(strbuf, &quot;Channel %d&quot;, (int) property_address.mElement);
++        else
++            pa_strbuf_puts(strbuf, tmp);
++
++        pa_xfree(tmp);
+     }

+     ca_source-&gt;name = pa_strbuf_to_string_free(strbuf);
</ins></span></pre></div>
<a id="trunkdportsaudiopulseaudiofilespatchsrc_modules_macosx_module_coreaudio_devicecfixchannelsdiff"></a>
<div class="delfile"><h4>Deleted: trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-fix-channels.diff (145996 => 145997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-fix-channels.diff        2016-02-24 02:03:51 UTC (rev 145996)
+++ trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-fix-channels.diff        2016-02-24 03:07:26 UTC (rev 145997)
</span><span class="lines">@@ -1,86 +0,0 @@
</span><del>---- src/modules/macosx/module-coreaudio-device.c.old        2015-04-19 07:45:52.000000000 +0200
-+++ src/modules/macosx/module-coreaudio-device.c        2015-04-19 07:59:17.000000000 +0200
-@@ -415,21 +415,28 @@ static int ca_device_create_sink(pa_modu
-     pa_sink_flags_t flags = PA_SINK_LATENCY | PA_SINK_HARDWARE;
-     coreaudio_sink *ca_sink;
-     pa_sink *sink;
--    unsigned int i;
-+    unsigned int i, channels;
-     char tmp[255];
-     pa_strbuf *strbuf;
-     AudioObjectPropertyAddress property_address;
-     CFStringRef tmp_cfstr;

-     ca_sink = pa_xnew0(coreaudio_sink, 1);
--    ca_sink-&gt;map.channels = buf-&gt;mNumberChannels;
--    ca_sink-&gt;ss.channels = buf-&gt;mNumberChannels;
-+
-+    /* Clamp to PA_CHANNELS_MAX. */
-+    channels = buf-&gt;mNumberChannels;
-+    if (channels &gt; PA_CHANNELS_MAX) {
-+        channels = PA_CHANNELS_MAX;
-+    }
-+
-+    ca_sink-&gt;map.channels = channels;
-+    ca_sink-&gt;ss.channels = channels;
-     ca_sink-&gt;channel_idx = channel_idx;

-     /* build a name for this stream */
-     strbuf = pa_strbuf_new();

--    for (i = 0; i &lt; buf-&gt;mNumberChannels; i++) {
-+    for (i = 0; i &lt; channels; i++) {
-         property_address.mSelector = kAudioObjectPropertyElementName;
-         property_address.mScope = kAudioDevicePropertyScopeOutput;
-         property_address.mElement = channel_idx + i + 1;
-@@ -456,7 +463,7 @@ static int ca_device_create_sink(pa_modu
-     for (i = 0; i &lt; ca_sink-&gt;map.channels; i++)
-         ca_sink-&gt;map.map[i] = PA_CHANNEL_POSITION_MONO;

--    if (buf-&gt;mNumberChannels == 2) {
-+    if (channels == 2) {
-         ca_sink-&gt;map.map[0] = PA_CHANNEL_POSITION_LEFT;
-         ca_sink-&gt;map.map[1] = PA_CHANNEL_POSITION_RIGHT;
-     }
-@@ -538,21 +545,28 @@ static int ca_device_create_source(pa_mo
-     pa_source_flags_t flags = PA_SOURCE_LATENCY | PA_SOURCE_HARDWARE;
-     coreaudio_source *ca_source;
-     pa_source *source;
--    unsigned int i;
-+    unsigned int i, channels;
-     char tmp[255];
-     pa_strbuf *strbuf;
-     AudioObjectPropertyAddress property_address;
-     CFStringRef tmp_cfstr;

-     ca_source = pa_xnew0(coreaudio_source, 1);
--    ca_source-&gt;map.channels = buf-&gt;mNumberChannels;
--    ca_source-&gt;ss.channels = buf-&gt;mNumberChannels;
-+
-+    /* Clamp to PA_CHANNELS_MAX. */
-+    channels = buf-&gt;mNumberChannels;
-+    if (channels &gt; PA_CHANNELS_MAX) {
-+        channels = PA_CHANNELS_MAX;
-+    }
-+
-+    ca_source-&gt;map.channels = channels;
-+    ca_source-&gt;ss.channels = channels;
-     ca_source-&gt;channel_idx = channel_idx;

-     /* build a name for this stream */
-     strbuf = pa_strbuf_new();

--    for (i = 0; i &lt; buf-&gt;mNumberChannels; i++) {
-+    for (i = 0; i &lt; channels; i++) {
-         property_address.mSelector = kAudioObjectPropertyElementName;
-         property_address.mScope = kAudioDevicePropertyScopeInput;
-         property_address.mElement = channel_idx + i + 1;
-@@ -579,7 +593,7 @@ static int ca_device_create_source(pa_mo
-     for (i = 0; i &lt; ca_source-&gt;map.channels; i++)
-         ca_source-&gt;map.map[i] = PA_CHANNEL_POSITION_MONO;

--    if (buf-&gt;mNumberChannels == 2) {
-+    if (channels == 2) {
-         ca_source-&gt;map.map[0] = PA_CHANNEL_POSITION_LEFT;
-         ca_source-&gt;map.map[1] = PA_CHANNEL_POSITION_RIGHT;
-     }
</del></span></pre></div>
<a id="trunkdportsaudiopulseaudiofilespatchsrc_modules_macosx_module_coreaudio_devicecfixdevicenamesdiff"></a>
<div class="delfile"><h4>Deleted: trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-fix-device-names.diff (145996 => 145997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-fix-device-names.diff        2016-02-24 02:03:51 UTC (rev 145996)
+++ trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-fix-device-names.diff        2016-02-24 03:07:26 UTC (rev 145997)
</span><span class="lines">@@ -1,84 +0,0 @@
</span><del>---- src/modules/macosx/module-coreaudio-device.c.old        2015-04-19 07:39:23.000000000 +0200
-+++ src/modules/macosx/module-coreaudio-device.c        2015-04-19 07:40:13.000000000 +0200
-@@ -374,6 +374,39 @@ static int ca_sink_set_state(pa_sink *s,
-     return 0;
- }

-+/* Caveat: this function frees the CFString if conversion succeeded. */
-+static int CFString_to_cstr_n(CFStringRef cfstr, char *buf, long n) {
-+    int ret;
-+
-+    assert (buf);
-+
-+    ret = 0;
-+
-+    if (cfstr != NULL) {
-+        const char *tmp = CFStringGetCStringPtr(cfstr, kCFStringEncodingUTF8);
-+
-+        if (tmp == NULL) {
-+            if (CFStringGetCString(cfstr, buf, n, kCFStringEncodingUTF8))
-+                ret = 1;
-+        }
-+        else {
-+            strncpy(buf, tmp, n);
-+            buf[n - 1] = 0;
-+            ret = 1;
-+        }
-+    }
-+
-+    /*
-+     * A true value for ret implies cfstr != NULL, but let's still do the check
-+     * for safety reasons (i.e., should this code ever be re-organized...)
-+     */
-+    if (ret &amp;&amp; cfstr != NULL) {
-+        CFRelease(cfstr);
-+    }
-+
-+    return ret;
-+}
-+
- static int ca_device_create_sink(pa_module *m, AudioBuffer *buf, int channel_idx) {
-     OSStatus err;
-     UInt32 size;
-@@ -386,6 +419,7 @@ static int ca_device_create_sink(pa_modu
-     char tmp[255];
-     pa_strbuf *strbuf;
-     AudioObjectPropertyAddress property_address;
-+    CFStringRef tmp_cfstr;

-     ca_sink = pa_xnew0(coreaudio_sink, 1);
-     ca_sink-&gt;map.channels = buf-&gt;mNumberChannels;
-@@ -400,7 +434,11 @@ static int ca_device_create_sink(pa_modu
-         property_address.mScope = kAudioDevicePropertyScopeOutput;
-         property_address.mElement = channel_idx + i + 1;
-         size = sizeof(tmp);
--        err = AudioObjectGetPropertyData(u-&gt;object_id, &amp;property_address, 0, NULL, &amp;size, tmp);
-+        err = AudioObjectGetPropertyData(u-&gt;object_id, &amp;property_address, 0, NULL, &amp;size, &amp;tmp_cfstr);
-+        if (err == 0) {
-+            err = !(CFString_to_cstr_n(tmp_cfstr, tmp, sizeof(tmp)));
-+        }
-+
-         if (err || !strlen(tmp))
-             snprintf(tmp, sizeof(tmp), &quot;Channel %d&quot;, (int) property_address.mElement);

-@@ -504,6 +542,7 @@ static int ca_device_create_source(pa_mo
-     char tmp[255];
-     pa_strbuf *strbuf;
-     AudioObjectPropertyAddress property_address;
-+    CFStringRef tmp_cfstr;

-     ca_source = pa_xnew0(coreaudio_source, 1);
-     ca_source-&gt;map.channels = buf-&gt;mNumberChannels;
-@@ -518,7 +557,11 @@ static int ca_device_create_source(pa_mo
-         property_address.mScope = kAudioDevicePropertyScopeInput;
-         property_address.mElement = channel_idx + i + 1;
-         size = sizeof(tmp);
--        err = AudioObjectGetPropertyData(u-&gt;object_id, &amp;property_address, 0, NULL, &amp;size, tmp);
-+        err = AudioObjectGetPropertyData(u-&gt;object_id, &amp;property_address, 0, NULL, &amp;size, &amp;tmp_cfstr);
-+        if (err == 0) {
-+            err = !(CFString_to_cstr_n(tmp_cfstr, tmp, sizeof(tmp)));
-+        }
-+
-         if (err || !strlen(tmp))
-             snprintf(tmp, sizeof(tmp), &quot;Channel %d&quot;, (int) property_address.mElement);

</del></span></pre></div>
<a id="trunkdportsaudiopulseaudiofilespatchsrc_modules_macosx_module_coreaudio_devicecrespectPA_NAME_MAXdiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-respect-PA_NAME_MAX.diff (145996 => 145997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-respect-PA_NAME_MAX.diff        2016-02-24 02:03:51 UTC (rev 145996)
+++ trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-respect-PA_NAME_MAX.diff        2016-02-24 03:07:26 UTC (rev 145997)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><del>---- src/modules/macosx/module-coreaudio-device.c.old        2015-04-20 01:41:14.000000000 +0200
-+++ src/modules/macosx/module-coreaudio-device.c        2015-04-20 01:43:58.000000000 +0200
</del><ins>+--- src/modules/macosx/module-coreaudio-device.c.old        2016-02-23 23:32:59.000000000 +0100
++++ src/modules/macosx/module-coreaudio-device.c        2016-02-23 23:33:34.000000000 +0100
</ins><span class="cx"> @@ -43,6 +43,7 @@
</span><span class="cx">  #include &lt;pulsecore/thread.h&gt;
</span><span class="cx">  #include &lt;pulsecore/thread-mq.h&gt;
</span><span class="lines">@@ -8,23 +8,24 @@
</span><span class="cx">  
</span><span class="cx">  #include &lt;CoreAudio/CoreAudio.h&gt;
</span><span class="cx">  #include &lt;CoreAudio/CoreAudioTypes.h&gt;
</span><del>-@@ -416,7 +417,7 @@ static int ca_device_create_sink(pa_modu
</del><ins>+@@ -408,7 +409,7 @@ static int ca_device_create_sink(pa_modu
</ins><span class="cx">      coreaudio_sink *ca_sink;
</span><span class="cx">      pa_sink *sink;
</span><del>-     unsigned int i, channels;
--    char tmp[255];
-+    char tmp[255], *tmp_clamp;
</del><ins>+     unsigned int i;
+-    char *tmp;
++    char *tmp, *tmp_clamp;
</ins><span class="cx">      pa_strbuf *strbuf;
</span><span class="cx">      AudioObjectPropertyAddress property_address;
</span><del>-     CFStringRef tmp_cfstr;
-@@ -455,7 +456,14 @@ static int ca_device_create_sink(pa_modu
-         pa_strbuf_puts(strbuf, tmp);
</del><ins>+     CFStringRef tmp_cfstr = NULL;
+@@ -450,7 +451,15 @@ static int ca_device_create_sink(pa_modu
+         pa_xfree(tmp);
</ins><span class="cx">      }
</span><span class="cx">  
</span><del>--    ca_sink-&gt;name = pa_strbuf_tostring_free(strbuf);
</del><ins>+-    ca_sink-&gt;name = pa_strbuf_to_string_free(strbuf);
</ins><span class="cx"> +    /* Clamp to PA_NAME_MAX and leave a &quot;safety margin&quot; for deduplication
</span><span class="cx"> +     * and other appended data. */
</span><del>-+    tmp_clamp = pa_strbuf_tostring_free(strbuf);
</del><ins>++    tmp_clamp = pa_strbuf_to_string_free(strbuf);
++    tmp = pa_xmalloc0(PA_NAME_MAX);
</ins><span class="cx"> +    strncpy(tmp, tmp_clamp, PA_NAME_MAX - 20);
</span><span class="cx"> +    tmp[PA_NAME_MAX - 20] = 0;
</span><span class="cx"> +    pa_xfree(tmp_clamp);
</span><span class="lines">@@ -33,23 +34,24 @@
</span><span class="cx">  
</span><span class="cx">      pa_log_debug(&quot;Stream name is &gt;%s&lt;&quot;, ca_sink-&gt;name);
</span><span class="cx">  
</span><del>-@@ -546,7 +554,7 @@ static int ca_device_create_source(pa_mo
</del><ins>+@@ -541,7 +550,7 @@ static int ca_device_create_source(pa_mo
</ins><span class="cx">      coreaudio_source *ca_source;
</span><span class="cx">      pa_source *source;
</span><del>-     unsigned int i, channels;
--    char tmp[255];
-+    char tmp[255], *tmp_clamp;
</del><ins>+     unsigned int i;
+-    char *tmp;
++    char *tmp, *tmp_clamp;
</ins><span class="cx">      pa_strbuf *strbuf;
</span><span class="cx">      AudioObjectPropertyAddress property_address;
</span><del>-     CFStringRef tmp_cfstr;
-@@ -585,7 +593,14 @@ static int ca_device_create_source(pa_mo
-         pa_strbuf_puts(strbuf, tmp);
</del><ins>+     CFStringRef tmp_cfstr = NULL;
+@@ -583,7 +592,15 @@ static int ca_device_create_source(pa_mo
+         pa_xfree(tmp);
</ins><span class="cx">      }
</span><span class="cx">  
</span><del>--    ca_source-&gt;name = pa_strbuf_tostring_free(strbuf);
</del><ins>+-    ca_source-&gt;name = pa_strbuf_to_string_free(strbuf);
</ins><span class="cx"> +    /* Clamp to PA_NAME_MAX and leave a &quot;safety margin&quot; for deduplication
</span><span class="cx"> +     * and other appended data. */
</span><del>-+    tmp_clamp = pa_strbuf_tostring_free(strbuf);
</del><ins>++    tmp_clamp = pa_strbuf_to_string_free(strbuf);
++    tmp = pa_xmalloc0(PA_NAME_MAX);
</ins><span class="cx"> +    strncpy(tmp, tmp_clamp, PA_NAME_MAX - 20);
</span><span class="cx"> +    tmp[PA_NAME_MAX - 20] = 0;
</span><span class="cx"> +    pa_xfree(tmp_clamp);
</span></span></pre></div>
<a id="trunkdportsaudiopulseaudiofilespatchsrc_modules_macosx_module_coreaudio_devicecskipunsupportedchannelscountdiff"></a>
<div class="addfile"><h4>Added: trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-skip-unsupported-channels-count.diff (0 => 145997)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-skip-unsupported-channels-count.diff                                (rev 0)
+++ trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_device.c-skip-unsupported-channels-count.diff        2016-02-24 03:07:26 UTC (rev 145997)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+--- src/modules/macosx/module-coreaudio-device.c.old        2016-02-23 00:55:13.000000000 +0100
++++ src/modules/macosx/module-coreaudio-device.c        2016-02-23 00:55:49.000000000 +0100
+@@ -413,6 +413,11 @@ static int ca_device_create_sink(pa_modu
+     AudioObjectPropertyAddress property_address;
+     CFStringRef tmp_cfstr = NULL;

++    if (buf-&gt;mNumberChannels &gt; PA_CHANNELS_MAX) {
++        pa_log(&quot;Skipping device with more channels than we support (%u)&quot;, (unsigned int) buf-&gt;mNumberChannels);
++        return -1;
++    }
++
+     ca_sink = pa_xnew0(coreaudio_sink, 1);
+     ca_sink-&gt;map.channels = buf-&gt;mNumberChannels;
+     ca_sink-&gt;ss.channels = buf-&gt;mNumberChannels;
+@@ -541,6 +546,11 @@ static int ca_device_create_source(pa_mo
+     AudioObjectPropertyAddress property_address;
+     CFStringRef tmp_cfstr = NULL;

++    if (buf-&gt;mNumberChannels &gt; PA_CHANNELS_MAX) {
++        pa_log(&quot;Skipping device with more channels than we support (%u)&quot;, (unsigned int) buf-&gt;mNumberChannels);
++        return -1;
++    }
++
+     ca_source = pa_xnew0(coreaudio_source, 1);
+     ca_source-&gt;map.channels = buf-&gt;mNumberChannels;
+     ca_source-&gt;ss.channels = buf-&gt;mNumberChannels;
</ins></span></pre>
</div>
</div>

</body>
</html>