@@ -973,6 +973,7 @@ fn read_descriptor_80() {
973
973
974
974
assert_eq ! ( es. audio_codec, super :: CodecType :: AAC ) ;
975
975
assert_eq ! ( es. audio_object_type, Some ( 2 ) ) ;
976
+ assert_eq ! ( es. extended_audio_object_type, None ) ;
976
977
assert_eq ! ( es. audio_sample_rate, Some ( 48000 ) ) ;
977
978
assert_eq ! ( es. audio_channel_count, Some ( 2 ) ) ;
978
979
assert_eq ! ( es. codec_esds, aac_esds) ;
@@ -1002,12 +1003,46 @@ fn read_esds() {
1002
1003
1003
1004
assert_eq ! ( es. audio_codec, super :: CodecType :: AAC ) ;
1004
1005
assert_eq ! ( es. audio_object_type, Some ( 2 ) ) ;
1006
+ assert_eq ! ( es. extended_audio_object_type, None ) ;
1005
1007
assert_eq ! ( es. audio_sample_rate, Some ( 24000 ) ) ;
1006
1008
assert_eq ! ( es. audio_channel_count, Some ( 6 ) ) ;
1007
1009
assert_eq ! ( es. codec_esds, aac_esds) ;
1008
1010
assert_eq ! ( es. decoder_specific_data, aac_dc_descriptor) ;
1009
1011
}
1010
1012
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
+
1011
1046
#[ test]
1012
1047
fn read_stsd_mp4v ( ) {
1013
1048
let mp4v =
@@ -1077,6 +1112,7 @@ fn read_esds_one_byte_extension_descriptor() {
1077
1112
1078
1113
assert_eq ! ( es. audio_codec, super :: CodecType :: AAC ) ;
1079
1114
assert_eq ! ( es. audio_object_type, Some ( 2 ) ) ;
1115
+ assert_eq ! ( es. extended_audio_object_type, None ) ;
1080
1116
assert_eq ! ( es. audio_sample_rate, Some ( 48000 ) ) ;
1081
1117
assert_eq ! ( es. audio_channel_count, Some ( 2 ) ) ;
1082
1118
}
@@ -1198,7 +1234,7 @@ fn read_esds_invalid_descriptor() {
1198
1234
0x00 , 0x04 , 0x80 , 0x80 , 0x80 , 0x14 , 0x40 , 0x01 ,
1199
1235
0x00 , 0x04 , 0x00 , 0x00 , 0x00 , 0xfa , 0x00 , 0x00 ,
1200
1236
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 ,
1202
1238
] ;
1203
1239
1204
1240
let mut stream = make_box ( BoxSize :: Auto , b"esds" , |s| {
0 commit comments