Deps: Update to Audiopus v0.3.0-rc.0 (#125)
Tested using `cargo make ready`. Co-authored-by: André Vennberg <andre.vennberg@gmail.com>
This commit is contained in:
@@ -32,7 +32,7 @@ version = "0.17"
|
|||||||
|
|
||||||
[dependencies.audiopus]
|
[dependencies.audiopus]
|
||||||
optional = true
|
optional = true
|
||||||
version = "0.2"
|
version = "0.3.0-rc.0"
|
||||||
|
|
||||||
[dependencies.byteorder]
|
[dependencies.byteorder]
|
||||||
optional = true
|
optional = true
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ use discortp::{
|
|||||||
};
|
};
|
||||||
use flume::{Receiver, Sender, TryRecvError};
|
use flume::{Receiver, Sender, TryRecvError};
|
||||||
use rand::random;
|
use rand::random;
|
||||||
use std::time::Instant;
|
use std::{convert::TryInto, time::Instant};
|
||||||
use tokio::runtime::Handle;
|
use tokio::runtime::Handle;
|
||||||
use tracing::{debug, error, instrument};
|
use tracing::{debug, error, instrument};
|
||||||
use xsalsa20poly1305::TAG_SIZE;
|
use xsalsa20poly1305::TAG_SIZE;
|
||||||
@@ -426,7 +426,7 @@ impl Mixer {
|
|||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
self.soft_clip.apply(&mut mix_buffer[..])?;
|
self.soft_clip.apply((&mut mix_buffer[..]).try_into()?)?;
|
||||||
|
|
||||||
if self.muted {
|
if self.muted {
|
||||||
mix_len = MixType::MixedPcm(0);
|
mix_len = MixType::MixedPcm(0);
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ use crate::{
|
|||||||
use audiopus::{
|
use audiopus::{
|
||||||
coder::Decoder as OpusDecoder,
|
coder::Decoder as OpusDecoder,
|
||||||
error::{Error as OpusError, ErrorCode},
|
error::{Error as OpusError, ErrorCode},
|
||||||
|
packet::Packet as OpusPacket,
|
||||||
Channels,
|
Channels,
|
||||||
};
|
};
|
||||||
use discortp::{
|
use discortp::{
|
||||||
@@ -21,7 +22,7 @@ use discortp::{
|
|||||||
PacketSize,
|
PacketSize,
|
||||||
};
|
};
|
||||||
use flume::Receiver;
|
use flume::Receiver;
|
||||||
use std::{collections::HashMap, sync::Arc};
|
use std::{collections::HashMap, convert::TryInto, sync::Arc};
|
||||||
use tokio::{net::UdpSocket, select};
|
use tokio::{net::UdpSocket, select};
|
||||||
use tracing::{error, instrument, trace, warn};
|
use tracing::{error, instrument, trace, warn};
|
||||||
use xsalsa20poly1305::XSalsa20Poly1305 as Cipher;
|
use xsalsa20poly1305::XSalsa20Poly1305 as Cipher;
|
||||||
@@ -180,8 +181,11 @@ impl SsrcState {
|
|||||||
let mut out = vec![0; self.decode_size.len()];
|
let mut out = vec![0; self.decode_size.len()];
|
||||||
|
|
||||||
for _ in 0..missed_packets {
|
for _ in 0..missed_packets {
|
||||||
let missing_frame: Option<&[u8]> = None;
|
let missing_frame: Option<OpusPacket> = None;
|
||||||
if let Err(e) = self.decoder.decode(missing_frame, &mut out[..], false) {
|
let dest_samples = (&mut out[..])
|
||||||
|
.try_into()
|
||||||
|
.expect("Decode logic will cap decode buffer size at i32::MAX.");
|
||||||
|
if let Err(e) = self.decoder.decode(missing_frame, dest_samples, false) {
|
||||||
warn!("Issue while decoding for missed packet: {:?}.", e);
|
warn!("Issue while decoding for missed packet: {:?}.", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -193,9 +197,11 @@ impl SsrcState {
|
|||||||
// This should scan up to find the "correct" size that a source is using,
|
// This should scan up to find the "correct" size that a source is using,
|
||||||
// and then remember that.
|
// and then remember that.
|
||||||
loop {
|
loop {
|
||||||
let tried_audio_len =
|
let tried_audio_len = self.decoder.decode(
|
||||||
self.decoder
|
Some((&data[start..]).try_into()?),
|
||||||
.decode(Some(&data[start..]), &mut out[..], false);
|
(&mut out[..]).try_into()?,
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
|
||||||
match tried_audio_len {
|
match tried_audio_len {
|
||||||
Ok(audio_len) => {
|
Ok(audio_len) => {
|
||||||
|
|||||||
@@ -6,7 +6,10 @@ use crate::{
|
|||||||
};
|
};
|
||||||
use audiopus::{coder::Decoder, Bitrate, Channels, SampleRate};
|
use audiopus::{coder::Decoder, Bitrate, Channels, SampleRate};
|
||||||
use byteorder::{LittleEndian, ReadBytesExt};
|
use byteorder::{LittleEndian, ReadBytesExt};
|
||||||
use std::io::{Cursor, Read};
|
use std::{
|
||||||
|
convert::TryInto,
|
||||||
|
io::{Cursor, Read},
|
||||||
|
};
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn streamcatcher_preserves_file() {
|
async fn streamcatcher_preserves_file() {
|
||||||
@@ -51,7 +54,11 @@ fn compressed_triggers_valid_passthrough() {
|
|||||||
|
|
||||||
let mut decoder = Decoder::new(SampleRate::Hz48000, Channels::Stereo).unwrap();
|
let mut decoder = Decoder::new(SampleRate::Hz48000, Channels::Stereo).unwrap();
|
||||||
decoder
|
decoder
|
||||||
.decode(Some(&opus_buf[..opus_len]), &mut signal_buf[..], false)
|
.decode(
|
||||||
|
Some((&opus_buf[..opus_len]).try_into().unwrap()),
|
||||||
|
(&mut signal_buf[..]).try_into().unwrap(),
|
||||||
|
false,
|
||||||
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,7 +80,11 @@ fn run_through_dca(mut src: impl Read) {
|
|||||||
let pkt_len = src.read(&mut pkt_space[..frame_len as usize]).unwrap();
|
let pkt_len = src.read(&mut pkt_space[..frame_len as usize]).unwrap();
|
||||||
|
|
||||||
decoder
|
decoder
|
||||||
.decode(Some(&pkt_space[..pkt_len]), &mut signals[..], false)
|
.decode(
|
||||||
|
Some((&pkt_space[..pkt_len]).try_into().unwrap()),
|
||||||
|
(&mut signals[..]).try_into().unwrap(),
|
||||||
|
false,
|
||||||
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ use error::{Error, Result};
|
|||||||
use tokio::runtime::Handle;
|
use tokio::runtime::Handle;
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
convert::TryFrom,
|
convert::{TryFrom, TryInto},
|
||||||
io::{
|
io::{
|
||||||
self,
|
self,
|
||||||
Error as IoError,
|
Error as IoError,
|
||||||
@@ -233,8 +233,8 @@ impl Input {
|
|||||||
|
|
||||||
let samples = decoder
|
let samples = decoder
|
||||||
.decode_float(
|
.decode_float(
|
||||||
Some(&opus_data_buffer[..seen]),
|
Some((&opus_data_buffer[..seen]).try_into().unwrap()),
|
||||||
&mut decoder_state.current_frame[..],
|
(&mut decoder_state.current_frame[..]).try_into().unwrap(),
|
||||||
false,
|
false,
|
||||||
)
|
)
|
||||||
.unwrap_or(0);
|
.unwrap_or(0);
|
||||||
|
|||||||
Reference in New Issue
Block a user