[portaudio] Add a patch from audacity adding some extra API calls audacity needs

Hans de Goede jwrdegoede at fedoraproject.org
Sat May 4 13:52:30 UTC 2013


commit 4d71fbe38fe2c1336c42d81b8c81a31683bb995c
Author: Hans de Goede <hdegoede at redhat.com>
Date:   Sat May 4 15:56:16 2013 +0200

    Add a patch from audacity adding some extra API calls audacity needs
    
    - Cleanup spec-file
    - Update svn snapshot to bring in some alsa samplerate handling fixes
    - Run autoreconf for aarch64 support (rhbz#926363)

 portaudio-audacity.patch |  188 ++++++++++++++++++++++++++++++++++++++++++++++
 portaudio.spec           |   59 ++++++++-------
 sources                  |    2 +-
 3 files changed, 221 insertions(+), 28 deletions(-)
---
diff --git a/portaudio-audacity.patch b/portaudio-audacity.patch
new file mode 100644
index 0000000..9535f96
--- /dev/null
+++ b/portaudio-audacity.patch
@@ -0,0 +1,188 @@
+diff -wruN portaudio/include/pa_unix_oss.h portaudio-v19/include/pa_unix_oss.h
+--- portaudio/include/pa_unix_oss.h	1969-12-31 18:00:00.000000000 -0600
++++ portaudio-v19/include/pa_unix_oss.h	2012-12-14 22:34:14.290247100 -0600
+@@ -0,0 +1,52 @@
++#ifndef PA_UNIX_OSS_H
++#define PA_UNIX_OSS_H
++
++/*
++ * $Id: portaudio.patch,v 1.10 2009-06-30 04:52:59 llucius Exp $
++ * PortAudio Portable Real-Time Audio Library
++ * OSS-specific extensions
++ *
++ * Copyright (c) 1999-2000 Ross Bencina and Phil Burk
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining
++ * a copy of this software and associated documentation files
++ * (the "Software"), to deal in the Software without restriction,
++ * including without limitation the rights to use, copy, modify, merge,
++ * publish, distribute, sublicense, and/or sell copies of the Software,
++ * and to permit persons to whom the Software is furnished to do so,
++ * subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * Any person wishing to distribute modifications to the Software is
++ * requested to send the modifications to the original developer so that
++ * they can be incorporated into the canonical version.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
++ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
++ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ *
++ */
++
++/** @file
++ * OSS-specific PortAudio API extension header file.
++ */
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++const char *PaOSS_GetStreamInputDevice( PaStream *s );
++
++const char *PaOSS_GetStreamOutputDevice( PaStream *s );
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
+diff -wruN portaudio/include/portaudio.h portaudio-v19/include/portaudio.h
+--- portaudio/include/portaudio.h	2012-08-31 19:10:13.000000000 -0500
++++ portaudio-v19/include/portaudio.h	2012-12-14 22:34:14.368247200 -0600
+@@ -1146,6 +1146,15 @@
+ signed long Pa_GetStreamWriteAvailable( PaStream* stream );
+ 
+ 
++/** Retrieve the host type handling an open stream.
++
++ @return Returns a non-negative value representing the host API type
++ handling an open stream or, a PaErrorCode (which are always negative)
++ if PortAudio is not initialized or an error is encountered.
++*/
++PaHostApiTypeId Pa_GetStreamHostApiType( PaStream* stream );
++
++
+ /* Miscellaneous utilities */
+ 
+ 
+diff -wruN portaudio/src/common/pa_front.c portaudio-v19/src/common/pa_front.c
+--- portaudio/src/common/pa_front.c	2012-12-04 12:39:48.000000000 -0600
++++ portaudio-v19/src/common/pa_front.c	2012-12-14 09:44:34.604344800 -0600
+@@ -1216,8 +1216,10 @@
+                                   hostApiInputParametersPtr, hostApiOutputParametersPtr,
+                                   sampleRate, framesPerBuffer, streamFlags, streamCallback, userData );
+ 
+-    if( result == paNoError )
++    if( result == paNoError ) {
+         AddOpenStream( *stream );
++        PA_STREAM_REP(*stream)->hostApiType = hostApi->info.type;
++    }
+ 
+ 
+     PA_LOGAPI(("Pa_OpenStream returned:\n" ));
+@@ -1729,6 +1731,32 @@
+     return result;
+ }
+ 
++PaHostApiTypeId Pa_GetStreamHostApiType( PaStream* stream )
++{
++    PaError error = PaUtil_ValidateStreamPointer( stream );
++    PaHostApiTypeId result;
++
++#ifdef PA_LOG_API_CALLS
++    PaUtil_DebugPrint("Pa_GetStreamHostApiType called:\n" );
++    PaUtil_DebugPrint("\tPaStream* stream: 0x%p\n", stream );
++#endif
++
++    if( error == paNoError )
++    {
++        result = PA_STREAM_REP(stream)->hostApiType;
++    }
++    else
++    {
++        result = (PaHostApiTypeId) error;
++    }
++
++#ifdef PA_LOG_API_CALLS
++    PaUtil_DebugPrint("Pa_GetStreamHostApiType returned:\n" );
++    PaUtil_DebugPrint("\tPaError: %d ( %s )\n\n", result, Pa_GetErrorText( result ) );
++#endif
++
++    return result;
++}
+ 
+ PaError Pa_GetSampleSize( PaSampleFormat format )
+ {
+diff -wruN portaudio/src/common/pa_stream.c portaudio-v19/src/common/pa_stream.c
+--- portaudio/src/common/pa_stream.c	2008-02-15 01:50:33.000000000 -0600
++++ portaudio-v19/src/common/pa_stream.c	2012-12-14 09:44:34.607345000 -0600
+@@ -93,6 +93,8 @@
+     streamRepresentation->streamInfo.inputLatency = 0.;
+     streamRepresentation->streamInfo.outputLatency = 0.;
+     streamRepresentation->streamInfo.sampleRate = 0.;
++
++    streamRepresentation->hostApiType = 0;
+ }
+ 
+ 
+diff -wruN portaudio/src/common/pa_stream.h portaudio-v19/src/common/pa_stream.h
+--- portaudio/src/common/pa_stream.h	2008-02-15 01:50:33.000000000 -0600
++++ portaudio-v19/src/common/pa_stream.h	2012-12-14 09:44:34.610345200 -0600
+@@ -152,6 +152,7 @@
+     PaStreamFinishedCallback *streamFinishedCallback;
+     void *userData;
+     PaStreamInfo streamInfo;
++    PaHostApiTypeId hostApiType;
+ } PaUtilStreamRepresentation;
+ 
+ 
+diff -wruN portaudio/src/hostapi/oss/pa_unix_oss.c portaudio-v19/src/hostapi/oss/pa_unix_oss.c
+--- portaudio/src/hostapi/oss/pa_unix_oss.c	2011-05-02 12:07:11.000000000 -0500
++++ portaudio-v19/src/hostapi/oss/pa_unix_oss.c	2012-12-14 09:44:34.625346000 -0600
+@@ -2028,3 +2028,26 @@
+ #endif
+ }
+ 
++const char *PaOSS_GetStreamInputDevice( PaStream* s )
++{
++    PaOssStream *stream = (PaOssStream*)s;
++
++    if( stream->capture )
++    {
++      return stream->capture->devName;
++    }
++
++   return NULL;
++}
++
++const char *PaOSS_GetStreamOutputDevice( PaStream* s )
++{
++    PaOssStream *stream = (PaOssStream*)s;
++
++    if( stream->playback )
++    {
++      return stream->playback->devName;
++    }
++
++   return NULL;
++}
+diff -up portaudio/configure.in~ portaudio/configure.in
+--- portaudio/configure.in~	2013-04-07 12:20:18.000000000 +0200
++++ portaudio/configure.in	2013-05-04 15:14:14.356191153 +0200
+@@ -387,7 +387,7 @@ case "${host_os}" in
+            DLL_LIBS="$DLL_LIBS -lasound"
+            LIBS="$LIBS -lasound"
+            OTHER_OBJS="$OTHER_OBJS src/hostapi/alsa/pa_linux_alsa.o"
+-           INCLUDES="$INCLUDES pa_linux_alsa.h"
++           INCLUDES="$INCLUDES pa_linux_alsa.h pa_unix_oss.h"
+            AC_DEFINE(PA_USE_ALSA,1)
+         fi
+ 
diff --git a/portaudio.spec b/portaudio.spec
index 27997bb..4e260c4 100644
--- a/portaudio.spec
+++ b/portaudio.spec
@@ -1,18 +1,21 @@
-Summary: Free, cross platform, open-source, audio I/O library
-Name: portaudio
-Version: 19
-Release: 15%{?dist}
-License: MIT
-Group: System Environment/Libraries
-URL: http://www.portaudio.com/
-# This is http://www.portaudio.com/archives/pa_snapshot.tgz from 27-03-2011
-Source: pa_snapshot.tgz
-Patch1: portaudio-doxynodate.patch
-Patch2: portaudio-pkgconfig-alsa.patch
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
-BuildRequires: doxygen
-BuildRequires: alsa-lib-devel
-BuildRequires: jack-audio-connection-kit-devel
+Name:           portaudio
+Version:        19
+Release:        16%{?dist}
+Summary:        Free, cross platform, open-source, audio I/O library
+Group:          System Environment/Libraries
+License:        MIT
+URL:            http://www.portaudio.com/
+# This is http://www.portaudio.com/archives/pa_snapshot.tgz svn rev 1890
+Source0:        pa_snapshot.tgz
+Patch1:         portaudio-doxynodate.patch
+Patch2:         portaudio-pkgconfig-alsa.patch
+# Add some extra API needed by audacity
+# http://audacity.googlecode.com/svn/audacity-src/trunk/lib-src/portmixer/portaudio.patch
+Patch3:         portaudio-audacity.patch
+BuildRequires:  doxygen
+BuildRequires:  alsa-lib-devel
+BuildRequires:  jack-audio-connection-kit-devel
+BuildRequires:  libtool
 
 %description
 PortAudio is a portable audio I/O library designed for cross-platform
@@ -22,9 +25,9 @@ and will be converted to the native format internally.
 
 
 %package devel
-Summary: Development files for the portaudio audio I/O library
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}, pkgconfig
+Summary:        Development files for the portaudio audio I/O library
+Group:          Development/Libraries
+Requires:       %{name}%{?_isa} = %{version}-%{release}
 
 %description devel
 PortAudio is a portable audio I/O library designed for cross-platform
@@ -40,6 +43,9 @@ portaudio library.
 %setup -q -n %{name}
 %patch1 -p1
 %patch2 -p1
+%patch3 -p1
+# For both patch3 and aarch64 support
+autoreconf -i -f
 
 
 %build
@@ -51,37 +57,36 @@ doxygen
 
 
 %install
-rm -rf $RPM_BUILD_ROOT
 make install DESTDIR=$RPM_BUILD_ROOT
 
 
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-
 %post -p /sbin/ldconfig
-
 %postun -p /sbin/ldconfig
 
 
 %files
-%defattr(-,root,root,-)
 %doc LICENSE.txt README.txt
 %{_libdir}/*.so.*
 
 %files devel
-%defattr(-,root,root,-)
 %doc doc/html/*
 %{_includedir}/portaudiocpp/
 %{_includedir}/portaudio.h
 %{_includedir}/pa_jack.h
 %{_includedir}/pa_linux_alsa.h
+%{_includedir}/pa_unix_oss.h
 %exclude %{_libdir}/*.la
 %{_libdir}/*.so
 %{_libdir}/pkgconfig/*.pc
 
 
 %changelog
+* Sat May  4 2013 Hans de Goede <hdegoede at redhat.com> - 19-16
+- Add a patch from audacity adding some extra API calls audacity needs
+- Cleanup spec-file
+- Update svn snapshot to bring in some alsa samplerate handling fixes
+- Run autoreconf for aarch64 support (rhbz#926363)
+
 * Thu Feb 14 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 19-15
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
 
@@ -148,7 +153,7 @@ rm -rf $RPM_BUILD_ROOT
 * Sun May 22 2005 Jeremy Katz <katzj at redhat.com> - 18.1-5
 - rebuild on all arches
 
-* Fri Apr  7 2005 Michael Schwendt <mschwendt[AT]users.sf.net> 18.1-4
+* Thu Apr  7 2005 Michael Schwendt <mschwendt[AT]users.sf.net> 18.1-4
 - rebuilt
 
 * Tue Nov 16 2004 Matthias Saou <http://freshrpms.net/> 18.1-3
diff --git a/sources b/sources
index ecbd1c0..681853f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-f936481e3d7f4bb824b88a805e060c28  pa_snapshot.tgz
+f618bfd2d51852fc8f839625c68b2685  pa_snapshot.tgz


More information about the scm-commits mailing list