From 4d9ff07589cf9bb6ca986a643c523196945f9937 Mon Sep 17 00:00:00 2001 From: jakka Date: Wed, 11 Jun 2025 22:28:43 +0300 Subject: cleaned up flac mod code --- src/flac.rs | 112 ++++++++++++++++++++++++------------------------------------ 1 file changed, 44 insertions(+), 68 deletions(-) (limited to 'src/flac.rs') 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::>(); - - 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::>(); + 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::>(); - - 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::>(); + 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::>(); - - 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::>(); + encoder + .process_interleaved(&buffer, u32::try_from(buf.samples_planar()).unwrap()) + .unwrap(); + buffer.clear(); + } else { + return Err(anyhow!("unsupported codec")); } } -- cgit v1.3.1