* fix: windows, improve audio buffer (#9770) * . * fix statics does not record and avoid channel changing when drio audio when audio is stero * add some commence * fix mis-align problem when converting &[u8] to &[f32] * add safety commence * revert client.rs * avoid tmp lifetime extends * avoid move in loop * avoid use after drop * another use after free * another use after free * make code more reasonable --------- Co-authored-by: zylthinking <zhaoyulong@qianxin.com>
15 lines
456 B
Rust
15 lines
456 B
Rust
/// SAFETY: the returned Vec must not be resized or reserverd
|
|
pub unsafe fn aligned_u8_vec(cap: usize, align: usize) -> Vec<u8> {
|
|
use std::alloc::*;
|
|
|
|
let layout =
|
|
Layout::from_size_align(cap, align).expect("invalid aligned value, must be power of 2");
|
|
unsafe {
|
|
let ptr = alloc(layout);
|
|
if ptr.is_null() {
|
|
panic!("failed to allocate {} bytes", cap);
|
|
}
|
|
Vec::from_raw_parts(ptr, 0, cap)
|
|
}
|
|
}
|