From: Kostya Shishkov Date: Tue, 24 Feb 2026 17:28:30 +0000 (+0100) Subject: indeo3enc: fix handling of skipped frame X-Git-Url: https://git.nihav.org/?a=commitdiff_plain;h=ab6fcc36bd8b35484b2c942ee67e50f4142ca9ec;p=nihav.git indeo3enc: fix handling of skipped frame Previously it forgot to _not_ update buffer reference, leadring to decoders reading from the wrong previous frame. --- diff --git a/nihav-indeo/src/codecs/indeo3enc/mod.rs b/nihav-indeo/src/codecs/indeo3enc/mod.rs index 2df61c7..f2269a2 100644 --- a/nihav-indeo/src/codecs/indeo3enc/mod.rs +++ b/nihav-indeo/src/codecs/indeo3enc/mod.rs @@ -387,7 +387,12 @@ impl NAEncoder for Indeo3Encoder { } } - std::mem::swap(&mut self.cframe, &mut self.pframe); + if !skipped { + std::mem::swap(&mut self.cframe, &mut self.pframe); + } else { + self.buf_sel = !self.buf_sel; + dbuf[19] ^= 1; + } self.frameno += 1; let fsize = dbuf.len() as u32;