X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-acorn%2Fsrc%2Fdemuxers%2Farmovie.rs;h=b2bf68467b27e993f17fe0c39ba62ed208992ea0;hb=b108a323998abb1a51176f6694ae71cfe2f750d4;hp=9b9d8ee4c2f2db636101ee174577cf81af09a457;hpb=722b29337c99a292220f6b0bd6adaf7214258aa9;p=nihav.git diff --git a/nihav-acorn/src/demuxers/armovie.rs b/nihav-acorn/src/demuxers/armovie.rs index 9b9d8ee..b2bf684 100644 --- a/nihav-acorn/src/demuxers/armovie.rs +++ b/nihav-acorn/src/demuxers/armovie.rs @@ -218,7 +218,7 @@ impl<'a> RawDemuxCore<'a> for ARMovieDemuxer<'a> { let width = parse_int(&width)?; let height = self.src.read_string()?; let height = parse_int(&height)?; - validate!((video_codec <= 0) ^ (width > 0 && height > 0)); + validate!((video_codec <= 0) || (width > 0 && height > 0)); let width = width as usize; let height = height as usize; let vformat = self.src.read_string()?; @@ -296,9 +296,10 @@ impl<'a> RawDemuxCore<'a> for ARMovieDemuxer<'a> { for ((&id, &sratestr), (&chan, &fmt)) in sound_ids.iter().zip(srates.iter()) .zip(channels.iter().zip(sndformats.iter())) { let codec_id = parse_uint(id)?; - let codec_name = if codec_id == 1 { "pcm" } else { "unknown" }; + let codec_name = if codec_id == 1 { "arm_rawaudio" } else { "unknown" }; let channels = parse_uint(chan)?; validate!(channels > 0 && channels < 16); + let edata = fmt.to_owned(); let bits = parse_uint(fmt)?; let mut srate = parse_uint(sratestr)?; if srate > 0 && srate < 1000 { // probably in microseconds instead of Hertz @@ -308,7 +309,7 @@ impl<'a> RawDemuxCore<'a> for ARMovieDemuxer<'a> { let fmt = if bits == 8 { SND_U8_FORMAT } else { SND_S16_FORMAT }; let aci = NACodecTypeInfo::Audio(NAAudioInfo::new(srate, channels as u8, fmt, 0)); - let ainfo = NACodecInfo::new(codec_name, aci, None); + let ainfo = NACodecInfo::new(codec_name, aci, Some(edata)); let ret = strmgr.add_stream(NAStream::new(StreamType::Audio, stream_id, ainfo, 1, srate, 0)); if let Some(id) = ret { self.audio_ids.push(id);