diff --git a/src/render_data.rs b/src/render_data.rs index da2e0d5..576737a 100644 --- a/src/render_data.rs +++ b/src/render_data.rs @@ -69,8 +69,9 @@ impl RenderManager { let mut encoder = opus2::Encoder::new(sample_rate, channels, Application::Audio).expect("TODO"); - const MAX_SIZE: usize = usize::MAX / 4; - let encode_result = encoder.encode_vec(&samples, MAX_SIZE); + let estimated_max_size = (samples.len() * sample_rate as usize) * size_of::() / size_of::(); + + let encode_result = encoder.encode_vec(&samples, estimated_max_size); if let Err(error) = &encode_result { tracing::error!(?error); } else {