From e4b76ac14904cfb3d9a50df37d7da91e59631bef Mon Sep 17 00:00:00 2001 From: David Wendt Date: Sat, 22 Apr 2023 14:31:53 -0400 Subject: [PATCH] flv: Sound format bits are ALSO specified backwards! --- flv/src/sound.rs | 20 ++++++++++---------- flv/src/tag.rs | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/flv/src/sound.rs b/flv/src/sound.rs index f3b8634d3..4a9559a8d 100644 --- a/flv/src/sound.rs +++ b/flv/src/sound.rs @@ -133,10 +133,10 @@ impl<'a> AudioData<'a> { let start = reader.stream_position().expect("current position") as usize; let format_spec = reader.read_u8()?; - let format = SoundFormat::try_from(format_spec & 0x0F).ok()?; - let rate = SoundRate::try_from((format_spec >> 4) & 0x03).ok()?; - let size = SoundSize::try_from((format_spec >> 6) & 0x01).ok()?; - let sound_type = SoundType::try_from((format_spec >> 7) & 0x01).ok()?; + let format = SoundFormat::try_from(format_spec >> 4).ok()?; + let rate = SoundRate::try_from((format_spec >> 2) & 0x03).ok()?; + let size = SoundSize::try_from((format_spec >> 1) & 0x01).ok()?; + let sound_type = SoundType::try_from(format_spec & 0x01).ok()?; let header_size = reader.stream_position().expect("current position") as usize - start; if (data_size as usize) < header_size { @@ -174,7 +174,7 @@ mod tests { #[test] fn read_audiodata() { - let data = [0xFB, 0x12, 0x34, 0x56, 0x78]; + let data = [0xBF, 0x12, 0x34, 0x56, 0x78]; let mut reader = FlvReader::from_source(&data); assert_eq!( @@ -191,7 +191,7 @@ mod tests { #[test] fn read_audiodata_invalid_len() { - let data = [0xFB, 0x12, 0x34, 0x56, 0x78]; + let data = [0xBF, 0x12, 0x34, 0x56, 0x78]; let mut reader = FlvReader::from_source(&data); assert_eq!(AudioData::parse(&mut reader, 0), None); @@ -199,7 +199,7 @@ mod tests { #[test] fn read_audiodata_short_len() { - let data = [0xFB, 0x12, 0x34, 0x56, 0x78]; + let data = [0xBF, 0x12, 0x34, 0x56, 0x78]; let mut reader = FlvReader::from_source(&data); assert_eq!( @@ -216,7 +216,7 @@ mod tests { #[test] fn read_audiodata_aac() { - let data = [0xFA, 0x01, 0x12, 0x34, 0x56, 0x78]; + let data = [0xAD, 0x01, 0x12, 0x34, 0x56, 0x78]; let mut reader = FlvReader::from_source(&data); assert_eq!( @@ -224,7 +224,7 @@ mod tests { Some(AudioData { format: SoundFormat::Aac, rate: SoundRate::R44_000, - size: SoundSize::Bits16, + size: SoundSize::Bits8, sound_type: SoundType::Stereo, data: AudioDataType::AacRaw(&[0x12, 0x34, 0x56, 0x78]) }) @@ -233,7 +233,7 @@ mod tests { #[test] fn read_audiodata_aac_invalid() { - let data = [0xFA, 0x02, 0x12, 0x34, 0x56, 0x78]; + let data = [0xAD, 0x02, 0x12, 0x34, 0x56, 0x78]; let mut reader = FlvReader::from_source(&data); assert_eq!(AudioData::parse(&mut reader, data.len() as u32), None); diff --git a/flv/src/tag.rs b/flv/src/tag.rs index d4074f87a..ebf129942 100644 --- a/flv/src/tag.rs +++ b/flv/src/tag.rs @@ -111,7 +111,7 @@ mod tests { fn read_tag_sounddata() { let data = [ 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, - 0x00, 0xFB, 0x12, 0x34, 0x56, 0x78, + 0x00, 0xBF, 0x12, 0x34, 0x56, 0x78, ]; let mut reader = FlvReader::from_source(&data);