Default Rust 1.69 does not care but newer versions start to give warnings.
         None
     }
     /// Provides an iterator over currently registered decoders.
-    pub fn iter(&self) -> std::slice::Iter<DecoderInfo> {
+    pub fn iter(&self) -> std::slice::Iter<'_, DecoderInfo> {
         self.decs.iter()
     }
 }
         None
     }
     /// Provides an iterator over currently registered decoders.
-    pub fn iter(&self) -> std::slice::Iter<MTDecoderInfo> {
+    pub fn iter(&self) -> std::slice::Iter<'_, MTDecoderInfo> {
         self.decs.iter()
     }
 }
         None
     }
     /// Provides an iterator over currently registered encoders.
-    pub fn iter(&self) -> std::slice::Iter<EncoderInfo> {
+    pub fn iter(&self) -> std::slice::Iter<'_, EncoderInfo> {
         self.encs.iter()
     }
 }
         None
     }
     /// Provides an iterator over currently registered packetiser.
-    pub fn iter(&self) -> std::slice::Iter<PacketiserInfo> {
+    pub fn iter(&self) -> std::slice::Iter<'_, PacketiserInfo> {
         self.packs.iter()
     }
 }
 
         }
     }
     /// Returns stream iterator.
-    pub fn iter(&self) -> StreamIter { StreamIter::new(&self.streams) }
+    pub fn iter(&self) -> StreamIter<'_> { StreamIter::new(&self.streams) }
 
     /// Adds a new stream.
     pub fn add_stream(&mut self, stream: NAStream) -> Option<usize> {
         &self.streams
     }
     /// Returns an iterator over streams.
-    pub fn get_streams(&self) -> StreamIter {
+    pub fn get_streams(&self) -> StreamIter<'_> {
         self.streams.iter()
     }
     /// Returns 'ignored' marker for requested stream.
         self.dmxs.iter().find(|&&dmx| dmx.get_name() == name).copied()
     }
     /// Provides an iterator over currently registered demuxers.
-    pub fn iter(&self) -> std::slice::Iter<&dyn DemuxerCreator> {
+    pub fn iter(&self) -> std::slice::Iter<'_, &dyn DemuxerCreator> {
         self.dmxs.iter()
     }
 }
         &self.streams
     }
     /// Returns an iterator over streams.
-    pub fn get_streams(&self) -> StreamIter {
+    pub fn get_streams(&self) -> StreamIter<'_> {
         self.streams.iter()
     }
     /// Returns 'ignored' marker for requested stream.
         self.dmxs.iter().find(|&&dmx| dmx.get_name() == name).copied()
     }
     /// Provides an iterator over currently registered demuxers.
-    pub fn iter(&self) -> std::slice::Iter<&dyn RawDemuxerCreator> {
+    pub fn iter(&self) -> std::slice::Iter<'_, &dyn RawDemuxerCreator> {
         self.dmxs.iter()
     }
 }
 
         self.streams.get_num_streams()
     }
     /// Returns an iterator over streams.
-    pub fn get_streams(&self) -> StreamIter {
+    pub fn get_streams(&self) -> StreamIter<'_> {
         self.streams.iter()
     }
 
         self.muxes.iter().find(|&&mux| mux.get_name() == name).copied()
     }
     /// Provides an iterator over currently registered muxers.
-    pub fn iter(&self) -> std::slice::Iter<&dyn MuxerCreator> {
+    pub fn iter(&self) -> std::slice::Iter<'_, &dyn MuxerCreator> {
         self.muxes.iter()
     }
 }
 
         self.chroma[1].ipred8(8, mode, ipred_v);
     }
 
-    pub fn luma_blocks(&self) -> LumaIterator {
+    pub fn luma_blocks(&self) -> LumaIterator<'_> {
         LumaIterator{ luma: &self.luma, blkno: 0 }
     }
-    pub fn chroma_blocks(&self, plane: usize) -> ChromaIterator {
+    pub fn chroma_blocks(&self, plane: usize) -> ChromaIterator<'_> {
         ChromaIterator{ chroma: &self.chroma[plane], blkno: 0 }
     }
 }
 
             None
         }
     }
-    pub fn select_ref_pic(&self, list_id: u8, ref_id: usize) -> Option<&SimpleFrame> {
+    pub fn select_ref_pic(&self, list_id: u8, ref_id: usize) -> Option<&SimpleFrame<'_>> {
         let ref_list = if list_id == 0 { &self.ref_list0 } else { &self.ref_list1 };
         if ref_list.len() > ref_id {
             ref_list[ref_id].as_ref().map(|pic| &pic.buf)