Skip to content

Commit 26e614b

Browse files
Jean-Yves Avenardkinetiknz
Jean-Yves Avenard
authored andcommitted
Add tests
1 parent 9b7799d commit 26e614b

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

mp4parse/src/tests.rs

+37-1
Original file line numberDiff line numberDiff line change
@@ -973,6 +973,7 @@ fn read_descriptor_80() {
973973

974974
assert_eq!(es.audio_codec, super::CodecType::AAC);
975975
assert_eq!(es.audio_object_type, Some(2));
976+
assert_eq!(es.extended_audio_object_type, None);
976977
assert_eq!(es.audio_sample_rate, Some(48000));
977978
assert_eq!(es.audio_channel_count, Some(2));
978979
assert_eq!(es.codec_esds, aac_esds);
@@ -1002,12 +1003,46 @@ fn read_esds() {
10021003

10031004
assert_eq!(es.audio_codec, super::CodecType::AAC);
10041005
assert_eq!(es.audio_object_type, Some(2));
1006+
assert_eq!(es.extended_audio_object_type, None);
10051007
assert_eq!(es.audio_sample_rate, Some(24000));
10061008
assert_eq!(es.audio_channel_count, Some(6));
10071009
assert_eq!(es.codec_esds, aac_esds);
10081010
assert_eq!(es.decoder_specific_data, aac_dc_descriptor);
10091011
}
10101012

1013+
#[test]
1014+
fn read_esds_aac_type5() {
1015+
let aac_esds =
1016+
vec![
1017+
0x03, 0x80, 0x80, 0x80,
1018+
0x2F, 0x00, 0x00, 0x00, 0x04, 0x80, 0x80, 0x80,
1019+
0x21, 0x40, 0x15, 0x00, 0x15, 0x00, 0x00, 0x03,
1020+
0xED, 0xAA, 0x00, 0x03, 0x6B, 0x00, 0x05, 0x80,
1021+
0x80, 0x80, 0x0F, 0x2B, 0x01, 0x88, 0x02, 0xC4,
1022+
0x04, 0x90, 0x2C, 0x10, 0x8C, 0x80, 0x00, 0x00,
1023+
0xED, 0x40, 0x06, 0x80, 0x80, 0x80, 0x01, 0x02,
1024+
];
1025+
1026+
let aac_dc_descriptor = &aac_esds[31 .. 46];
1027+
1028+
let mut stream = make_box(BoxSize::Auto, b"esds", |s| {
1029+
s.B32(0) // reserved
1030+
.append_bytes(aac_esds.as_slice())
1031+
});
1032+
let mut iter = super::BoxIter::new(&mut stream);
1033+
let mut stream = iter.next_box().unwrap().unwrap();
1034+
1035+
let es = super::read_esds(&mut stream).unwrap();
1036+
1037+
assert_eq!(es.audio_codec, super::CodecType::AAC);
1038+
assert_eq!(es.audio_object_type, Some(2));
1039+
assert_eq!(es.extended_audio_object_type, Some(5));
1040+
assert_eq!(es.audio_sample_rate, Some(24000));
1041+
assert_eq!(es.audio_channel_count, Some(8));
1042+
assert_eq!(es.codec_esds, aac_esds);
1043+
assert_eq!(es.decoder_specific_data, aac_dc_descriptor);
1044+
}
1045+
10111046
#[test]
10121047
fn read_stsd_mp4v() {
10131048
let mp4v =
@@ -1077,6 +1112,7 @@ fn read_esds_one_byte_extension_descriptor() {
10771112

10781113
assert_eq!(es.audio_codec, super::CodecType::AAC);
10791114
assert_eq!(es.audio_object_type, Some(2));
1115+
assert_eq!(es.extended_audio_object_type, None);
10801116
assert_eq!(es.audio_sample_rate, Some(48000));
10811117
assert_eq!(es.audio_channel_count, Some(2));
10821118
}
@@ -1198,7 +1234,7 @@ fn read_esds_invalid_descriptor() {
11981234
0x00, 0x04, 0x80, 0x80, 0x80, 0x14, 0x40, 0x01,
11991235
0x00, 0x04, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00,
12001236
0x00, 0xfa, 0x00, 0x05, 0x80, 0x80, 0x80, 0x02,
1201-
0xe8, 0x35, 0x06, 0xff, 0x7f, 0x00, 0x00, 0x02,
1237+
0xe8, 0x35, 0x06, 0xff, 0x7f, 0x00, 0x00,
12021238
];
12031239

12041240
let mut stream = make_box(BoxSize::Auto, b"esds", |s| {

0 commit comments

Comments
 (0)