X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-mpeg%2Fsrc%2Fcodecs%2Fmpegaudio%2Fmod.rs;h=677e81b55049594d428d3066bc12f9587032c68d;hb=HEAD;hp=99b57720127296ca210430b86146581b3952e538;hpb=7f7356a02d44ed553643502806d4342394419637;p=nihav.git diff --git a/nihav-mpeg/src/codecs/mpegaudio/mod.rs b/nihav-mpeg/src/codecs/mpegaudio/mod.rs index 99b5772..714047a 100644 --- a/nihav-mpeg/src/codecs/mpegaudio/mod.rs +++ b/nihav-mpeg/src/codecs/mpegaudio/mod.rs @@ -81,7 +81,7 @@ impl MPADecoder { ctx.mpeg1 = self.sf_idx < 3; ctx.sf_idx = self.sf_idx; ctx.read_mp3_side_data(br, channels)?; - let hdr_size = (br.tell() / 8) as usize; + let hdr_size = br.tell() / 8; let add_len = src.len() - hdr_size; if self.bytebuf.len() + add_len > BYTEBUF_SIZE { self.bytebuf.drain(..self.bytebuf.len() + add_len - BYTEBUF_SIZE); @@ -133,8 +133,12 @@ fn apply_ms(ch0: &mut [f32], ch1: &mut [f32]) { impl NADecoder for MPADecoder { fn init(&mut self, _supp: &mut NADecoderSupport, info: NACodecInfoRef) -> DecoderResult<()> { - if let NACodecTypeInfo::Audio(_ainfo) = info.get_properties() { - self.info = info.clone(); + if let NACodecTypeInfo::Audio(ainfo) = info.get_properties() { + let ainfo = NAAudioInfo::new(ainfo.get_sample_rate(), + ainfo.get_channels(), + SND_F32P_FORMAT, + if ainfo.get_sample_rate() >= 32000 { SAMPLES } else { SAMPLES / 2 }); + self.info = info.replace_info(NACodecTypeInfo::Audio(ainfo)); Ok(()) } else { Err(DecoderError::InvalidData) @@ -373,6 +377,7 @@ impl MPAPacketiser { } impl NAPacketiser for MPAPacketiser { + fn attach_stream(&mut self, _stream: NAStreamRef) {} fn add_data(&mut self, src: &[u8]) -> bool { self.buf.extend_from_slice(src); self.buf.len() < 4096