Skip to content

Commit eee4d6a

Browse files
authored
Merge pull request #48 from hannesbraun/aiff-support
Add AIFF support
2 parents 75148c2 + 747e509 commit eee4d6a

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ assert_eq!(kind.extension(), "foo");
143143
- **wav** - `audio/x-wav`
144144
- **amr** - `audio/amr`
145145
- **aac** - `audio/aac`
146+
- **aiff** - `audio/x-aiff`
146147

147148
#### Archive
148149

src/map.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,12 @@ matcher_map!(
295295
"aac",
296296
matchers::audio::is_aac
297297
),
298+
(
299+
MatcherType::Audio,
300+
"audio/x-aiff",
301+
"aiff",
302+
matchers::audio::is_aiff
303+
),
298304
// Font
299305
(
300306
MatcherType::Font,

src/matchers/audio.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,16 @@ pub fn is_amr(buf: &[u8]) -> bool {
6262
pub fn is_aac(buf: &[u8]) -> bool {
6363
buf.len() > 1 && buf[0] == 0xFF && (buf[1] == 0xF1 || buf[1] == 0xF9)
6464
}
65+
66+
/// Returns whether a buffer is AIFF data.
67+
pub fn is_aiff(buf: &[u8]) -> bool {
68+
buf.len() > 11
69+
&& buf[0] == 0x46
70+
&& buf[1] == 0x4F
71+
&& buf[2] == 0x52
72+
&& buf[3] == 0x4D
73+
&& buf[8] == 0x41
74+
&& buf[9] == 0x49
75+
&& buf[10] == 0x46
76+
&& buf[11] == 0x46
77+
}

0 commit comments

Comments
 (0)