Commit graph

862 commits

Author SHA1 Message Date
Nicolas Braud-Santoni
20cd8eb3a3
SampleRateConverter: Remove redundant, ignored test 2020-10-01 17:12:19 +02:00
Nicolas Braud-Santoni
878de74821
SampleRateConverter: Generalize tests over rate ratio 2020-10-01 17:04:29 +02:00
Nicolas Braud-Santoni
663bdd57b2
SampleRateConverter: Generalize doubling/halving tests over channels 2020-10-01 17:04:26 +02:00
Nicolas Braud-Santoni
42e2e53f66
conversions::Sample: Fix bug in linear interpolation for u16
The previous implementation panicked if first > second.
2020-10-01 17:04:23 +02:00
Nicolas Braud-Santoni
96e743746c
SampleRateConverter: Parameterize rate doubling by input data 2020-10-01 17:04:20 +02:00
Nicolas Braud-Santoni
c5147cea07
SampleRateConverter::test: Minor refactor 2020-10-01 17:04:17 +02:00
Nicolas Braud-Santoni
b996697e93
SampleRateConverter: Parameterise tests over input data 2020-10-01 17:04:14 +02:00
Nicolas Braud-Santoni
eb3b6d15a8
SampleRateConverter: Parameterise tests over the number of channels 2020-10-01 17:04:11 +02:00
Nicolas Braud-Santoni
ff9f6fc7de
SampleRateConverter: Parametrize tests over the sample frequencies 2020-10-01 17:04:08 +02:00
Nicolas Braud-Santoni
9feb54dc95
SampleRateConverter: Remove dependency on Vec::capacity
Previously depended on Vec internals that changes in Rust 1.45. (Closes #303)

The frame's width is always the number of channels, so instead of carrying this
information implicitely (in the vec's capacity) we make it an explicit member.
2020-10-01 17:03:59 +02:00
vickles
8b0923c196 Add new_X format specific methods to Decoder 2020-10-01 15:41:31 +01:00
est31
3b733c60fb
Merge pull request #314 from exrook/master
Add `LoopedDecoder`
2020-08-28 19:08:55 +02:00
Jacob Hughes
95317f9b88 Add LoopedDecoder
LoopedDecoder works like the normal Decoder, but when the decoder
reaches the end of file it will restart playback from the beginning.
This has the advantage over Decoder::new().repeat_infinite() that it
will not buffer the entire uncompressed audio file into memory.

Update minimp3 to version 0.5 to use the `into_iter()` method
2020-08-27 15:07:40 -04:00
Jacob Hughes
a80a90bae5 Coalesce Decoder impls
Removed dummy impl blocks for Decoder that were used when no
codecs were enabled, instead handle that case through a
DecoderImpl::None variant
2020-08-27 13:21:37 -04:00
Sasho Savov
a4f771a1da
Make docs easier for beginners (#311)
* Make docs easier for beginners

Co-authored-by: Vlady Veselinov <vladkodmc@gmail.com>

* Typo

Co-authored-by: Vlady Veselinov <vladkodmc@gmail.com>

Co-authored-by: Vlady Veselinov <vladkodmc@gmail.com>
2020-08-21 17:26:33 +02:00
ely-uf
cba8513364 SkipDuration: fix incorrect data in a test.
Make the `seconds` and `seconds to skip` values equal in the
`skip_duration_equal_to_source_length` test.
2020-08-09 01:29:13 +03:00
ely-uf
8403b719d4 Make SkipDuration aware of potential change in audio parameters.
The `rodio` documentation states:
> The samples rate and number of channels of some sound sources can change
> by itself from time to time.

This commit introduces awareness of such change to the SkipDuration
source.
Now SkipDuration keeps track of `Source::current_frame_len` in order to
timely adjust both the sample rate and number of channels it uses to calculate
the amount of samples to skip.
2020-08-09 00:28:04 +03:00
ely-uf
15d4b54e2e Add inner, inner_mut and into_inner to SkipDuration. 2020-08-08 20:24:45 +03:00
ely-uf
7aaa9c3974 Add documentation comments to SkipDuration source. 2020-08-08 20:19:51 +03:00
ely-uf
f2e6795180 Add SkipDuration.
SkipDuration is a source that skips specified duration of the given
source from it's current position.

The already existing TakeDuration source allows to truncate the given source
from the end. SkipDuration complements it, introducing the option of
truncating the given source from it's current position.
2020-08-08 20:16:53 +03:00
est31
b376b91e9e
Merge pull request #308 from cormac-obrien/expose-playerror
Document PlayError and expose in public API
2020-08-05 03:50:02 +02:00
Mac O'Brien
fb176a6883 Document PlayError and expose in public API 2020-08-04 14:15:04 -05:00
est31
82b495245b
Merge pull request #301 from cormac-obrien/wav-8bit
Enable 8-bit WAV decoding
2020-07-13 04:39:52 +02:00
Mac O'Brien
8bd421afaf Enable 8-bit WAV decoding 2020-07-12 20:50:34 -05:00
est31
ad61c54485
Merge pull request #247 from alexheretic/engineless
Rework to use cpal-next
2020-07-11 04:41:15 +02:00
Alex Butler
286d63d6b3
Use cpal 0.12 2020-07-10 20:08:12 +01:00
Karl Skomski
ce00eb0de6 Fix mp3 decoder bug: only reset offset after new frame 2020-07-07 14:11:29 +02:00
Alex Butler
25e6822c59
Update changelog 2020-05-02 13:38:56 +01:00
Alex Butler
81f5c9b6fd
Update to latest cpal 2020-05-02 13:34:14 +01:00
Alex Butler
4c96d3bd55
Improve stream docs 2020-05-02 13:34:14 +01:00
Alex Butler
e8a6502e45
Export OutputStreamHandle top level 2020-05-02 13:34:14 +01:00
Alex Butler
7ca3b1d635
fix crossfade 2018 & cargo fmt 2020-05-02 13:34:11 +01:00
Alex Butler
d7c77aa52e
Add OutputStreamHandle 2020-05-02 13:33:57 +01:00
Alex Butler
7ad840793c
Remove deadcode + rustfmt 2020-05-02 13:33:57 +01:00
Alex Butler
560b232b9d
Make basic/beep example less ear-deadly 2020-05-02 13:33:57 +01:00
Alex Butler
3a29a5390e
Update cpal to 946d646 2020-05-02 13:33:57 +01:00
Alex Butler
b5071c947d
Remove device mixer map, rename stream wrapper to OutputStream 2020-05-02 13:33:57 +01:00
Alex Butler
c93adb2582
Migrate to edition 2018
* Remove unstable/legacy rustfmt config
* Run rustfmt
2020-05-02 13:33:57 +01:00
Alex Butler
0517ee7216
Add RodioDevice wrapper for cpal::Device
* Remove static/global facilities.
2020-05-02 13:33:56 +01:00
Alex Butler
00c627241c
Rework to use no-event-loop cpal 2020-05-02 13:33:52 +01:00
Bernhard Fritz
6e2c022b5d add workaround for devices without a name 2020-03-27 09:30:51 +01:00
est31
7bf8ba5cb6 Release v0.11.0 2020-03-16 22:39:44 +01:00
est31
90235bee3e Changelog for v0.11.0 2020-03-16 22:39:23 +01:00
Jacob Greenfield
5c7c5c5596 Update TakeDuration documentation 2020-03-14 20:12:12 +01:00
Imbris
9c874b7690 Make silence more efficient 2020-02-24 08:53:38 +01:00
Daniel Lambert
2c7d171670 add Crossfade 2020-02-15 13:22:15 +01:00
Daniel Lambert
e2f79f4a8b add FadeOut effect to TakeDuration 2020-02-15 13:22:15 +01:00
est31
1b3b716e9f Update cpal to 0.11.0 2020-01-30 20:56:26 +01:00
Alex Butler
29344401ee Update lewton to 0.10 2020-01-30 20:43:24 +01:00
est31
7f9eff3cc8 Release v0.10.0 2019-11-16 23:27:22 +01:00