Commit graph

759 commits

Author SHA1 Message Date
David Kleingeld
cefb123311
Merge pull request #568 from YXL76/patch-1
fix: no variant found for `source::SeekError`
2024-04-13 20:09:24 +02:00
兰陈昕
85c35c317c
Update mod.rs 2024-04-13 23:15:41 +08:00
dvdsk
818f557466
docs(changelog) adds missing entry to changelog 2024-04-06 13:06:31 +02:00
David Kleingeld
d103517b19
Merge pull request #513 from dvdsk/seek_runtime_err
Implements Seek
2024-04-06 12:34:48 +02:00
dvdsk
1ed1197cfd
style, removes a needless clone()
Was needed before a cargo update call. Update to cpal made the type
copy though.
2024-04-06 12:14:08 +02:00
dvdsk
bbc8f00a34
update changelog 2024-04-06 12:11:19 +02:00
dvdsk
b49b22af88
Merge branch 'master' into seek_runtime_err 2024-04-06 12:08:41 +02:00
dvdsk
a4d167f9ec
fix(seek) conditional compilation 2024-04-06 12:07:31 +02:00
dvdsk
34366fe656
style clippy fixes 2024-04-06 12:02:51 +02:00
David Kleingeld
2a7b351345
Merge pull request #565 from RustAudio/add_unreleased_section_to_changelog
The changelog is now in 'keep a changelog' format
2024-04-06 12:01:00 +02:00
dvdsk
6f1f44f04a
Merge branch 'master' into seek_runtime_err 2024-04-06 12:00:17 +02:00
dvdsk
7cf0451a1e
fix(seek/delay) seek < delay duration ate up the delay 2024-04-05 15:14:06 +02:00
dvdsk
aa0880ddee
seek/error symphonia seekerror is now more precise 2024-04-05 13:59:40 +02:00
dvdsk
6034af32fe
fix(decoder/symphonia) seek is no longer off 2024-04-05 13:31:29 +02:00
dvdsk
40a9447fa1
refactor(decoder/sympthonia) use for loop instead loop + match & escape
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.
2024-04-05 13:28:16 +02:00
dvdsk
1fcf4b8363
test(seek) made channel order more brittle 2024-04-05 12:16:06 +02:00
dvdsk
a52a41bd86
refactor(decoder/symphonia) logic reorderd 2024-04-04 23:47:47 +02:00
dvdsk
f846cdf38d
fix(seek) hound(wav) now keeps channel order consistent 2024-04-04 23:36:01 +02:00
dvdsk
7eb13be288
(tests) use rstest to refactor and expand seek test
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).
2024-04-04 21:22:53 +02:00
dvdsk
26e9db7b87
remove seek support for (lewton) vorbis
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
2024-04-04 12:54:09 +02:00
dvdsk
3bafe32388
refactor(seek) explain why seek to sample works 2024-04-03 14:04:59 +02:00
dvdsk
4e14b0acea
Vorbis actually can be implemented since the sample rate is constant
This reverts commit 80add81532.
2024-04-03 13:49:10 +02:00
dvdsk
80add81532
removes seeking from vorbis decoder, can not be implemented 2024-04-03 13:08:21 +02:00
dvdsk
5562241f39
commit to save work on vorbis try_seek 2024-04-03 13:02:30 +02:00
dvdsk
1c821362fd
fix(seek) vorbis decoder now respects channel order 2024-04-03 12:40:59 +02:00
dvdsk
04c6957dac
test(seek) improve channel order test 2024-04-03 11:54:47 +02:00
dvdsk
9ae1c5501a
test(seek) add test for channel order 2024-04-03 11:45:54 +02:00
dvdsk
d0fce09bb0
fix(seek) vorbis decoder crashing when seeking 2024-04-03 11:45:17 +02:00
dvdsk
67612b573e
(seek/test) adds failing test for seeking in exausted source 2024-04-02 12:59:22 +02:00
dvdsk
2e9d680afb
(seek/test) fixes duration calc in test 2024-04-02 12:29:55 +02:00
dvdsk
c60819e47d
seek tests finds beep in stereo test file 2024-04-02 12:08:51 +02:00
David Kleingeld
e0485beb06
Merge pull request #559 from ideka/fix-channel-upscaling
Fix channel count upscaling
2024-04-01 21:00:30 +02:00
dvdsk
766fbbf1fa
implement try_seek for SamplesBuffer 2024-04-01 14:16:56 +02:00
Gerardo Marset
2f3daa9e6c Fix size_hint bug, improve size_hint test 2024-03-31 05:02:30 +01:00
dvdsk
de650fe2a7
The changelog is now in 'keep a changelog' format
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.
2024-03-28 21:51:42 +01:00
David Kleingeld
14665b7421
Merge pull request #564 from hamirmahal/refactor/restore-cargo-clippy-check-in-ci
restore `cargo clippy` check in CI now all (default) lints pass
2024-03-27 11:18:02 +01:00
Hamir Mahal
6253ce3090
refactor: restore cargo clippy check in CI 2024-03-27 00:27:38 -07:00
Gerardo Marset
a5f06750ef Clarify some code, fix small docs typo 2024-03-27 02:53:11 +01:00
Gerardo Marset
e6424ffd0a Update size_hint to work with previous changes
Update tests as well.
2024-03-27 02:50:57 +01:00
David Kleingeld
e0b8e9bb57
Merge pull request #563 from RustAudio/clippy_warnings
This fixes all clippy warnings
2024-03-26 18:19:30 +01:00
dvdsk
77ca23a450
This fixes all clippy warnings
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
2024-03-26 12:35:36 +01:00
David Kleingeld
daa07dc013
Merge pull request #561 from hamirmahal/refactor/remove-unnecessary-let-binding
refactor: remove unnecessary `let` binding
2024-03-26 12:21:04 +01:00
Gerardo Marset
41604cf54c Avoid duplicating signals when upscaling channels
Mono -> stereo remain the only exception.
2024-03-26 12:07:10 +01:00
Hamir Mahal
a2c2548a4d
refactor: remove unnecessary let binding 2024-03-26 02:01:29 -07:00
David Kleingeld
8d8b5dae21
Merge pull request #560 from hamirmahal/refactor/remove-unnecessary-box
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.
2024-03-25 22:49:50 +01:00
Hamir Mahal
371d9634f2
refactor: remove unnecessary Box::new conversion 2024-03-25 10:40:33 -07:00
Hamir Mahal
93d8215d7b
refactor: remove unnecessary Box from into_inner 2024-03-25 00:29:02 -07:00
Gerardo Marset
6de6f22a12 Fix channel count upscaling
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.
2024-03-25 01:08:35 +01:00
Hamir Mahal
616ee26756
refactor: remove unnecessary Default::default() (#557) 2024-03-24 19:29:11 +01:00
Hamir Mahal
0466f60c94
refactor: remove reference that is unnecessary (#556) 2024-03-20 18:14:21 +01:00