X-Git-Url: https://code.octet-stream.net/m17rt/blobdiff_plain/d5f46a2d5d294c5a4287780dd609475fa73df9a8..777e27c79ca4f3b41432898238cf114a386142aa:/m17core/src/decode.rs diff --git a/m17core/src/decode.rs b/m17core/src/decode.rs old mode 100755 new mode 100644 index 911d673..3bd8164 --- a/m17core/src/decode.rs +++ b/m17core/src/decode.rs @@ -114,10 +114,7 @@ pub(crate) fn parse_lsf(frame: &[f32] /* length 192 */) -> Option { pub(crate) fn parse_stream(frame: &[f32] /* length 192 */) -> Option { let deinterleaved = frame_initial_decode(frame); let stream_part = &deinterleaved[12..]; - let stream = match fec::decode(stream_part, 144, p_2) { - Some(stream) => stream, - None => return None, - }; + let stream = fec::decode(stream_part, 144, p_2)?; let frame_num = u16::from_be_bytes([stream[0], stream[1]]); let eos = (frame_num & 0x8000) > 0; let frame_num = frame_num & 0x7fff; // higher layer has to handle wraparound @@ -142,12 +139,7 @@ pub(crate) fn parse_stream(frame: &[f32] /* length 192 */) -> Option Option { let deinterleaved = frame_initial_decode(frame); - let packet = match fec::decode(&deinterleaved, 206, p_3) { - Some(packet) => packet, - None => return None, - }; - // TODO: the spec is inconsistent about which bit in packet[25] is EOF - // https://github.com/M17-Project/M17_spec/issues/147 + let packet = fec::decode(&deinterleaved, 206, p_3)?; let final_frame = (packet[25] & 0x80) > 0; let number = (packet[25] >> 2) & 0x1f; let counter = if final_frame {