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 |_| {
|
||||
let mut buffer = [0_i16; BUFFER_SIZE];
|
||||
renderer.on_start_of_batch();
|
||||
buffer.fill_with(|| {
|
||||
let sample = renderer
|
||||
.next_sample()
|
||||
.expect("renderer should never return an Error");
|
||||
let sample = match sample {
|
||||
awedio::NextSample::Sample(s) => s,
|
||||
awedio::NextSample::MetadataChanged => {
|
||||
unreachable!("we never change metadata mid-batch")
|
||||
}
|
||||
awedio::NextSample::Paused => 0,
|
||||
awedio::NextSample::Finished => 0,
|
||||
};
|
||||
sample
|
||||
renderer.on_start_of_batch();
|
||||
tokio::task::block_in_place(|| {
|
||||
buffer.fill_with(|| {
|
||||
let sample = renderer
|
||||
.next_sample()
|
||||
.expect("renderer should never return an Error");
|
||||
let sample = match sample {
|
||||
awedio::NextSample::Sample(s) => s,
|
||||
awedio::NextSample::MetadataChanged => {
|
||||
unreachable!("we never change metadata mid-batch")
|
||||
}
|
||||
awedio::NextSample::Paused => 0,
|
||||
awedio::NextSample::Finished => 0,
|
||||
};
|
||||
sample
|
||||
});
|
||||
});
|
||||
Box::new(buffer)
|
||||
});
|
||||
Box::new(buffer)
|
||||
});
|
||||
|
||||
loop {
|
||||
s.broadcast(stream.next().await.expect("Should not end!"))
|
||||
|
|
Loading…
Reference in a new issue