aboutsummaryrefslogtreecommitdiff
path: root/remuxer/src
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-10-02 12:53:23 +0200
committermetamuffin <metamuffin@disroot.org>2023-10-02 12:53:23 +0200
commit3da60b245427a7409e17638bd78783a7ff7154f7 (patch)
tree77e2c3be999ee4e7e41b92c8b08b16a1621224b3 /remuxer/src
parent6887dfcf9774cb692a8375e0320ffcf80edb9536 (diff)
downloadjellything-3da60b245427a7409e17638bd78783a7ff7154f7.tar
jellything-3da60b245427a7409e17638bd78783a7ff7154f7.tar.bz2
jellything-3da60b245427a7409e17638bd78783a7ff7154f7.tar.zst
buffered io in remux
Diffstat (limited to 'remuxer/src')
-rw-r--r--remuxer/src/remux.rs6
-rw-r--r--remuxer/src/seek_index.rs4
-rw-r--r--remuxer/src/snippet.rs9
3 files changed, 12 insertions, 7 deletions
diff --git a/remuxer/src/remux.rs b/remuxer/src/remux.rs
index a95aa5c..df4f67d 100644
--- a/remuxer/src/remux.rs
+++ b/remuxer/src/remux.rs
@@ -21,7 +21,7 @@ use jellymatroska::{
use log::{debug, info, trace, warn};
use std::{
fs::File,
- io::{Seek, SeekFrom, Write},
+ io::{BufReader, BufWriter, Seek, SeekFrom, Write},
ops::Range,
path::PathBuf,
sync::Arc,
@@ -38,7 +38,7 @@ pub fn remux_stream_into(
webm: bool,
) -> anyhow::Result<()> {
info!("remuxing {:?} to have tracks {selection:?}", item.title);
- let writer = TrimWriter::new(writer, range.clone());
+ let writer = TrimWriter::new(BufWriter::new(writer), range.clone());
let mut output = EbmlWriter::new(writer, 0);
struct ReaderC {
@@ -77,7 +77,7 @@ pub fn remux_stream_into(
.ok_or(anyhow!("track missing"))?
.to_owned();
debug!("\t seek index: {} blocks loaded", index.blocks.len());
- let reader = EbmlReader::new(file);
+ let reader = EbmlReader::new(BufReader::new(file));
Ok(ReaderC {
index,
reader,
diff --git a/remuxer/src/seek_index.rs b/remuxer/src/seek_index.rs
index 68ccb4a..a68051b 100644
--- a/remuxer/src/seek_index.rs
+++ b/remuxer/src/seek_index.rs
@@ -13,13 +13,13 @@ use jellymatroska::{
MatroskaTag,
};
use log::{debug, info, trace, warn};
-use std::{collections::BTreeMap, fs::File, path::Path, sync::Arc};
+use std::{collections::BTreeMap, fs::File, io::BufReader, path::Path, sync::Arc};
pub fn get_seek_index(path: &Path) -> anyhow::Result<Arc<BTreeMap<u64, Arc<SeekIndex>>>> {
cache_memory(&["seekindex", path.to_str().unwrap()], move || {
info!("generating seek index for {path:?}");
let input = File::open(&path).context("opening source file")?;
- let mut input = EbmlReader::new(input);
+ let mut input = EbmlReader::new(BufReader::new(input));
let index = import_seek_index(&mut input)?;
info!("done");
Ok(index.into_iter().map(|(k, v)| (k, Arc::new(v))).collect())
diff --git a/remuxer/src/snippet.rs b/remuxer/src/snippet.rs
index f9d386a..26cb608 100644
--- a/remuxer/src/snippet.rs
+++ b/remuxer/src/snippet.rs
@@ -12,7 +12,12 @@ use anyhow::{anyhow, Context, Result};
use jellycommon::{LocalTrack, NodePublic};
use jellymatroska::{read::EbmlReader, write::EbmlWriter, Master, MatroskaTag};
use log::{debug, info};
-use std::{fs::File, io::Write, ops::Range, path::Path};
+use std::{
+ fs::File,
+ io::{BufWriter, Write},
+ ops::Range,
+ path::Path,
+};
const SNIPPET_LENGTH: f64 = 2.;
@@ -58,7 +63,7 @@ pub fn write_snippet_into(
n: usize,
) -> anyhow::Result<()> {
info!("writing snippet {n} of {:?} (track #{track})", item.title);
- let mut output = EbmlWriter::new(writer, 0);
+ let mut output = EbmlWriter::new(BufWriter::new(writer), 0);
let media_info = item.media.as_ref().unwrap();
let info = media_info