diff options
| -rw-r--r-- | Cargo.lock | 5 | ||||
| -rw-r--r-- | src/flac.rs | 112 |
2 files changed, 47 insertions, 70 deletions
@@ -920,12 +920,13 @@ dependencies = [ [[package]] name = "libsql-ffi" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "739717a55160a200ef8a9122a17d559148ddd3f0c526b52b3908f9a80aca5284" +checksum = "e0df681b059a8672691e60232e78967ba821edd37e959f4e9fa8a3de36e9ca29" dependencies = [ "bindgen", "cc", + "cmake", "glob", ] diff --git a/src/flac.rs b/src/flac.rs index a4c204e..04504f8 100644 --- a/src/flac.rs +++ b/src/flac.rs @@ -66,29 +66,21 @@ fn encode_cycle_16( continue; } - match decoder.decode(&packet) { - Ok(audio_buf) => match audio_buf { - GenericAudioBufferRef::S32(buf) => { - let _ = buf - .iter_interleaved() - .map(|sample| { - let real_sample = sample >> 16; - hasher.update(i16::try_from(real_sample).unwrap().to_le_bytes()); - buffer.push(real_sample); - }) - .collect::<Vec<_>>(); - - encoder - .process_interleaved( - buffer.as_slice(), - u32::try_from(buf.samples_planar()).unwrap(), - ) - .unwrap(); - buffer.clear(); - } - _ => return Err(anyhow!("unsupported codec")), - }, - Err(err) => return Err(err.into()), + if let GenericAudioBufferRef::S32(buf) = decoder.decode(&packet)? { + let _ = buf + .iter_interleaved() + .map(|sample| { + let real_sample = sample >> 16; + hasher.update(i16::try_from(real_sample).unwrap().to_le_bytes()); + buffer.push(real_sample); + }) + .collect::<Vec<_>>(); + encoder + .process_interleaved(&buffer, u32::try_from(buf.samples_planar()).unwrap()) + .unwrap(); + buffer.clear(); + } else { + return Err(anyhow!("unsupported codec")); } } @@ -119,29 +111,21 @@ fn encode_cycle_24( continue; } - match decoder.decode(&packet) { - Ok(audio_buf) => match audio_buf { - GenericAudioBufferRef::S32(buf) => { - let _ = buf - .iter_interleaved() - .map(|sample| { - let real_sample = sample >> 8; - hasher.update(i24::try_from(real_sample).unwrap().to_le_bytes()); - buffer.push(real_sample); - }) - .collect::<Vec<_>>(); - - encoder - .process_interleaved( - buffer.as_slice(), - u32::try_from(buf.samples_planar()).unwrap(), - ) - .unwrap(); - buffer.clear(); - } - _ => return Err(anyhow!("unsupported codec")), - }, - Err(err) => return Err(err.into()), + if let GenericAudioBufferRef::S32(buf) = decoder.decode(&packet)? { + let _ = buf + .iter_interleaved() + .map(|sample| { + let real_sample = sample >> 8; + hasher.update(i24::try_from(real_sample).unwrap().to_le_bytes()); + buffer.push(real_sample); + }) + .collect::<Vec<_>>(); + encoder + .process_interleaved(&buffer, u32::try_from(buf.samples_planar()).unwrap()) + .unwrap(); + buffer.clear(); + } else { + return Err(anyhow!("unsupported codec")); } } @@ -172,28 +156,20 @@ fn encode_cycle_32( continue; } - match decoder.decode(&packet) { - Ok(audio_buf) => match audio_buf { - GenericAudioBufferRef::S32(buf) => { - let _ = buf - .iter_interleaved() - .map(|sample| { - hasher.update(sample.to_le_bytes()); - buffer.push(sample); - }) - .collect::<Vec<_>>(); - - encoder - .process_interleaved( - buffer.as_slice(), - u32::try_from(buf.samples_planar()).unwrap(), - ) - .unwrap(); - buffer.clear(); - } - _ => return Err(anyhow!("unsupported codec")), - }, - Err(err) => return Err(err.into()), + if let GenericAudioBufferRef::S32(buf) = decoder.decode(&packet)? { + let _ = buf + .iter_interleaved() + .map(|sample| { + hasher.update(sample.to_le_bytes()); + buffer.push(sample); + }) + .collect::<Vec<_>>(); + encoder + .process_interleaved(&buffer, u32::try_from(buf.samples_planar()).unwrap()) + .unwrap(); + buffer.clear(); + } else { + return Err(anyhow!("unsupported codec")); } } |
