[MacPorts] #39150: portaudio

MacPorts noreply at macports.org
Sun May 19 09:50:47 PDT 2013


#39150: portaudio
--------------------+--------------------------------
 Reporter:  cr@…    |      Owner:  macports-tickets@…
     Type:  defect  |     Status:  new
 Priority:  Normal  |  Milestone:
Component:  ports   |    Version:  2.1.3
 Keywords:          |       Port:  portaudio
--------------------+--------------------------------
 == Symptoms ==

 On Mac OS X 10.7.5 with CoreAudio 4.0.3, reading from the default audio
 source at non-standard framerates fails with an "Input overflowed"
 IOError:

 {{{
 $ cat bm.py
 #!/usr/bin/env python
 import pyaudio
 p = pyaudio.PyAudio()
 s = p.open( format=pyaudio.paFloat32, channels=2, rate=24000, input=True,
 frames_per_buffer=256*4 )
 while True: a = s.read( 256 )
 $ ./bm.py
 Traceback (most recent call last):
   File "./bm.py", line 5, in <module>
     while True: a = s.read( 256 )
   File
 "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
 /site-packages/pyaudio.py", line 605, in read
     return pa.read_stream(self._stream, num_frames)
 IOError: [Errno Input overflowed] -9981
 }}}

 Framerates tested:

 {{{
 96000: FAIL
 88200: FAIL
 48000: OK
 44100: FAIL
 32000: FAIL
 24000: FAIL
 22050: FAIL
 16000: FAIL
 12000: FAIL
 11025: FAIL
 8000:  FAIL
 }}}

 == Preliminary analysis ==

 The bug has been addressed upstream in mid-2012:
 https://www.assembla.com/spaces/portaudio/tickets/171#/activity/ticket

 Contrary to what the developer stated in the ticket, the actual svn commit
 that fixed the issue was 1844:

 {{{
 ------------------------------------------------------------------------
 r1844 | philburk | 2012-06-25 03:12:29 +0200 (Mo, 25. Jun 2012) | 4 Zeilen

 Fix ring buffer handling in pa_mac_core.c that caused many spurious
 paInputOverflow flags.
 Fixed size bug when input underflow detected. Code was confused between
 bytes and elements.
 Zero out the beginning of a recording when detecting pops to prevent start
 of audio from looking like a pop in qa loopback test.
 }}}

 While upgrading portaudio would probably be the better solution, there is
 no download archive that includes this revision, yet, except for the daily
 snapshot http://www.portaudio.com/archives/pa_snapshot.tgz . An
 alternative would be to switch to downloading from svn.

 == Solution ==

 The patch from 1844 was added to the Portfile. Experiments show, that
 several frame rates now smoothly while others (possibly unsupported?)
 still fail. 1844 supposedly solves other spurious Input overflow failures,
 too.

 Framerates tested:
 {{{
 96000: OK
 88200: OK
 48000: OK
 44100: OK
 32000: OK
 24000: OK
 22050: FAIL
 16000: FAIL
 12000: FAIL
 11025: FAIL
 8000:  FAIL
 }}}

-- 
Ticket URL: <https://trac.macports.org/ticket/39150>
MacPorts <http://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list