PortAudio / portaudio

PortAudio is a cross-platform, open-source C language library for real-time audio input and output.
Other
1.43k stars 296 forks source link

Implement a new test that excercises non-interleaved blocking i/o #83

Open PortAudio-admin opened 16 years ago

PortAudio-admin commented 16 years ago

Issue created by @RossBencina

There is no test which excercises non-interleaved blocking i/o. Some Host API implementations do not support non-interleaved blocking (eg Jack and CoreAudio) -- in part because there is no test.

Non-interleaved blocking i/o is accomplished by ORing the paNonInterleaved with the sample format passed to Pa_OpenStream, and by passing an array of buffer pointers to Pa_ReadStream and Pa_WriteStream rather than a single buffer pointer.

The test would need to test both input and output.

Some host APIs currently implement interleaved blocking i/o (WMME, ASIO).

Some apparently don't:

77 -- CoreAudio implementation doesn't support non-interleaved ReadStream and WriteStream

148, #57 -- ASIO blocking i/o needs more testing and depends on this test.

And the status of the rest are unknown at this time (someone could check).

PortAudio-admin commented 13 years ago

Comment by @RossBencina

For reference, the following tests test paNoInterleaved for callback streams:

patest_multi_sine.c patest_wire.c

PortAudio-admin commented 13 years ago

Comment by @RossBencina

I'm marking this as a blocker because JACK and CoreAudio are broken and fixing them is dependent on having this test.

PortAudio-admin commented 13 years ago

Comment by @philburk

Added test/patest_write_sine_nonint.c to test the write. Still need a test for read.

PortAudio-admin commented 12 years ago

Comment by @RossBencina

TRAC migration: propagating ticket status from TRAC

RossBencina commented 1 year ago

The bug report here provides a potential implementation of the test case: https://github.com/PortAudio/portaudio/issues/753