X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-rad%2Fsrc%2Fdemuxers%2Fsmacker.rs;h=340af85989617c928cc968dce3b09498d2da7315;hp=6d1173cc2b6350abad16c8397fb849f03244bd44;hb=a480a0de101483d802a11e72d758dae00fa4860a;hpb=24d998947d55228ec37a08cd391983c6239e3c0c diff --git a/nihav-rad/src/demuxers/smacker.rs b/nihav-rad/src/demuxers/smacker.rs index 6d1173c..340af85 100644 --- a/nihav-rad/src/demuxers/smacker.rs +++ b/nihav-rad/src/demuxers/smacker.rs @@ -56,7 +56,7 @@ impl AudioTrack { let soniton = if (self.flags & SMK_AUD_FLAG_16BIT) != 0 { SND_S16_FORMAT } else { SND_U8_FORMAT }; let ahdr = NAAudioInfo::new(self.srate, channels, soniton, 1); let ainfo = NACodecInfo::new(codecname, NACodecTypeInfo::Audio(ahdr), None); - let res = strmgr.add_stream(NAStream::new(StreamType::Audio, (str_id + 1) as u32, ainfo, 1, self.srate)); + let res = strmgr.add_stream(NAStream::new(StreamType::Audio, (str_id + 1) as u32, ainfo, 1, self.srate, 0)); validate!(res.is_some()); self.id = res.unwrap(); @@ -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 } } @@ -149,7 +149,7 @@ impl<'a> DemuxCore<'a> for SmackerVideoDemuxer<'a> { let vhdr = NAVideoInfo::new(width, height, false, PAL8_FORMAT); let vinfo = NACodecInfo::new("smacker-video", NACodecTypeInfo::Video(vhdr), Some(treedata)); - let res = strmgr.add_stream(NAStream::new(StreamType::Video, 0, vinfo, 1, 100000)); + let res = strmgr.add_stream(NAStream::new(StreamType::Video, 0, vinfo, 1, 100000, 0)); validate!(res.is_some()); self.video_id = res.unwrap(); @@ -267,6 +267,7 @@ impl<'a> DemuxCore<'a> for SmackerVideoDemuxer<'a> { } Err(DemuxerError::NotImplemented) } + fn get_duration(&self) -> u64 { self.frames as u64 * self.pts_inc / 100 } } impl<'a> NAOptionHandler for SmackerVideoDemuxer<'a> {