mirror of
https://github.com/jhbruhn/jellyfin-radio.git
synced 2025-03-14 19:45:50 +00:00
Improve performance of blocking
This commit is contained in:
parent
54c987e784
commit
1d4c93b4da
1 changed files with 18 additions and 16 deletions
|
@ -40,23 +40,25 @@ impl StreamerBackend {
|
||||||
))
|
))
|
||||||
.map(move |_| {
|
.map(move |_| {
|
||||||
let mut buffer = [0_i16; BUFFER_SIZE];
|
let mut buffer = [0_i16; BUFFER_SIZE];
|
||||||
renderer.on_start_of_batch();
|
renderer.on_start_of_batch();
|
||||||
buffer.fill_with(|| {
|
tokio::task::block_in_place(|| {
|
||||||
let sample = renderer
|
buffer.fill_with(|| {
|
||||||
.next_sample()
|
let sample = renderer
|
||||||
.expect("renderer should never return an Error");
|
.next_sample()
|
||||||
let sample = match sample {
|
.expect("renderer should never return an Error");
|
||||||
awedio::NextSample::Sample(s) => s,
|
let sample = match sample {
|
||||||
awedio::NextSample::MetadataChanged => {
|
awedio::NextSample::Sample(s) => s,
|
||||||
unreachable!("we never change metadata mid-batch")
|
awedio::NextSample::MetadataChanged => {
|
||||||
}
|
unreachable!("we never change metadata mid-batch")
|
||||||
awedio::NextSample::Paused => 0,
|
}
|
||||||
awedio::NextSample::Finished => 0,
|
awedio::NextSample::Paused => 0,
|
||||||
};
|
awedio::NextSample::Finished => 0,
|
||||||
sample
|
};
|
||||||
|
sample
|
||||||
|
});
|
||||||
|
});
|
||||||
|
Box::new(buffer)
|
||||||
});
|
});
|
||||||
Box::new(buffer)
|
|
||||||
});
|
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
s.broadcast(stream.next().await.expect("Should not end!"))
|
s.broadcast(stream.next().await.expect("Should not end!"))
|
||||||
|
|
Loading…
Reference in a new issue