X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-duck%2Fsrc%2Fcodecs%2Ftruemotion2x.rs;h=16d1125f71d44bb1f93d722209faba5703c2b6fc;hb=56e5e5455bffbe9c180896aec15cda1396fe7e95;hp=560ab6a969d213e69bbe6e1f8b6f65ad75353415;hpb=171860fcc4a4ba3ec28bc4b720b9f582377be4cf;p=nihav.git diff --git a/nihav-duck/src/codecs/truemotion2x.rs b/nihav-duck/src/codecs/truemotion2x.rs index 560ab6a..16d1125 100644 --- a/nihav-duck/src/codecs/truemotion2x.rs +++ b/nihav-duck/src/codecs/truemotion2x.rs @@ -69,25 +69,25 @@ impl Deltas { fn get_int(&mut self, br: &mut ByteReader) -> DecoderResult { let b = self.get_val(br)?; if b != self.vq_esc - 1 { - return Ok(Self::remap(b as u16)); + return Ok(Self::remap(u16::from(b))); } let mut run = 0; let mut val; - let mut pow = self.vq_esc as u16; + let mut pow = u16::from(self.vq_esc); loop { let b = self.get_val(br)?; run += 1; if b != self.vq_esc - 1 { - val = (b as u16) * pow; + val = u16::from(b) * pow; break; } - pow *= self.vq_esc as u16; + pow *= u16::from(self.vq_esc); } for _ in 0..run { - pow /= self.vq_esc as u16; - let b = self.get_val(br)? as u16; - val += pow * (b as u16); + pow /= u16::from(self.vq_esc); + let b = u16::from(self.get_val(br)?); + val += pow * b; } Ok(Self::remap(val)) } @@ -556,7 +556,7 @@ impl TM2XDecoder { } impl NADecoder for TM2XDecoder { - fn init(&mut self, info: NACodecInfoRef) -> DecoderResult<()> { + fn init(&mut self, _supp: &mut NADecoderSupport, info: NACodecInfoRef) -> DecoderResult<()> { if let NACodecTypeInfo::Video(vinfo) = info.get_properties() { let fmt = NAPixelFormaton::new(ColorModel::YUV(YUVSubmodel::YUVJ), Some(NAPixelChromaton::new(0, 0, false, 8, 0, 0, 1)), @@ -574,7 +574,7 @@ impl NADecoder for TM2XDecoder { Err(DecoderError::InvalidData) } } - fn decode(&mut self, pkt: &NAPacket) -> DecoderResult { + fn decode(&mut self, _supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult { let src = pkt.get_buffer(); validate!(src.len() > 8); let mut mr = MemoryReader::new_read(&src); @@ -678,9 +678,7 @@ impl NADecoder for TM2XDecoder { self.decode_frame(&src[12..][..data_size])?; let myinfo = self.info.get_properties().get_video_info().unwrap(); - let bufret = alloc_video_buffer(myinfo, 2); - if let Err(_) = bufret { return Err(DecoderError::InvalidData); } - let bufinfo = bufret.unwrap(); + let bufinfo = alloc_video_buffer(myinfo, 2)?; let mut buf = bufinfo.get_vbuf().unwrap(); self.output_frame(&mut buf); @@ -692,7 +690,7 @@ impl NADecoder for TM2XDecoder { } } -pub fn get_decoder() -> Box { +pub fn get_decoder() -> Box { Box::new(TM2XDecoder::new()) }