v19-devel branch status
v19-devel is the name of the branch of PortAudio which was started some years ago to develop the 2.0 PortAudio API. This branch has been extensively developed and is now considerd the main line of development by PortAudio developers. The 2.0 API definition has been stable for over two years, however v19-devel does not implement all features on all platforms/host APIs (most notably blocking i/o is not implemented everywhere, nor is the callback buffer timestamping). Version 2.0 API implementation status is documented here: http://www.portaudio.com/docs/proposals/status.html
In spite of lack of complete support for some version 2.0 features, the current v19-devel branch is used in a number of commercial and open source projects and is considered by most PortAudio developers to be more consistent and usable than the V18-patch branch. It implements a number of features which were not available in the version 1.0 API (support for multiple host-APIs in a single build, support for non-interleaved buffers, blocking i/o with some host APIs).
Plan for Next V19 Release
A stable V19 release was made in December 2007. It is time for another stable snapshot. Here are some open tasks that should be completed before the next snapshot:
- Finish WASAPI (Thanks Dmitry, Chris, Reid and others!)
- Resolve latency issues.
- Update various build tutorials in Wiki.
- Document non-implemented 2.0 API features.
- Document non-support for Mac 10.3.
- Ross wrote: "Callback stream time support is completely broken (it returns incorrect values) on OSX -- as far as I can tell it was never implemented properly. I have a patch here which addresses the most common cases. Only shortcoming is that it doesn't handle adcTime properly if a full duplex stream uses separate devices for input and output. I've been testing it in production since late last year. Given that the current state is broken, and my patch is tested, I reckon it should go in (what do you think Bjorn)?" Bjorn says "Absolutely!"
- Ross wrote: "pa_asio.cpp SelectHostBufferSize() doesn't take the user callback framesPerBuffer into account at all (as discussed recently). It should attempt to conform the ASIO buffer size to the callback framesPerBuffer (or multiples of it). This is pretty nasty since it impacts available CPU time in the audio callback, but we've been living with it forever apparently..."
- Maybe the ASIO problem Reid reported with InterlockedIncrement_xxx functions in combase.h?
- Anything else?
Platforms and Builds to Test
- Linux: OSS
- Windows: WinXP, WinVista, Win7 with WMME, DS, WASAPI, ASIO
- gcc, msvc,...?
- Mac OSX 10.4 (ppc32 & x86_32) , 10.5 (ppc32 & x86_32), 10.6 (x86_32 & x86_64)
- ./configure
- msvc build files
- sconscripts
- any other build files should be tested or deleted
The following tasks will be deferred to a later snapshot:
- Hot pluggable audio devices patch from David Stuart.
- WaveRT
Task assignment
Please add/remove yourself from this as needed
- Ross: OSX stream time?
- Dmitry et al: WASAPI
- Phil: unit tests
- Chris and others: build tutorials on Wiki
- Everyone: list of what isn't implemented
