}
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)?;
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 {
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))?;
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" }
let mut br = ByteReader::new(&mut fr);
let mut dmx = SmackerVideoDemuxer::new(&mut br);
let mut sm = StreamManager::new();
- dmx.open(&mut sm).unwrap();
+ let mut si = SeekIndex::new();
+ dmx.open(&mut sm, &mut si).unwrap();
loop {
let pktres = dmx.get_frame(&mut sm);
if let Err(e) = pktres {