summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock5
-rw-r--r--src/flac.rs112
2 files changed, 47 insertions, 70 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 497cbad..ca119dd 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -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"));
}
}