infer/matchers/
audio.rs
1pub fn is_midi(buf: &[u8]) -> bool {
3 buf.len() > 3 && buf[0] == 0x4D && buf[1] == 0x54 && buf[2] == 0x68 && buf[3] == 0x64
4}
5
6pub fn is_mp3(buf: &[u8]) -> bool {
8 buf.len() > 2
9 && ((buf[0] == 0x49 && buf[1] == 0x44 && buf[2] == 0x33) || (buf[0] == 0xFF && buf[1] == 0xFB))
12}
13
14pub fn is_m4a(buf: &[u8]) -> bool {
16 buf.len() > 10
17 && ((buf[4] == 0x66
18 && buf[5] == 0x74
19 && buf[6] == 0x79
20 && buf[7] == 0x70
21 && buf[8] == 0x4D
22 && buf[9] == 0x34
23 && buf[10] == 0x41)
24 || (buf[0] == 0x4D && buf[1] == 0x34 && buf[2] == 0x41 && buf[3] == 0x20))
25}
26
27pub fn is_ogg(buf: &[u8]) -> bool {
29 buf.len() > 3 && buf[0] == 0x4F && buf[1] == 0x67 && buf[2] == 0x67 && buf[3] == 0x53
30}
31
32pub fn is_flac(buf: &[u8]) -> bool {
34 buf.len() > 3 && buf[0] == 0x66 && buf[1] == 0x4C && buf[2] == 0x61 && buf[3] == 0x43
35}
36
37pub fn is_wav(buf: &[u8]) -> bool {
39 buf.len() > 11
40 && buf[0] == 0x52
41 && buf[1] == 0x49
42 && buf[2] == 0x46
43 && buf[3] == 0x46
44 && buf[8] == 0x57
45 && buf[9] == 0x41
46 && buf[10] == 0x56
47 && buf[11] == 0x45
48}
49
50pub fn is_amr(buf: &[u8]) -> bool {
52 buf.len() > 11
53 && buf[0] == 0x23
54 && buf[1] == 0x21
55 && buf[2] == 0x41
56 && buf[3] == 0x4D
57 && buf[4] == 0x52
58 && buf[5] == 0x0A
59}
60
61pub fn is_aac(buf: &[u8]) -> bool {
63 buf.len() > 1 && buf[0] == 0xFF && (buf[1] == 0xF1 || buf[1] == 0xF9)
64}