diff options
| author | jakka <jakkadoujin@gmail.com> | 2025-06-11 22:28:43 +0300 |
|---|---|---|
| committer | jakka <jakkadoujin@gmail.com> | 2025-06-11 22:28:43 +0300 |
| commit | 4d9ff07589cf9bb6ca986a643c523196945f9937 (patch) | |
| tree | a0fb86ca6ffea2d4f939b02036e3cea89c7035d0 /src/flac.rs | |
| parent | 0f111dc8f998b7882776009b42f2b08cbee4b7f5 (diff) | |
cleaned up flac mod code
Diffstat (limited to 'src/flac.rs')
| -rw-r--r-- | src/flac.rs | 112 |
1 files changed, 44 insertions, 68 deletions
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")); } } |
