indeo2: swap chroma planes
authorKostya Shishkov <kostya.shishkov@gmail.com>
Sat, 30 Nov 2019 10:37:36 +0000 (11:37 +0100)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Sat, 30 Nov 2019 10:37:36 +0000 (11:37 +0100)
nihav-indeo/src/codecs/indeo2.rs

index 58131c83f2b3414bf76a968d9847e50a4fc98ebb..089cd3598cd9275601e11f32992cb905e9ac603e 100644 (file)
@@ -335,7 +335,8 @@ impl NADecoder for Indeo2Decoder {
             let mut buf = bufinfo.get_vbuf().unwrap();
             for plane in 0..3 {
                 let tabidx = (if plane == 0 { luma_tab } else { chroma_tab }) as usize;
-                self.decode_plane_intra(&mut br, &mut buf, plane, tabidx)?;
+                let planeno = if plane == 0 { 0 } else { plane ^ 3 };
+                self.decode_plane_intra(&mut br, &mut buf, planeno, tabidx)?;
             }
             self.frmmgr.add_frame(buf);
             let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
@@ -349,7 +350,8 @@ impl NADecoder for Indeo2Decoder {
 
             for plane in 0..3 {
                 let tabidx = (if plane == 0 { luma_tab } else { chroma_tab }) as usize;
-                self.decode_plane_inter(&mut br, &mut buf, plane, tabidx)?;
+                let planeno = if plane == 0 { 0 } else { plane ^ 3 };
+                self.decode_plane_inter(&mut br, &mut buf, planeno, tabidx)?;
             }
             let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::Video(buf));
             frm.set_keyframe(false);