X-Git-Url: https://code.octet-stream.net/m17rt/blobdiff_plain/9058451e46e4d36264282abe381aa9b6fd2c773f..99f4fcbee0b9774a24ef2428ddce71889e602e3b:/m17core/src/encode.rs?ds=sidebyside diff --git a/m17core/src/encode.rs b/m17core/src/encode.rs index 4fc7429..0ba20d7 100644 --- a/m17core/src/encode.rs +++ b/m17core/src/encode.rs @@ -3,7 +3,7 @@ use crate::{ fec::{self, p_1, p_2, p_3}, interleave::interleave, protocol::{ - LsfFrame, PacketFrame, PacketFrameCounter, StreamFrame, LSF_SYNC, PACKET_SYNC, STREAM_SYNC, + LSF_SYNC, LsfFrame, PACKET_SYNC, PacketFrame, PacketFrameCounter, STREAM_SYNC, StreamFrame, }, random::random_xor, }; @@ -31,11 +31,11 @@ pub(crate) fn encode_packet(frame: &PacketFrame) -> [f32; 192] { match frame.counter { PacketFrameCounter::Frame { index } => { type1[0..25].copy_from_slice(&frame.payload); - type1[25] = (index as u8) << 3; + type1[25] = (index as u8) << 2; } PacketFrameCounter::FinalFrame { payload_len } => { type1[0..payload_len].copy_from_slice(&frame.payload[0..payload_len]); - type1[25] = ((payload_len as u8) << 3) | 0x04; + type1[25] = ((payload_len as u8) << 2) | 0x80; } } let type3 = fec::encode(&type1, 206, p_3); @@ -113,7 +113,7 @@ mod tests { ]); let encoded = encode_lsf(&lsf); let decoded = crate::decode::parse_lsf(&encoded); - assert_eq!(decoded, Some(lsf)); + assert!(matches!(decoded, Some((frame, _)) if frame == lsf)); } #[test] @@ -127,7 +127,7 @@ mod tests { }; let encoded = encode_stream(&stream); let decoded = crate::decode::parse_stream(&encoded); - assert_eq!(decoded, Some(stream)); + assert!(matches!(decoded, Some((frame, _)) if frame == stream)); } #[test] @@ -138,7 +138,7 @@ mod tests { }; let encoded = encode_packet(&packet); let decoded = crate::decode::parse_packet(&encoded); - assert_eq!(decoded, Some(packet)); + assert!(matches!(decoded, Some((frame, _)) if frame == packet)); let packet = PacketFrame { payload: [0u8; 25], @@ -146,7 +146,7 @@ mod tests { }; let encoded = encode_packet(&packet); let decoded = crate::decode::parse_packet(&encoded); - assert_eq!(decoded, Some(packet)); + assert!(matches!(decoded, Some((frame, _)) if frame == packet)); } #[test]