This repository has been archived by the owner on Jun 8, 2018. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi Tuukka! Sorry to disappear on you, a lot of things have been demanding my attention (as I guess has also been the case with you). Hope all is well :)
I found this message in
PulseAudioConvertPortaudioFormatToPulseAudio
:Which is fine, but actually it doesn't matter if pulse audio supports non-interleaved audio because port audio's buffer processor can adapt it for us (so the user deals with non-interleaved samples but pulse audio sees interleaved samples).
There doesn't seem to be a patest case that uses non-interleaved samples so I modified patest_sine_formats - if curious you can find the modified version on my patest-sine-non-interleaved branch.
I also uncovered some problems with the error handling in
OpenStream
- at first my modified test failed like so:Which was
OpenStream
freeing the entire host api representation on failure causingTerminate
to hit this assertion. The first commit fixes this along with several other error handling problems. After that the test fails like so:Which is expected since it's only in the second commit that non-interleaved audio support is added. The patch works because
PaUtil_SelectClosestAvailableFormat
discards thepaNonInterleaved
flag - ie.hostOutputSampleFormat
will never be non-interleaved.