X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-core%2Fsrc%2Fframe.rs;h=9423b0ee8e475e5a87086a808fdb37cc9d4a1517;hb=4c05fc3e4513ba3789dcc237493abcbe74d548e3;hp=741c17535532d5e4447ccf186bf21c5df3a5c818;hpb=0eb53738b53a489850cc7d3ad8ba21aa8f93a093;p=nihav.git diff --git a/nihav-core/src/frame.rs b/nihav-core/src/frame.rs index 741c175..9423b0e 100644 --- a/nihav-core/src/frame.rs +++ b/nihav-core/src/frame.rs @@ -661,6 +661,10 @@ pub fn alloc_audio_buffer(ainfo: NAAudioInfo, nsamples: usize, chmap: NAChannelM let data: Vec = vec![0; length]; let buf: NAAudioBuffer = NAAudioBuffer { data: NABufferRef::new(data), info: ainfo, offs, chmap, len: nsamples, stride, step }; Ok(NABufferType::AudioI16(buf)) + } else if ainfo.format.get_bits() == 32 && ainfo.format.is_signed() { + let data: Vec = vec![0; length]; + let buf: NAAudioBuffer = NAAudioBuffer { data: NABufferRef::new(data), info: ainfo, offs, chmap, len: nsamples, stride, step }; + Ok(NABufferType::AudioI32(buf)) } else { Err(AllocatorError::TooLargeDimensions) } @@ -1009,6 +1013,12 @@ pub enum NATimePoint { None, } +impl Default for NATimePoint { + fn default() -> Self { + NATimePoint::None + } +} + impl fmt::Display for NATimePoint { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match *self { @@ -1105,7 +1115,7 @@ impl FromStr for NATimePoint { let ret = parts.next().unwrap().parse::(); if ret.is_err() { return Err(FormatParseError {}); } let seconds = ret.unwrap(); - if seconds >= 60 { return Err(FormatParseError {}); } + if mins.is_some() && seconds >= 60 { return Err(FormatParseError {}); } let millis = if let Some(val) = parts.next() { let mut mval = 0; let mut base = 0;