X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-commonfmt%2Fsrc%2Fmuxers%2Fwav.rs;h=1317b95e3e65d57630fa3bfa62c8a619e49d0dc9;hb=735b56ab4e0fd4466b6d031009f9c63f7493b512;hp=9185f381c5e44a9a2ac0c2e756498668c8e7067a;hpb=68e5a4ca64f5f0a08e9a46048f03e47b68d4c21f;p=nihav.git diff --git a/nihav-commonfmt/src/muxers/wav.rs b/nihav-commonfmt/src/muxers/wav.rs index 9185f38..1317b95 100644 --- a/nihav-commonfmt/src/muxers/wav.rs +++ b/nihav-commonfmt/src/muxers/wav.rs @@ -51,7 +51,7 @@ impl<'a> MuxCore<'a> for WAVMuxer<'a> { twocc.unwrap_or(0) }; let avg_bytes_per_sec = if stream.get_info().get_name() == "pcm" { - u32::from(ainfo.channels) * ainfo.sample_rate * u32::from(ainfo.format.bits) >> 3 + (u32::from(ainfo.channels) * ainfo.sample_rate * u32::from(ainfo.format.bits)) >> 3 } else { 0 }; @@ -59,11 +59,11 @@ impl<'a> MuxCore<'a> for WAVMuxer<'a> { self.bw.write_buf(b"RIFF\0\0\0\0WAVEfmt ")?; self.bw.write_u32le(if edata_len == 0 { 16 } else { 18 + edata_len } as u32)?; self.bw.write_u16le(twocc)?; - self.bw.write_u16le(ainfo.channels as u16)?; + self.bw.write_u16le(u16::from(ainfo.channels))?; self.bw.write_u32le(ainfo.sample_rate)?; self.bw.write_u32le(avg_bytes_per_sec)?; self.bw.write_u16le(ainfo.block_len as u16)?; - self.bw.write_u16le(ainfo.format.bits as u16)?; + self.bw.write_u16le(u16::from(ainfo.format.bits))?; if let Some(ref buf) = stream.get_info().get_extradata() { self.bw.write_u16le(edata_len as u16)?; self.bw.write_buf(buf.as_slice())?; @@ -90,8 +90,8 @@ impl<'a> MuxCore<'a> for WAVMuxer<'a> { Ok(()) } fn end(&mut self) -> MuxerResult<()> { - patch_size(&mut self.bw, self.data_pos)?; - patch_size(&mut self.bw, 8)?; + patch_size(self.bw, self.data_pos)?; + patch_size(self.bw, 8)?; // todo patch avg_bytes_per_second if calculated // todo write fact value if calculated Ok(()) @@ -126,6 +126,7 @@ mod test { fn test_wav_muxer() { let mut dmx_reg = RegisteredDemuxers::new(); generic_register_all_demuxers(&mut dmx_reg); + // sample: https://samples.mplayerhq.hu/V-codecs/RT21/320x240/laser05.avi let dec_config = DecoderTestParams { demuxer: "avi", in_name: "assets/Indeo/laser05.avi",