X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-realmedia%2Fsrc%2Fcodecs%2Frv20.rs;h=333e91a08df53e81885425bd091eb12bf8b39173;hb=e6aaad5c5273cd814b5748b7faf3751835a37217;hp=078198731844d7874e829d8ba2b4ce89ca112b62;hpb=b7c882c1ce6f86c07c2340751200e3a060942826;p=nihav.git diff --git a/nihav-realmedia/src/codecs/rv20.rs b/nihav-realmedia/src/codecs/rv20.rs index 0781987..333e91a 100644 --- a/nihav-realmedia/src/codecs/rv20.rs +++ b/nihav-realmedia/src/codecs/rv20.rs @@ -257,7 +257,7 @@ impl<'a> RealVideo20BR<'a> { let rl_cb = if sstate.is_iframe { &self.tables.aic_rl_cb } else { &self.tables.rl_cb }; let q = if plane_no == 0 { (quant * 2) as i16 } else { (H263_CHROMA_QUANT[quant as usize] * 2) as i16 }; - let q_add = if q == 0 || sstate.is_iframe { 0i16 } else { (((q >> 1) - 1) | 1) as i16 }; + let q_add = if q == 0 || sstate.is_iframe { 0i16 } else { ((q >> 1) - 1) | 1 }; while idx < 64 { let code = br.read_cb(rl_cb)?; let run; @@ -593,7 +593,7 @@ impl RealVideo20Decoder { h: 0, minor_ver: 0, rpr: RPRInfo { present: false, bits: 0, widths: [0; 8], heights: [0; 8] }, - bdsp: Box::new(RV20BlockDSP::default()), + bdsp: Box::::default(), base_ts: 0, last_ts: 0, next_ts: 0, @@ -626,7 +626,7 @@ impl NADecoder for RealVideo20Decoder { self.rpr.present = false; } else { self.rpr.present = true; - self.rpr.bits = ((rprb >> 1) + 1).min(3) as u8; + self.rpr.bits = ((rprb >> 1) + 1).min(3); let num_dim = ((src.len() - 8) / 2).min(self.rpr.widths.len() - 1); for i in 0..num_dim { self.rpr.widths [i] = (src[i * 2 + 8] as usize) * 4; @@ -702,6 +702,7 @@ mod test { let mut dec_reg = RegisteredDecoders::new(); realmedia_register_all_decoders(&mut dec_reg); + // sample from a private collection test_decoding("realmedia", "realvideo2", "assets/RV/rv20_svt_atrc_640x352_realproducer_plus_8.51.rm", Some(1000), &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![