DiscStream rework & threading improvements

This commit is contained in:
2025-03-31 22:53:08 -06:00
parent 56db78207a
commit 9d8cd980b8
26 changed files with 602 additions and 427 deletions

View File

@@ -570,7 +570,7 @@ fn in_memory_test(
Ok(())
}
})?;
let disc_stream = writer.into_stream(PartitionFileReader { partition, meta })?;
let disc_stream = writer.into_cloneable_stream(PartitionFileReader { partition, meta })?;
let disc_reader = DiscReader::new_stream(disc_stream, &DiscOptions::default())?;
let disc_writer = DiscWriter::new(disc_reader, &FormatOptions::default())?;
let process_options = ProcessOptions { digest_crc32: true, ..Default::default() };

View File

@@ -1,7 +1,7 @@
use std::{
fmt,
fs::File,
io::{Seek, SeekFrom, Write},
io::{Seek, Write},
path::Path,
};
@@ -130,7 +130,7 @@ pub fn convert_and_verify(
// Finalize disc writer
if !finalization.header.is_empty() {
if let Some(file) = &mut file {
file.seek(SeekFrom::Start(0)).context("Seeking to start of output file")?;
file.rewind().context("Seeking to start of output file")?;
file.write_all(finalization.header.as_ref()).context("Writing header")?;
} else {
return Err(nod::Error::Other("No output file, but requires finalization".to_string()));