aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-03-12 15:07:24 +0100
committermetamuffin <metamuffin@disroot.org>2026-03-12 15:07:24 +0100
commit7dee77aaf7b663f65c7f0da514839b7ccc965f52 (patch)
tree62ca6642ef377df0cd4058e0b64c67013abf66f8
parent854504fac9444463495aaaf589c0c27823779ce9 (diff)
downloadjellything-7dee77aaf7b663f65c7f0da514839b7ccc965f52.tar
jellything-7dee77aaf7b663f65c7f0da514839b7ccc965f52.tar.bz2
jellything-7dee77aaf7b663f65c7f0da514839b7ccc965f52.tar.zst
dont write clusters to intermediate buffer
-rw-r--r--remuxer/src/muxers/matroska.rs7
-rw-r--r--stream/src/stream_info.rs3
2 files changed, 5 insertions, 5 deletions
diff --git a/remuxer/src/muxers/matroska.rs b/remuxer/src/muxers/matroska.rs
index 272c91d..8e82201 100644
--- a/remuxer/src/muxers/matroska.rs
+++ b/remuxer/src/muxers/matroska.rs
@@ -6,7 +6,7 @@
use crate::muxers::FragmentMuxer;
use anyhow::Result;
-use winter_ebml::{Ebml, EbmlHeader, EbmlToVec, write_vint_slice};
+use winter_ebml::{Ebml, EbmlHeader, write_vint_slice};
use winter_matroska::{MatroskaFile, Segment};
fn write_init_shared(out: &mut Vec<u8>, mut segment: Segment, webm: bool) -> Result<()> {
@@ -55,10 +55,9 @@ fn write_init_shared(out: &mut Vec<u8>, mut segment: Segment, webm: bool) -> Res
}
fn write_frag_shared(out: &mut Vec<u8>, segment: Segment, _webm: bool) -> Result<()> {
for cluster in segment.clusters {
- let cluster = cluster.to_vec();
write_vint_slice(out, Segment::TAG_CLUSTERS);
- write_vint_slice(out, cluster.len() as u64);
- out.extend(cluster);
+ write_vint_slice(out, cluster.size() as u64);
+ cluster.write(out)
}
Ok(())
}
diff --git a/stream/src/stream_info.rs b/stream/src/stream_info.rs
index 0d4350f..71ccb1f 100644
--- a/stream/src/stream_info.rs
+++ b/stream/src/stream_info.rs
@@ -184,7 +184,8 @@ fn containers_by_codec(codec: &str) -> Vec<StreamContainer> {
use StreamContainer::*;
match codec {
"V_VP8" | "V_VP9" | "V_AV1" | "A_OPUS" | "A_VORBIS" => vec![Matroska, WebM],
- "V_MPEG4/ISO/AVC" | "V_MPEGH/ISO/HEVC" | "A_AAC" => vec![Matroska, MP4],
+ "V_MPEG4/ISO/AVC" => vec![Matroska, MP4],
+ // "V_MPEG4/ISO/AVC" | "V_MPEGH/ISO/HEVC" | "A_AAC" => vec![Matroska, MP4], // TODO not supported yet
"S_TEXT/UTF8" | "S_TEXT/WEBVTT" => vec![Matroska, WebVTT, WebM, JVTT],
_ => vec![Matroska],
}