Add process_into* variants to allow utilizing an existing buffer #8
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.
For some applications, it can be useful to provide an existing buffer as it may already exist (and potentially saves up on allocating memory during a tight loop). The regular
processfunction always creates aVecwhich would internally always allocate memory, and usually deallocate shortly after it's used.process_into, which does the same asprocessbut writes the result in a user supplied buffer and returns a tuple of the amount of data consumed and producedprocess_into_last, which does the same for theprocess_lastsamplerate_conversionbut utilizing the into functions insteadI have to note that I explicitly didn't implement the same thing for
convert(as the fork of xhalo32 adds) becauseconvertmust not be called in a loop, and thus an in-place allocation of the output buffer is not performance critical (Either the user allocates in one go, potentially messing up the calculation. Or the function allocates in one go).In fact, I believe allowing such a use might even give the wrong impression.