initial seeking support
[nihav.git] / nihav-rad / src / demuxers / smacker.rs
index b666cf1f7eac2ae440924f3414e76a3d584e751e..902be430fa7aef8915e4b10e39a3fd1a0e62182f 100644 (file)
@@ -95,7 +95,7 @@ fn get_pts_inc(val: i32) -> u64 {
 }
 
 impl<'a> DemuxCore<'a> for SmackerVideoDemuxer<'a> {
-    fn open(&mut self, strmgr: &mut StreamManager) -> DemuxerResult<()> {
+    fn open(&mut self, strmgr: &mut StreamManager, _seek_idx: &mut SeekIndex) -> DemuxerResult<()> {
         let src = &mut self.src;
         let mut magic: [u8; 4] = [0; 4];
                                               src.read_buf(&mut magic)?;
@@ -178,7 +178,7 @@ impl<'a> DemuxCore<'a> for SmackerVideoDemuxer<'a> {
             validate!(chunk_size > 0);
             validate!(payload_size >= chunk_size);
             payload_size -= chunk_size;
-            let oldpal = self.pal.clone();
+            let oldpal = self.pal;
             let mut idx = 0;
             let endpos = self.src.tell() + (chunk_size as u64) - 1;
             while idx < 256 {
@@ -245,8 +245,7 @@ impl<'a> DemuxCore<'a> for SmackerVideoDemuxer<'a> {
 
         Ok(pkt)
     }
-    #[allow(unused_variables)]
-    fn seek(&mut self, time: u64) -> DemuxerResult<()> {
+    fn seek(&mut self, time: u64, _seek_idx: &SeekIndex) -> DemuxerResult<()> {
         if time == 0 {
             let start = self.start;
             self.src.seek(SeekFrom::Start(start))?;
@@ -284,7 +283,7 @@ impl<'a> SmackerVideoDemuxer<'a> {
 pub struct SMKDemuxerCreator { }
 
 impl DemuxerCreator for SMKDemuxerCreator {
-    fn new_demuxer<'a>(&self, br: &'a mut ByteReader<'a>) -> Box<DemuxCore<'a> + 'a> {
+    fn new_demuxer<'a>(&self, br: &'a mut ByteReader<'a>) -> Box<dyn DemuxCore<'a> + 'a> {
         Box::new(SmackerVideoDemuxer::new(br))
     }
     fn get_name(&self) -> &'static str { "smacker" }