1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#[cfg(feature = "driver-core")]
use audiopus::{Bitrate, SampleRate};
#[cfg(feature = "driver-core")]
use discortp::rtp::RtpType;
use std::time::Duration;
#[cfg(feature = "driver-core")]
pub const VOICE_GATEWAY_VERSION: u8 = crate::model::constants::GATEWAY_VERSION;
#[cfg(feature = "driver-core")]
pub const SAMPLE_RATE: SampleRate = SampleRate::Hz48000;
pub const SAMPLE_RATE_RAW: usize = 48_000;
pub const AUDIO_FRAME_RATE: usize = 50;
pub const TIMESTEP_LENGTH: Duration = Duration::from_millis(1000 / AUDIO_FRAME_RATE as u64);
#[cfg(feature = "driver-core")]
pub const DEFAULT_BITRATE: Bitrate = Bitrate::BitsPerSecond(128_000);
pub const MONO_FRAME_SIZE: usize = SAMPLE_RATE_RAW / AUDIO_FRAME_RATE;
pub const STEREO_FRAME_SIZE: usize = 2 * MONO_FRAME_SIZE;
pub const MONO_FRAME_BYTE_SIZE: usize = MONO_FRAME_SIZE * std::mem::size_of::<f32>();
pub const STEREO_FRAME_BYTE_SIZE: usize = STEREO_FRAME_SIZE * std::mem::size_of::<f32>();
pub const FRAME_LEN_MS: usize = 1000 / AUDIO_FRAME_RATE;
pub const CHILD_BUFFER_LEN: usize = AUDIO_FRAME_RATE / 2;
pub const VOICE_PACKET_MAX: usize = 1460;
pub const UDP_KEEPALIVE_GAP_MS: u64 = 5_000;
pub const UDP_KEEPALIVE_GAP: Duration = Duration::from_millis(UDP_KEEPALIVE_GAP_MS);
pub const SILENT_FRAME: [u8; 3] = [0xf8, 0xff, 0xfe];
pub const RTP_VERSION: u8 = 2;
#[cfg(feature = "driver-core")]
pub const RTP_PROFILE_TYPE: RtpType = RtpType::Dynamic(120);