fix some warnings (unneeded parentheses, missing dyn keyword)
authorKostya Shishkov <kostya.shiskov@gmail.com>
Sun, 27 Sep 2020 11:24:03 +0000 (13:24 +0200)
committerKostya Shishkov <kostya.shiskov@gmail.com>
Sun, 27 Sep 2020 11:24:03 +0000 (13:24 +0200)
23 files changed:
nihav-codec-support/src/codecs/h263/decoder.rs
nihav-commonfmt/src/demuxers/mod.rs
nihav-commonfmt/src/demuxers/wav.rs
nihav-commonfmt/src/muxers/mod.rs
nihav-core/src/demuxers/mod.rs
nihav-core/src/io/byteio.rs
nihav-core/src/io/codebook.rs
nihav-core/src/muxers/mod.rs
nihav-duck/src/codecs/vp3.rs
nihav-duck/src/codecs/vp5.rs
nihav-duck/src/codecs/vp6.rs
nihav-duck/src/codecs/vp7.rs
nihav-duck/src/codecs/vp7dsp.rs
nihav-game/src/demuxers/mod.rs
nihav-indeo/src/codecs/ivibr.rs
nihav-llaudio/src/demuxers/mod.rs
nihav-rad/src/demuxers/mod.rs
nihav-rad/src/demuxers/smacker.rs
nihav-realmedia/src/codecs/ra144.rs
nihav-realmedia/src/codecs/rv3040.rs
nihav-realmedia/src/demuxers/mod.rs
nihav-registry/src/detect.rs
nihav-vivo/src/demuxers/mod.rs

index f5c528ac420e9e0905f88980e0d002c324f83337..a477711b40f83e4cc4a69ba2d6cd6c9f092fd859 100644 (file)
@@ -209,7 +209,7 @@ impl H263BaseDecoder {
     }
     pub fn get_dimensions(&self) -> (usize, usize) { (self.w, self.h) }
 
-    fn decode_intra_mb(&mut self, bd: &mut BlockDecoder, bdsp: &BlockDSP, mb_pos: usize, binfo: &BlockInfo, sstate: &SliceState, apply_acpred: bool) -> DecoderResult<()> {
+    fn decode_intra_mb(&mut self, bd: &mut dyn BlockDecoder, bdsp: &dyn BlockDSP, mb_pos: usize, binfo: &BlockInfo, sstate: &SliceState, apply_acpred: bool) -> DecoderResult<()> {
         for i in 0..6 {
             bd.decode_block_intra(&binfo, &sstate, binfo.get_q(), i, (binfo.cbp & (1 << (5 - i))) != 0, &mut self.blk[i])?;
             if apply_acpred && (binfo.acpred != ACPredMode::None) {
@@ -282,7 +282,7 @@ impl H263BaseDecoder {
         }
         Ok(())
     }
-    fn decode_inter_mb(&mut self, bd: &mut BlockDecoder, bdsp: &BlockDSP, binfo: &BlockInfo, sstate: &SliceState) -> DecoderResult<()> {
+    fn decode_inter_mb(&mut self, bd: &mut dyn BlockDecoder, bdsp: &dyn BlockDSP, binfo: &BlockInfo, sstate: &SliceState) -> DecoderResult<()> {
         for i in 0..6 {
             bd.decode_block_inter(&binfo, &sstate, binfo.get_q(), i, ((binfo.cbp >> (5 - i)) & 1) != 0, &mut self.blk[i])?;
             bdsp.idct(&mut self.blk[i]);
@@ -406,7 +406,7 @@ impl H263BaseDecoder {
         mb_pos
     }
     #[allow(clippy::cyclomatic_complexity)]
-    pub fn parse_frame(&mut self, bd: &mut BlockDecoder, bdsp: &BlockDSP) -> DecoderResult<NABufferType> {
+    pub fn parse_frame(&mut self, bd: &mut dyn BlockDecoder, bdsp: &dyn BlockDSP) -> DecoderResult<NABufferType> {
         let pinfo = bd.decode_pichdr()?;
         let mut mvi = MVInfo::new();
         let mut mvi2 = MVInfo::new();
@@ -663,7 +663,7 @@ impl H263BaseDecoder {
         self.ipbs.clear();
     }
 
-    pub fn get_bframe(&mut self, bdsp: &BlockDSP) -> DecoderResult<NABufferType> {
+    pub fn get_bframe(&mut self, bdsp: &dyn BlockDSP) -> DecoderResult<NABufferType> {
         if !self.has_b || self.ipbs.get_lastref().is_none() || self.ipbs.get_nextref().is_none() {
             return Err(DecoderError::MissingReference);
         }
@@ -683,7 +683,7 @@ impl H263BaseDecoder {
     }
 }
 
-fn recon_b_mb(buf: &mut NAVideoBuffer<u8>, ipbs: &mut IPBShuffler, bdsp: &BlockDSP, mvi: &mut MVInfo, mvi2: &mut MVInfo, mb_pos: usize, mb_w: usize, sstate: &SliceState, binfo: &BlockInfo, mv_data: &[BlockMVInfo], bsdiff: u16, tsdiff: u16) {
+fn recon_b_mb(buf: &mut NAVideoBuffer<u8>, ipbs: &mut IPBShuffler, bdsp: &dyn BlockDSP, mvi: &mut MVInfo, mvi2: &mut MVInfo, mb_pos: usize, mb_w: usize, sstate: &SliceState, binfo: &BlockInfo, mv_data: &[BlockMVInfo], bsdiff: u16, tsdiff: u16) {
     let mb_x = mb_pos % mb_w;
     let mb_y = mb_pos / mb_w;
 
@@ -747,7 +747,7 @@ fn recon_b_mb(buf: &mut NAVideoBuffer<u8>, ipbs: &mut IPBShuffler, bdsp: &BlockD
 }
 
 fn recon_b_frame(mut b_buf: NAVideoBufferRef<u8>, bck_buf: NAVideoBufferRef<u8>, fwd_buf: NAVideoBufferRef<u8>,
-                 mb_w: usize, mb_h: usize, b_data: &[BMB], bdsp: &BlockDSP) {
+                 mb_w: usize, mb_h: usize, b_data: &[BMB], bdsp: &dyn BlockDSP) {
     let mut cbpi = CBPInfo::new();
     let mut cur_mb = 0;
     cbpi.reset(mb_w);
index ba8a8df4a9653cd71dd4e4b7e6161a716f0066ab..d602cfca5288043d6e1b964a32f9210a9e129951 100644 (file)
@@ -15,7 +15,7 @@ mod mov;
 #[cfg(feature="demuxer_wav")]
 mod wav;
 
-const DEMUXERS: &[&DemuxerCreator] = &[
+const DEMUXERS: &[&dyn DemuxerCreator] = &[
 #[cfg(feature="demuxer_avi")]
     &avi::AVIDemuxerCreator {},
 #[cfg(feature="demuxer_mov")]
index a57927900f3d752891dd9fda396d4edd57fcff78..ce6318a6a41dd292015102aaae23611df91b541e 100644 (file)
@@ -25,7 +25,7 @@ impl<'a> DemuxCore<'a> for WAVDemuxer<'a> {
     fn open(&mut self, strmgr: &mut StreamManager, seek_index: &mut SeekIndex) -> DemuxerResult<()> {
         let riff                        = self.src.read_u32be()?;
         let riff_size                   = self.src.read_u32le()? as usize;
-        let riff_end = self.src.tell() + if riff_size > 0 { (riff_size as u64) } else { u64::from(std::u32::MAX) };
+        let riff_end = self.src.tell() + if riff_size > 0 { riff_size as u64 } else { u64::from(std::u32::MAX) };
         let wave                        = self.src.read_u32be()?;
         validate!(riff == mktag!(b"RIFF"));
         validate!(wave == mktag!(b"WAVE"));
index 5865172d8ede3518d418ab8a7a988ff2104096e7..6df929cd5077e28594470bee133c348b7d56d602 100644 (file)
@@ -5,7 +5,7 @@ mod avi;
 #[cfg(feature="muxer_wav")]
 mod wav;
 
-const MUXERS: &[&MuxerCreator] = &[
+const MUXERS: &[&dyn MuxerCreator] = &[
 #[cfg(feature="muxer_avi")]
     &avi::AVIMuxerCreator {},
 #[cfg(feature="muxer_wav")]
index 352c1605f20050b8f33cb5e9700a4c8d2b1fb97f..b54e5633440e4aec325dc3c706de84e29ef170be 100644 (file)
@@ -88,7 +88,7 @@ impl StreamManager {
     /// Adds a new stream.
     pub fn add_stream(&mut self, stream: NAStream) -> Option<usize> {
         let stream_num = self.streams.len();
-        let mut str = stream.clone();
+        let mut str = stream;
         str.set_num(stream_num);
         self.streams.push(str.into_ref());
         self.ignored.push(false);
@@ -442,7 +442,7 @@ pub trait DemuxerCreator {
 }
 
 /// Creates demuxer for a provided bytestream.
-pub fn create_demuxer<'a>(dmxcr: &DemuxerCreator, br: &'a mut ByteReader<'a>) -> DemuxerResult<Demuxer<'a>> {
+pub fn create_demuxer<'a>(dmxcr: &dyn DemuxerCreator, br: &'a mut ByteReader<'a>) -> DemuxerResult<Demuxer<'a>> {
     let mut dmx = dmxcr.new_demuxer(br);
     let mut str = StreamManager::new();
     let mut seek_idx = SeekIndex::new();
@@ -453,7 +453,7 @@ pub fn create_demuxer<'a>(dmxcr: &DemuxerCreator, br: &'a mut ByteReader<'a>) ->
 /// List of registered demuxers.
 #[derive(Default)]
 pub struct RegisteredDemuxers {
-    dmxs:   Vec<&'static DemuxerCreator>,
+    dmxs:   Vec<&'static dyn DemuxerCreator>,
 }
 
 impl RegisteredDemuxers {
@@ -462,11 +462,11 @@ impl RegisteredDemuxers {
         Self { dmxs: Vec::new() }
     }
     /// Registers a new demuxer.
-    pub fn add_demuxer(&mut self, dmx: &'static DemuxerCreator) {
+    pub fn add_demuxer(&mut self, dmx: &'static dyn DemuxerCreator) {
         self.dmxs.push(dmx);
     }
     /// Searches for a demuxer that supports requested container format.
-    pub fn find_demuxer(&self, name: &str) -> Option<&DemuxerCreator> {
+    pub fn find_demuxer(&self, name: &str) -> Option<&dyn DemuxerCreator> {
         for &dmx in self.dmxs.iter() {
             if dmx.get_name() == name {
                 return Some(dmx);
@@ -475,7 +475,7 @@ impl RegisteredDemuxers {
         None
     }
     /// Provides an iterator over currently registered demuxers.
-    pub fn iter(&self) -> std::slice::Iter<&DemuxerCreator> {
+    pub fn iter(&self) -> std::slice::Iter<&dyn DemuxerCreator> {
         self.dmxs.iter()
     }
 }
index 3677501ae9f1c537ba03df96ad6889b5703bb1d0..adbb6369264ae3e3bd02fd6e96b9a14264945665 100644 (file)
@@ -75,7 +75,7 @@ pub trait ByteIO {
 /// [`MemoryReader`]: ./struct.MemoryReader.html
 #[allow(dead_code)]
 pub struct ByteReader<'a> {
-    io: &'a mut ByteIO,
+    io: &'a mut dyn ByteIO,
 }
 
 /// Bytestream reader from memory.
@@ -241,7 +241,7 @@ impl<'a> ByteReader<'a> {
     /// # Ok(())
     /// # }
     /// ````
-    pub fn new(io: &'a mut ByteIO) -> Self { ByteReader { io } }
+    pub fn new(io: &'a mut dyn ByteIO) -> Self { ByteReader { io } }
 
     /// Reads data into provided buffer. Partial read is treated as success.
     pub fn read_buf(&mut self, buf: &mut [u8])  -> ByteIOResult<usize> {
@@ -639,7 +639,7 @@ impl<T: Read+Seek> ByteIO for FileReader<T> {
 /// [`MemoryWriter`]: ./struct.MemoryWriter.html
 #[allow(dead_code)]
 pub struct ByteWriter<'a> {
-    io: &'a mut ByteIO,
+    io: &'a mut dyn ByteIO,
 }
 
 /// Bytestream writer to memory.
@@ -665,7 +665,7 @@ pub struct GrowableMemoryWriter<'a> {
 
 impl<'a> ByteWriter<'a> {
     /// Constructs a new instance of `ByteWriter`.
-    pub fn new(io: &'a mut ByteIO) -> Self { ByteWriter { io } }
+    pub fn new(io: &'a mut dyn ByteIO) -> Self { ByteWriter { io } }
 
     /// Writes byte array to the output.
     pub fn write_buf(&mut self, buf: &[u8])  -> ByteIOResult<()> {
index 384a743e06191689042923ce1b03032f6ccbe72b..0ec88833abb081485acf1e3dd3dec05a603713b0 100644 (file)
@@ -289,7 +289,7 @@ fn build_esc_lut(table: &mut Vec<u32>,
 impl<S: Copy> Codebook<S> {
 
     /// Constructs a new `Codebook` instance using provided codebook description and mode.
-    pub fn new(cb: &mut CodebookDescReader<S>, mode: CodebookMode) -> CodebookResult<Self> {
+    pub fn new(cb: &mut dyn CodebookDescReader<S>, mode: CodebookMode) -> CodebookResult<Self> {
         let mut maxbits = 0;
         let mut nnz = 0;
         let mut escape_list: EscapeCodes = HashMap::new();
index 69ab917562d762e8cf22c2ad9ad055ea7be84ad1..40a6eb353f919f7cb5f7d3a601d82222b32af170 100644 (file)
@@ -134,7 +134,7 @@ pub trait MuxerCreator {
 }
 
 /// Creates muxer for a provided bytestream writer.
-pub fn create_muxer<'a>(mxcr: &MuxerCreator, str: StreamManager, bw: &'a mut ByteWriter<'a>) -> MuxerResult<Muxer<'a>> {
+pub fn create_muxer<'a>(mxcr: &dyn MuxerCreator, str: StreamManager, bw: &'a mut ByteWriter<'a>) -> MuxerResult<Muxer<'a>> {
     let mut mux = mxcr.new_muxer(bw);
     mux.create(&str)?;
     Ok(Muxer::new(mux, str))
@@ -143,7 +143,7 @@ pub fn create_muxer<'a>(mxcr: &MuxerCreator, str: StreamManager, bw: &'a mut Byt
 /// List of registered muxers.
 #[derive(Default)]
 pub struct RegisteredMuxers {
-    muxes:  Vec<&'static MuxerCreator>,
+    muxes:  Vec<&'static dyn MuxerCreator>,
 }
 
 impl RegisteredMuxers {
@@ -152,11 +152,11 @@ impl RegisteredMuxers {
         Self { muxes: Vec::new() }
     }
     /// Registers a new muxer.
-    pub fn add_muxer(&mut self, mux: &'static MuxerCreator) {
+    pub fn add_muxer(&mut self, mux: &'static dyn MuxerCreator) {
         self.muxes.push(mux);
     }
     /// Searches for a muxer that supports requested container format.
-    pub fn find_muxer(&self, name: &str) -> Option<&MuxerCreator> {
+    pub fn find_muxer(&self, name: &str) -> Option<&dyn MuxerCreator> {
         for &mux in self.muxes.iter() {
             if mux.get_name() == name {
                 return Some(mux);
@@ -165,7 +165,7 @@ impl RegisteredMuxers {
         None
     }
     /// Provides an iterator over currently registered muxers.
-    pub fn iter(&self) -> std::slice::Iter<&MuxerCreator> {
+    pub fn iter(&self) -> std::slice::Iter<&dyn MuxerCreator> {
         self.muxes.iter()
     }
 }
index 9d6ef6aff37bb321f9ef0ebc08609646630dc9dc..9d5693622ac95304c5ab9787c613da1499fd6b1d 100644 (file)
@@ -1872,11 +1872,11 @@ impl NAOptionHandler for VP34Decoder {
     fn query_option_value(&self, _name: &str) -> Option<NAValue> { None }
 }
 
-pub fn get_decoder_vp3() -> Box<NADecoder + Send> {
+pub fn get_decoder_vp3() -> Box<dyn NADecoder + Send> {
     Box::new(VP34Decoder::new(3))
 }
 
-pub fn get_decoder_vp4() -> Box<NADecoder + Send> {
+pub fn get_decoder_vp4() -> Box<dyn NADecoder + Send> {
     Box::new(VP34Decoder::new(4))
 }
 
index 70c26c6fa77d57f734abb21edb59839f3d0da9c2..48fda2d3b74b87fa1eaa17df5a6b6c054825cdff 100644 (file)
@@ -284,7 +284,7 @@ impl NAOptionHandler for VP5Decoder {
     fn query_option_value(&self, _name: &str) -> Option<NAValue> { None }
 }
 
-pub fn get_decoder() -> Box<NADecoder + Send> {
+pub fn get_decoder() -> Box<dyn NADecoder + Send> {
     Box::new(VP5Decoder::new())
 }
 
index 93722d303dd9a005332a1e5bba05561971ac8e8a..3dda67be9ea8f9b7171654d498c538ad510127cf 100644 (file)
@@ -720,11 +720,11 @@ impl NAOptionHandler for VP6Decoder {
     fn query_option_value(&self, _name: &str) -> Option<NAValue> { None }
 }
 
-pub fn get_decoder_vp6() -> Box<NADecoder + Send> {
+pub fn get_decoder_vp6() -> Box<dyn NADecoder + Send> {
     Box::new(VP6Decoder::new(false))
 }
 
-pub fn get_decoder_vp6_alpha() -> Box<NADecoder + Send> {
+pub fn get_decoder_vp6_alpha() -> Box<dyn NADecoder + Send> {
     Box::new(VP6Decoder::new(true))
 }
 
index 2632b40283baee3f39859da1e1d2c42cb585aeaf..9243f93456de6512340f781e4391c0235c74fee6 100644 (file)
@@ -1430,7 +1430,7 @@ impl NAOptionHandler for VP7Decoder {
     fn query_option_value(&self, _name: &str) -> Option<NAValue> { None }
 }
 
-pub fn get_decoder() -> Box<NADecoder + Send> {
+pub fn get_decoder() -> Box<dyn NADecoder + Send> {
     Box::new(VP7Decoder::new())
 }
 
index 27d6fb4ff56a6abb305b7d17d9e08966024772ae..57acc332c332a0f9ca30879116e633384fe92490 100644 (file)
@@ -575,8 +575,8 @@ fn mc_block(dst: &mut [u8], doff: usize, dstride: usize, xpos: usize, ypos: usiz
         return;
     }
     let (w, h) = reffrm.get_dimensions(plane);
-    let wa = if plane == 0 { ((w + 15) & !15) } else { ((w + 7) & !7) } as isize;
-    let ha = if plane == 0 { ((h + 15) & !15) } else { ((h + 7) & !7) } as isize;
+    let wa = if plane == 0 { (w + 15) & !15 } else { (w + 7) & !7 } as isize;
+    let ha = if plane == 0 { (h + 15) & !15 } else { (h + 7) & !7 } as isize;
     let bsize = (size as isize) + (EDGE_PRE as isize) + (EDGE_POST as isize);
     let ref_x = (xpos as isize) + ((mvx >> 3) as isize) - (EDGE_PRE as isize);
     let ref_y = (ypos as isize) + ((mvy >> 3) as isize) - (EDGE_PRE as isize);
@@ -621,8 +621,8 @@ pub fn mc_block_special(dst: &mut [u8], doff: usize, dstride: usize, xpos: usize
         };
 
     let (w, h) = reffrm.get_dimensions(plane);
-    let wa = if plane == 0 { ((w + 15) & !15) } else { ((w + 7) & !7) } as isize;
-    let ha = if plane == 0 { ((h + 15) & !15) } else { ((h + 7) & !7) } as isize;
+    let wa = if plane == 0 { (w + 15) & !15 } else { (w + 7) & !7 } as isize;
+    let ha = if plane == 0 { (h + 15) & !15 } else { (h + 7) & !7 } as isize;
     let mut start_x = (xpos as isize) + ((mvx >> 3) as isize) - (EDGE_PRE as isize);
     let mut end_x   = (xpos as isize) + ((mvx >> 3) as isize) + ((size + EDGE_POST) as isize);
     if xstep < 0 {
index d9eeaaa04cf1297aa4545858171fe250cdc1593f..efc83ac3b3a62028bac0ae1912f22b128abd4c7d 100644 (file)
@@ -14,7 +14,7 @@ mod vmd;
 #[cfg(feature="demuxer_vx")]
 mod vx;
 
-const GAME_DEMUXERS: &[&DemuxerCreator] = &[
+const GAME_DEMUXERS: &[&dyn DemuxerCreator] = &[
 #[cfg(feature="demuxer_bmv")]
     &bmv::BMVDemuxerCreator {},
 #[cfg(feature="demuxer_bmv3")]
index 2169b6956280a30c8d26b18e19910eec90c12cf9..c6609ccaf15c62a97cf76778566ec5b58629e711 100644 (file)
@@ -552,7 +552,7 @@ impl IVIDecoder {
         }
         Ok(())
     }
-    fn decode_band(&mut self, pic_hdr: &PictureHeader, dec: &mut IndeoXParser, br: &mut BitReader, plane_no: usize, band_no: usize) -> DecoderResult<()> {
+    fn decode_band(&mut self, pic_hdr: &PictureHeader, dec: &mut dyn IndeoXParser, br: &mut BitReader, plane_no: usize, band_no: usize) -> DecoderResult<()> {
         let bidx = match plane_no {
             0 => { band_no },
             _ => { pic_hdr.luma_bands + plane_no - 1 },
@@ -827,7 +827,7 @@ br.skip(skip_part as u32)?;
         unreachable!();
     }
 
-    fn decode_single_frame<'a>(&mut self, dec: &mut IndeoXParser, br: &mut BitReader<'a>) -> DecoderResult<NABufferType> {
+    fn decode_single_frame<'a>(&mut self, dec: &mut dyn IndeoXParser, br: &mut BitReader<'a>) -> DecoderResult<NABufferType> {
         let pic_hdr = dec.decode_picture_header(br)?;
         self.ftype = pic_hdr.ftype;
         if pic_hdr.ftype.is_null() {
@@ -914,7 +914,7 @@ br.skip(skip_part as u32)?;
         Ok(buftype)
     }
 
-    pub fn decode_frame<'a>(&mut self, dec: &mut IndeoXParser, br: &mut BitReader<'a>) -> DecoderResult<NABufferType> {
+    pub fn decode_frame<'a>(&mut self, dec: &mut dyn IndeoXParser, br: &mut BitReader<'a>) -> DecoderResult<NABufferType> {
         let res = self.decode_single_frame(dec, br);
         if res.is_err() { return res; }
         if (self.ftype == IVIFrameType::Intra) && (br.left() > 16) {
index ce0f012bbb2fb988a470042df92ef2e0f9db33db..d1d38a203dff62268389f83eed3e781b91127050 100644 (file)
@@ -14,7 +14,7 @@ mod tta;
 #[cfg(feature="demuxer_wavpack")]
 mod wavpack;
 
-const LL_AUDIO_DEMUXERS: &[&DemuxerCreator] = &[
+const LL_AUDIO_DEMUXERS: &[&dyn DemuxerCreator] = &[
 #[cfg(feature="demuxer_ape")]
     &ape::APEDemuxerCreator {},
 #[cfg(feature="demuxer_flac")]
index 1bdf74dfeef79a447a77dedf30ed3b12f257f121..b1969649a1e8b0e8c89b3ac79f47b1756013b90e 100644 (file)
@@ -10,7 +10,7 @@ mod smacker;
 #[cfg(feature="demuxer_bink")]
 mod bink;
 
-const RAD_DEMUXERS: &[&DemuxerCreator] = &[
+const RAD_DEMUXERS: &[&dyn DemuxerCreator] = &[
 #[cfg(feature="demuxer_smk")]
     &smacker::SMKDemuxerCreator {},
 #[cfg(feature="demuxer_bink")]
index 6d1173cc2b6350abad16c8397fb849f03244bd44..5580a871b4ae4b716394455c1581d2a34739484f 100644 (file)
@@ -90,7 +90,7 @@ struct SmackerVideoDemuxer<'a> {
 
 fn get_pts_inc(val: i32) -> u64 {
     if val > 0 { (val as u64) * 100 }
-    else if val < 0 { (-val as u64) }
+    else if val < 0 { -val as u64 }
     else { 1 }
 }
 
index 5cae66cfba421425975a4c69041b0eccf33d10f3..63d4d12548ea2733bee9d0396a0da10c80ac4bb9 100644 (file)
@@ -219,7 +219,7 @@ fn eval_reflection(coeffs: &[i16; LPC_ORDER]) -> Option<u32> {
             dst = &mut tmp2;
         }
         let a = (1 << 12) - ((src[i + 1] * src[i + 1]) >> 12);
-        let scale = if a != 0 { (1 << 24) / a } else { (1 << 24) };
+        let scale = if a != 0 { (1 << 24) / a } else { 1 << 24 };
         for j in 0..=i {
             let result = (src[j] - ((tmp3[i + 1] * src[i - j]) >> 12)).checked_mul(scale);
             if let Some(val) = result {
index f9a1817ec677eafcc7f4979d9f8afcca5ac1cb90..e4d8420bb3b51c6922e764c329b440c8c4a79a78 100644 (file)
@@ -532,7 +532,7 @@ fn parse_slice_offsets(src: &[u8], offsets: &mut Vec<usize>) -> DecoderResult<()
     Ok(())
 }
 
-fn decode_slice_header(br: &mut BitReader, bd: &mut RV34BitstreamDecoder, slice_no: usize, slice_offs: &[usize], old_width: usize, old_height: usize) -> DecoderResult<RV34SliceHeader> {
+fn decode_slice_header(br: &mut BitReader, bd: &mut dyn RV34BitstreamDecoder, slice_no: usize, slice_offs: &[usize], old_width: usize, old_height: usize) -> DecoderResult<RV34SliceHeader> {
     validate!(slice_no < slice_offs.len());
     br.seek((slice_offs[slice_no] * 8) as u32)?;
     let mut shdr = bd.decode_slice_header(br, old_width, old_height)?;
@@ -777,7 +777,7 @@ impl RV34Decoder {
             base_ts:    0,
         }
     }
-    fn decode_mb_header_intra(&mut self, bd: &mut RV34BitstreamDecoder, br: &mut BitReader, is_i16: bool, im: &mut IntraModeState, q: u8, has_top: bool, has_dq: bool) -> DecoderResult<MBInfo> {
+    fn decode_mb_header_intra(&mut self, bd: &mut dyn RV34BitstreamDecoder, br: &mut BitReader, is_i16: bool, im: &mut IntraModeState, q: u8, has_top: bool, has_dq: bool) -> DecoderResult<MBInfo> {
         if is_i16 {
             let imode = br.read(2)? as i8;
             im.fill_block(imode);
@@ -793,7 +793,7 @@ impl RV34Decoder {
             Ok(MBInfo { mbtype: MBType::MBIntra, skip_run: 0, dquant: dq })
         }
     }
-    fn decode_mb_header_inter(&mut self, bd: &mut RV34BitstreamDecoder, br: &mut BitReader, ftype: FrameType, mbtype: MBType, im: &mut IntraModeState, q: u8, has_top: bool) -> DecoderResult<MBInfo> {
+    fn decode_mb_header_inter(&mut self, bd: &mut dyn RV34BitstreamDecoder, br: &mut BitReader, ftype: FrameType, mbtype: MBType, im: &mut IntraModeState, q: u8, has_top: bool) -> DecoderResult<MBInfo> {
         let hdr = bd.decode_inter_mb_hdr(br, ftype, mbtype)?;
         validate!(hdr.mbtype != MBType::Invalid);
         if hdr.dquant {
@@ -1096,7 +1096,7 @@ impl RV34Decoder {
     }
 
     #[allow(clippy::cyclomatic_complexity)]
-    pub fn parse_frame(&mut self, supp: &mut NADecoderSupport, src: &[u8], bd: &mut RV34BitstreamDecoder) -> DecoderResult<(NABufferType, FrameType, u64)> {
+    pub fn parse_frame(&mut self, supp: &mut NADecoderSupport, src: &[u8], bd: &mut dyn RV34BitstreamDecoder) -> DecoderResult<(NABufferType, FrameType, u64)> {
         let mut slice_offs: Vec<usize> = Vec::new();
         parse_slice_offsets(src, &mut slice_offs)?;
         let ini_off = slice_offs.len() * 8 + 1;
index 0ba1316c1af8c852548928674003b5d66f952b35..1b044a642f0a1643c051cf10efb5ce45d8d00cfd 100644 (file)
@@ -9,7 +9,7 @@ macro_rules! validate {
 #[allow(clippy::needless_range_loop)]
 mod realmedia;
 
-const RM_DEMUXERS: &[&DemuxerCreator] = &[
+const RM_DEMUXERS: &[&dyn DemuxerCreator] = &[
 #[cfg(feature="demuxer_real")]
     &realmedia::RealMediaDemuxerCreator {},
 #[cfg(feature="demuxer_real")]
index 210d0008faa25b5540ce0eb1bde16241dd4d960c..e916dc649eda4a0dc6cf8ae5cbd212962452a9ac 100644 (file)
@@ -360,7 +360,7 @@ pub fn detect_format(name: &str, src: &mut ByteReader) -> Option<(&'static str,
 }
 
 /// Tries to detect container format for provided file name.
-pub fn detect_format_by_name(name: &str) -> Option<(&'static str)> {
+pub fn detect_format_by_name(name: &str) -> Option<&'static str> {
     if name.is_empty() {
         return None;
     }
index c76f1062bf8e7d67b91e8ed99b8ca2d9d0437369..2f4a94ddd6bbe6a7fbf0ea3bd3925e0798bfca76 100644 (file)
@@ -9,7 +9,7 @@ macro_rules! validate {
 #[cfg(feature="demuxer_vivo")]
 mod vivo;
 
-const DEMUXERS: &[&DemuxerCreator] = &[
+const DEMUXERS: &[&dyn DemuxerCreator] = &[
 #[cfg(feature="demuxer_vivo")]
     &vivo::VivoDemuxerCreator {},
 ];