Files
lib_um_crypto_rust/um_audio/src/sync_frame.rs
2025-03-31 08:53:18 +09:00

18 lines
576 B
Rust

pub const SYNC_FRAME_TEST_SIZE: usize = 4096;
pub fn is_mp3(magic: u32) -> bool {
// Frame sync should have the first 11 bits set to 1.
const MP3_AND_MASK: u32 = 0b1111_1111_1110_0000u32 << 16;
const MP3_EXPECTED: u32 = 0b1111_1111_1110_0000u32 << 16;
(magic & MP3_AND_MASK) == MP3_EXPECTED
}
pub fn is_aac(magic: u32) -> bool {
// Frame sync should have the first 12 bits set to 1.
const AAC_AND_MASK: u32 = 0b1111_1111_1111_0110u32 << 16;
const AAC_EXPECTED: u32 = 0b1111_1111_1111_0000u32 << 16;
(magic & AAC_AND_MASK) == AAC_EXPECTED
}