Fixed ChannelVolume size_hint and added tests #440
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.
The current implementation of size_hint for ChannelVolume is broken for two reasons:
1. The number of samples in input and result should be the same, but each sample may produce more or less elements if channel count differs
To fix this, the size hint is first divided by the source channel count, then multiplied by the result channel count.
2. The sample currently being emitted is not taken into account
To fix this, we add how many times we will emit self.current_sample (=> How many channels still remain for this sample).