From ab6fcc36bd8b35484b2c942ee67e50f4142ca9ec Mon Sep 17 00:00:00 2001 From: Kostya Shishkov Date: Tue, 24 Feb 2026 18:28:30 +0100 Subject: [PATCH] indeo3enc: fix handling of skipped frame Previously it forgot to _not_ update buffer reference, leadring to decoders reading from the wrong previous frame. --- nihav-indeo/src/codecs/indeo3enc/mod.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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; -- 2.39.5