Commit graph

525 commits

Author SHA1 Message Date
Gavyn Riebau
b56de697c1 Remove debug_assert which was triggering unnecessary panic
When playing an mp3 on Windows in debug mode, sometimes
self.next_frame() is not empty in SampleRateConverter, leading to a
panic

See issue: #229
2022-02-18 01:19:35 +01:00
François
bf586a60cd
remove the need for a source to be debug on a spatial sink (#415) 2022-02-18 01:18:46 +01:00
François
db71e24ebf
spatial: ignore NaNs when setting the volume of each ear (#416)
ignore NaNs when setting the volume of each ear. min will return its value if self is a NaN. Also adds a check with debug_assert to help with debugging.
2022-02-18 00:10:46 +01:00
Will
c5c896c477
Run linter. (#414) 2022-02-17 05:38:38 +01:00
est31
ed16867cdb
Update symphonia to 0.5 (#412) 2022-01-31 18:01:11 +01:00
r4nd0m1z3r
846c643cbe
Added High-pass filter. (#384) 2022-01-31 18:00:57 +01:00
est31
1fb86e656d Add () around expression
Fixes #353, closes #389
2022-01-25 06:37:41 +01:00
est31
3aba98639c Update README as symphonia can do vorbis now 2022-01-25 04:00:26 +01:00
est31
cb9e72f2d9 Don't enable vorbis stuff is symphonia-vorbis is enabled 2022-01-25 03:56:49 +01:00
est31
9436db8e2b Add symphonia-vorbis feature to use symphonia's vorbis support instead 2022-01-25 02:20:57 +01:00
Stephen Sherratt
9ba6836e37
Release 0.15.0 (#408)
* Update symphonia dep

* Release 0.15.0
2022-01-25 01:57:53 +01:00
David M
49cc465604
Change Sink playback speed (#398)
* Add speed to Sink Controls

* Add Sink::set_speed

* Add Sink::speed getter

* Add speed and set_speed for SpatialSink

* Fix whitespace from previous commit
2022-01-25 01:57:24 +01:00
Nick Mahoney
b4f4dacb82
Change SineWave::new() to take a float. (#399)
It was immediately casting it to a float anyway.
2022-01-22 23:43:50 +01:00
NyantasticUwU
1095119dbe
Add len() method to SpatialSink. (#394) 2022-01-22 23:16:38 +01:00
Stephen Sherratt
5dbf93b94f
Replace loop with while (#407) 2022-01-13 09:32:53 +01:00
Stephen Sherratt
806ecaa60a
Implement Drop for FrameData (#285)
The types `Frame` and `FrameData` are mutually recursive, and the
incidental linked lists that can be formed as a result can be long (at
least in the order of thousands of elements). As a result, when a frame
is deallocated, rust appears to recursively call `drop_in_place` down
the list, causing stack overflows for long lists.
2022-01-12 16:34:00 +01:00
Mario
2c171d6683
Try next packet after a decode error (Symphonia) (#403)
* Skip no more than 3 consecutive decode errors

* missing delimiter

* Corrections after build

* use const

* reorganize second loop

Co-authored-by: Rrogntudju <rrogntudju@example.com>
2021-11-29 23:18:21 +01:00
Orson Peters
68b0333642 Reduced 32-bit integer test file size. 2021-10-01 04:20:25 +02:00
Orson Peters
4ad05a73fb Added 32-bit signed int WAV decoding. Fixes #344. 2021-10-01 04:20:25 +02:00
Chris Patuzzo
d40551db78 Extract DynamicMixer::sum_current_sources()
I think this makes the next() function easier to understand. We can
write this more efficiently by reusing a Vec on the struct rather than
allocating each time and a mem::swap to avoid shifting elements in a Vec.
2021-07-23 11:51:47 +02:00
Chris Patuzzo
437bcf4ce7 Fix sources sometimes playing in the wrong channels
For example, if a stereo source starts playing on an odd-numbered call
to DynamicMixer::next() then the output stream will play its first
sample in the right channel, its second in the left, etc. This is wrong.
The first sample should be played in the left channel.
2021-07-23 11:51:47 +02:00
Aaron Kofsky
2e08a7efa6
Check if the frame length is zero in SkipDuration. (#388)
If the source we are skipping runs out of data, it will return Some(0)
as the frame length. Before, this would cause an infinite loop because
we would skip zero samples forever. This commit fixes it by checking
explicitly if the frame length is zero and bailing out if it is.
2021-07-18 00:52:16 +02:00
Alphyr
ba78af2070
Fix WavDecoder::total_duration (#383) 2021-07-06 21:55:45 +02:00
Austin Schey
f6bb97e0d3
fix sample rate for symphonia decoder (#380) 2021-06-30 19:57:19 +02:00
Will Page
edc60950b6
Fix for #377 infinite recursion crash (#378)
Implementing the Display trait on a type, and calling self.to_string()
in its implementation results in infinite recursion.

The default implementation of ToString for sized types that implement
Display relies on the Display trait in its implementation.
Consequently, calling `self.to_string()` in the implementation of
Display leads to infinite recursion.

This failure has been directly observed on the DecoderError type, and
the fix here is to move the logic for rendering the error as text out of
`Error::description()` and into `impl Display`. As it stands, the
`Error` trait provides a default implementation for `description()`
based on the `Display` trait if provided, so this is a simple, clean
change.

The failure is presumed to exist for Mp4Type, as it follows a similar
pattern of invoking `self.to_string()` in the `Display` implementation.
The solution there is basically to reverse the logic for `from_str()`.
2021-06-30 17:05:41 +02:00
Austin Schey
0988e8c886
Add optional Symphonia backend (#376)
* add symphonia decoder

* add symphonia-flac

* better compile errors

* remove unsafe send

* update ci

* sudo

* disable duration check because symphonia does not support it

* add error handling

* cleanup

* update symphonia and fix breaking changes

* update to published symphonia version

* update docs

* reduce namespace duplication

* remove extra reference to current frame

* pr comments

* exclude decoders from module if unused

* fix flac test

* recommend disabling default features with symphonia
2021-06-29 09:12:28 +02:00
Alphyr
dfb4bd62b9
Remove Send bound from Decoder::new_* (#375) 2021-06-21 23:00:05 +02:00
Alex Butler
f6af938d8d
Release 0.14.0 (#368)
* Add 0.14 changes to changelog

* Release 0.14
2021-05-21 22:15:25 +02:00
est31
95813b8104
Merge pull request #365 from alexheretic/try-more-devices
OutputStream::try_default: Fallback to non-default devices
2021-05-03 02:15:47 +02:00
Alex Butler
8894392fd8
OutputStream::try_default fallback to non-default devices 2021-05-02 12:36:51 +01:00
est31
e2a3a0b81f
Merge pull request #350 from jiminycrick/fix-stream-panic
Better error handling for stream creation
2021-05-02 13:33:22 +02:00
James Melkonian
3b840675c8 cargo fmt 2021-04-03 20:19:56 -07:00
jiminycrick
3ad927886c Better error handling for stream creation 2021-04-03 17:45:23 -07:00
Linus Probert
a6f50364b0
Adds 'cpal' to re-exports (#352)
If a user wants some finer access to devices and hosts this will allow
that without having to add a separate dependency to cpal and risk having
a cersion conflict between the cpal dependency and the version of cpal
within rodio.
2021-03-29 12:17:28 +02:00
est31
9154133e1c set-env has been deprecated
Set RODIO_TMP using the new method
2021-03-29 09:26:54 +02:00
est31
6e1b212538 Enable auto-publishing via github actions
Bases on @Luni-4's CI code added to cpal
2021-03-29 09:20:48 +02:00
Marcel Märtens
c397a4d8d1
Fix a error when rodio just panics instead of propagate an error to the user (#362)
Update version to 0.13.1
2021-03-29 08:58:23 +02:00
Nathan Stocks
99e0c6b0bf
Improve documentation about getting default output stream to a device (#357)
* Improve documentation about getting default output stream to a device

* Use intra-doc links. Provide examples that can compile and run.

* Restore no_run

* More no_run
2021-03-09 07:46:51 +01:00
est31
6cd3522826
Merge pull request #359 from CleanCut/github-actions
Migrate from Travis to GitHub Actions
2021-03-09 07:45:51 +01:00
Nathan Stocks
cbb6f5a376 Migrate from Travis to GitHub Actions 2021-03-08 22:54:56 -07:00
Christopher Serr
181da2994b
Remove unnecessary 'static bound and cleanup (#356)
* Remove unnecessary 'static bound and cleanup

The decoder had an unnecessary 'static bound. Additionally I noticed
that there's a lot of (clippy) warnings, so I cleaned up the code a bit
as well. There's a few warnings left, but a few of those require
breaking changes.

* Address Review Comments
2021-03-06 18:46:52 +01:00
SnoozeTime
e1aea73ba0
add feature flag to enable wasm-bindgen (#342) 2020-12-09 13:49:36 +01:00
David Ackerman
73857e3d51
Update cpal with Android support (#336)
* Add cpal with Android support. Update CHANGELOG

* Bump version to 0.13.0

* Update CHANGELOG
2020-11-03 15:04:48 +01:00
est31
7d61d283cd
Merge pull request #335 from eloc3147/master
Fix for overflow on 32bit
2020-10-27 00:00:39 +01:00
Kinnon McAlister
3d4c8b768b
Fix for overflow on 32bit 2020-10-26 15:39:55 -07:00
est31
0df7d1cbe6
Merge pull request #328 from nbraud/resampler
SampleRateConverter: Improve testsuite documentation/comments
2020-10-09 05:23:15 +02:00
est31
7e09057a7e
Merge pull request #329 from Paoda/master
Implement Display and Error traits for PlayError
2020-10-09 05:22:23 +02:00
Rekai Musuka
5907affb44 Implement Display and Error traits for PlayError 2020-10-08 17:59:16 -05:00
nicoo
6de3737305
SampleRate::tests::multiply_rate: Update comment 2020-10-08 13:21:59 +02:00
nicoo
60e5450d2d
SampleRateConverter: Document the various tests 2020-10-08 13:21:49 +02:00