From: Kostya Shishkov Date: Fri, 15 May 2026 16:24:54 +0000 (+0200) Subject: mace: apparently MACE-3 decodes two byte packets per channel X-Git-Url: https://git.nihav.org/?a=commitdiff_plain;h=96b5828c447c24db125778058abcc22963935f17;p=nihav.git mace: apparently MACE-3 decodes two byte packets per channel --- diff --git a/nihav-qt/src/codecs/mace.rs b/nihav-qt/src/codecs/mace.rs index d463764..14855a1 100644 --- a/nihav-qt/src/codecs/mace.rs +++ b/nihav-qt/src/codecs/mace.rs @@ -44,9 +44,17 @@ impl NADecoder for MaceDecoder { let dst = adata.get_data_mut().unwrap(); if !self.is_mace6 { - for src in pktbuf.chunks(channels) { + for src in pktbuf.chunks(channels * 2) { for ch in 0..channels { - let val = src[ch]; + let val = src[ch * 2]; + let idx0 = val & 7; + let idx1 = (val >> 3) & 3; + let idx2 = val >> 5; + dst[off[ch]] = self.ch_pred[ch].pred_mace3(idx0 as usize, false); + dst[off[ch] + 1] = self.ch_pred[ch].pred_mace3(idx1 as usize, true); + dst[off[ch] + 2] = self.ch_pred[ch].pred_mace3(idx2 as usize, false); + off[ch] += 3; + let val = src[ch * 2 + 1]; let idx0 = val & 7; let idx1 = (val >> 3) & 3; let idx2 = val >> 5;