X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-rad%2Fsrc%2Fdemuxers%2Fbink.rs;h=dbf401f837436510e4b13723b072a3a89763b1fd;hb=b7c882c1ce6f86c07c2340751200e3a060942826;hp=a5d8169240f9159f4bf8f0a244ca711eb50fe989;hpb=bf109afe32ce8eb2722ebd830667f9438ba21b54;p=nihav.git diff --git a/nihav-rad/src/demuxers/bink.rs b/nihav-rad/src/demuxers/bink.rs index a5d8169..dbf401f 100644 --- a/nihav-rad/src/demuxers/bink.rs +++ b/nihav-rad/src/demuxers/bink.rs @@ -20,7 +20,7 @@ impl AudioTrack { let mut edata: Vec = Vec::with_capacity(4); edata.extend_from_slice(&magic); let ainfo = NACodecInfo::new(codecname, NACodecTypeInfo::Audio(ahdr), Some(edata)); - let res = strmgr.add_stream(NAStream::new(StreamType::Audio, (str_id + 1) as u32, ainfo, 1, srate)); + let res = strmgr.add_stream(NAStream::new(StreamType::Audio, (str_id + 1) as u32, ainfo, 1, srate, 0)); validate!(res.is_some()); let id = res.unwrap(); Ok(Self{ id }) @@ -78,7 +78,7 @@ impl<'a> DemuxCore<'a> for BinkDemuxer<'a> { let vhdr = NAVideoInfo::new(width, height, false, YUV420_FORMAT); let codec = if magic[0] == b'K' && magic[1] == b'B' && magic[2] == b'2' { "bink2-video" } else { "bink-video" }; let vinfo = NACodecInfo::new(codec, NACodecTypeInfo::Video(vhdr), Some(edata)); - let res = strmgr.add_stream(NAStream::new(StreamType::Video, 0, vinfo, self.tb_num, self.tb_den)); + let res = strmgr.add_stream(NAStream::new(StreamType::Video, 0, vinfo, self.tb_num, self.tb_den, self.frames as u64)); validate!(res.is_some()); self.video_id = res.unwrap(); @@ -146,13 +146,13 @@ impl<'a> DemuxCore<'a> for BinkDemuxer<'a> { let stream = strres.unwrap(); let keyframe = (self.frame_pos[self.cur_frame] & 1) != 0; let ts = NATimeInfo::new(Some(self.cur_frame as u64), None, None, self.tb_num, self.tb_den); - let pkt = self.src.read_packet(stream.clone(), ts, keyframe, payload_size)?; + let pkt = self.src.read_packet(stream, ts, keyframe, payload_size)?; self.cur_frame += 1; Ok(pkt) } - fn seek(&mut self, time: u64, seek_idx: &SeekIndex) -> DemuxerResult<()> { + fn seek(&mut self, time: NATimePoint, seek_idx: &SeekIndex) -> DemuxerResult<()> { let ret = seek_idx.find_pos(time); if ret.is_none() { return Err(DemuxerError::SeekError); @@ -163,6 +163,7 @@ impl<'a> DemuxCore<'a> for BinkDemuxer<'a> { self.cur_frame = seek_info.pts as usize; Ok(()) } + fn get_duration(&self) -> u64 { 0 } } impl<'a> NAOptionHandler for BinkDemuxer<'a> {