chore(deps): update rust crate songbird to 0.4.0 #136
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.
This PR contains the following updates:
0.3.2
->0.4.0
Release Notes
serenity-rs/songbird (songbird)
v0.4.3
This patch release fixes features in dependencies and reverts a breaking tokio-tungstenite update.
Thanks to the following for their contributions:
Fixed
bbc9e03
, update tracing-subscriber in examples ([@FelixMcFelix]) c:6a93356v0.4.2
Compare Source
This patch release adds in support for HLS and M3U8 stream playback, in addition to several bugfixes.
Thanks to the following for their contributions:
Changed
leave
([@FelixMcFelix]) c:a5d9b58v0.4.1
Compare Source
This patch release includes several fixes to how audio tasks behave when moved between channels, and prevents a crash on zero-length packets in 48kHz Ogg Vorbis files.
We've also added to
YoutubeDl
so you can now make use of ytdl's built-in search functionality.Thanks to the following for their contributions:
Added
Changed
Fixed
v0.4.0
Compare Source
Possessing a beautiful, creative, and evocative song through both night and day, the humble Nightingale has long been seen as a symbol of poetry and love.
In keeping with the spirit of this release's passerine of choice, songbird now sings more melodiously than ever!
This release has been a long time coming, and as such Nightingale brings several huge changes to how songbird is used and how it performs.
The largest change by far is a complete overhaul of all code relating to audio decoding, mixing, and loading from different locations, driven by Symphonia.
Broadly, this means that we handle every part of the audio pipeline in-process and ffmpeg is entirely removed, saving significant memory and CPU and letting you scale to more voice calls on one box.
Another boon is that reading in-memory audio now Just Works: if you can treat it as a
&[u8]
, then you're good to go!Having this level of control also lets us expand our list of file-formats supporting direct Opus passthrough to include Ogg Opus and WebM/MKV, as well as the DCA format.
Given that many sites will serve WebM, this is a significant saving on CPU time for many playback use cases.
Additionally, we now handle HTTP reconnection logic internally, offering more reliable behaviour than certain
downloader -> ffmpeg
process chains would provide.Symphonia format support is significant, and you can enable and disable exactly the codecs and containers you need at compile-time.
Voice receive has been given its own fair share of improvements.
Most importantly, all receive sessions now make use of per-user jitter buffers – songbird will now delay decoding of all users to correctly reorder audio packets, smooth out network latency jitter, and to help synchronize playback of several speakers.
Receive functionality is now feature-gated and disabled by default, and so won't affect compile-time or runtime performance if you don't want to make use of it.
Finally, songbird now includes a new deadline-aware audio scheduler, which will pack as many concurrent
Call
s as possible onto a single thread.Compared to the previous model we now reduce thread counts, CPU use, and context switching – for context, up to 660 live Opus-passthrough-enabled calls can run on a single thread on a Ryzen 5700X.
This is also helped by how we now park all
Call
s without any activeTrack
s onto a single shared event handling async task.All in all, we're really excited to see what you build with these new tools and performance improvements.
Thanks to the following for their contributions:
Upgrade Pathway
Inputs:
ytdl
etc. are removed and replaced with new lazy initialisers – read the docs on how to create sources from a URL or local path.Restartable
is no longer needed.RawReader
container format and theRawAdapter
transform to support this.AuxMetadata
, e.g. info learned from a web scrape) and what metadata is encoded in a track itself (Metadata
).Metadata
can only be read once a track is fully initialised and parsed.Tracks:
TrackHandle::action
now gives temporary access to aView
object – a set of current track state and extracted metadata – which can be used to fire more complex commands like seeking or pre-loading aTrack
by returning anAction
.TrackHandle
s are now created only fromDriver::play
/play_input
and related methods.tracks::create_player
is removed in favour of the above methods onDriver
.Voice Receive:
"receive"
feature.CoreEvent::VoicePacket
has now split into two events:RtpPacket
andVoiceTick
.RtpPacket
corresponds to raw RTP packets received from each user and does not decode audio, whileVoiceTick
fires every 20ms and includes the reordered (and decoded, if so configured) audio for every user, synchronised and ready to use.Config::playout_buffer_length
and::playout_spike_length
.Added
Songbird::iter
(#166) ([@fee1-dead]) [c:5bc8430]Changed
xsalsa20poly1305
withcrypto_secretbox
(#198) ([@Sebbl0508]) [c:77a9b46]YoutubeDl
error if command missing (#160) ([@FelixMcFelix]) [c:53ebc3c]symphonia
v0.5.2 from git ([@FelixMcFelix]) [c:fdd0d83]join
/join_gateway
(#157) ([@FelixMcFelix]) [c:f2fbbfe]xsalsa20poly1305
-> 0.9 ([@FelixMcFelix]) [c:48db45f]tokio_tungstenite
(#138) ([@FelixMcFelix]) [c:76c9851]Fixed
--no-playlist
forYoutubeDl
(#168) ([@fee1-dead]) [c:296f0e5]SsrcState
after timeout/disconnect (#145) ([@FelixMcFelix]) [c:893dbaa]songbird::tracks
. ([@FelixMcFelix]) [c:c1d93f7]Configuration
📅 Schedule: Branch creation - "before 9am on Saturday" in timezone Asia/Tokyo, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.