More readable, prep for using the same lines in new refine_position fn.
Since that is already pretty complex this needed to be made simpler.
This code retries on all errors not only decode errors. Retries will not
work on anything else then a decode error however they also wont cause
any problems. Not checking the result does however make the code
simpler.
This adds two dependencies, they are only needed for the test suite.
Compile time will not increase for users. The extra overhead when
running the test suite is worth it imho. The test file is significantly
shorter and there is less code duplication. A run time solution would
decrease the test interface (you would have to manually find out which
params caused the test).
seek is broken, https://github.com/RustAudio/lewton/issues/73.
We could work around it by:
- using unsafe to create an instance of Self
- use mem::swap to turn the &mut self into a mut self
- take out the underlying Read+Seek
- make a new self and seek
If this issue is fixed use the implementation in
commit: 3bafe32388
Mainly because it means we get an unreleased section.his will save
maintainers time when releasing lowering the barrier to cut a release
which in turn helps out users waiting for fixes/new features. I decided
not to change the old entries to the keepachangelog format, simply
because it is a lot of work and I do not see an advantage.
I would like to also automate checking if the changelog was edited.
Since this would further lower the workload on maintainers. The
responsibility of editing the changelog will then squarly fall on the
Contributor of the PR. That should give maintainers more time to review
PR's.
Made an issue for missing `is_empty()`, see:
https://github.com/RustAudio/rodio/issues/562
The DecoderImpl enum triggerd large_enum_variant. There is not an easy
fix for that. We could box the VorbisDecoder but at 572 bytes
I really do not think thats worth it. Annotated it with an allow
refactor: remove unnecessary `Box` from `SymphoniaDecoder::into_inner`.
The `SymphoniaDecoder` struct is small enough it fits on the stack without issues and its `into_inner` member is not part of the public API.
This changes channel upscaling so all input samples are spread out
across the output channels, instead of repeating the last sample over
and over. This approach should yield more accurate results. Fixes#558.