diff options
| author | metamuffin <metamuffin@disroot.org> | 2025-11-12 22:33:18 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2025-11-12 22:33:18 +0100 |
| commit | f3af9263b0472bcef3207906ce0e4d1d4aa3595b (patch) | |
| tree | e7d0e26156ced50086ba4c4941fb6e8016c78349 | |
| parent | 2efc5f9444402c5ef9db25887f2e95d184af8e05 (diff) | |
| download | jellything-f3af9263b0472bcef3207906ce0e4d1d4aa3595b.tar jellything-f3af9263b0472bcef3207906ce0e4d1d4aa3595b.tar.bz2 jellything-f3af9263b0472bcef3207906ce0e4d1d4aa3595b.tar.zst | |
debug clusters, fix clusters not found in seek head
| -rw-r--r-- | Cargo.lock | 36 | ||||
| -rw-r--r-- | ebml_derive/Cargo.toml | 2 | ||||
| -rw-r--r-- | remuxer/src/bin/mkvinfo.rs | 15 | ||||
| -rw-r--r-- | remuxer/src/demuxers/matroska.rs | 7 | ||||
| -rw-r--r-- | tool/Cargo.toml | 2 |
5 files changed, 38 insertions, 24 deletions
@@ -525,9 +525,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cc" -version = "1.2.44" +version = "1.2.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37521ac7aabe3d13122dc382493e20c9416f299d2ccd5b3a5340a2570cdeb0f3" +checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe" dependencies = [ "find-msvc-tools", "jobserver", @@ -1029,9 +1029,9 @@ dependencies = [ [[package]] name = "exr" -version = "1.73.0" +version = "1.74.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0" +checksum = "4300e043a56aa2cb633c01af81ca8f699a321879a7854d3896a0ba89056363be" dependencies = [ "bit_field", "half", @@ -1570,7 +1570,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.5.10", + "socket2 0.6.1", "tokio", "tower-service", "tracing", @@ -1789,9 +1789,9 @@ dependencies = [ [[package]] name = "indicatif" -version = "0.18.2" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade6dfcba0dfb62ad59e59e7241ec8912af34fd29e0e743e3db992bd278e8b65" +checksum = "9375e112e4b463ec1b1c6c011953545c65a30164fbab5b581df32b3abf0dcb88" dependencies = [ "console", "portable-atomic", @@ -2126,22 +2126,22 @@ dependencies = [ [[package]] name = "jiff" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" +checksum = "49cce2b81f2098e7e3efc35bc2e0a6b7abec9d34128283d7a26fa8f32a6dbb35" dependencies = [ "jiff-static", "log", "portable-atomic", "portable-atomic-util", - "serde", + "serde_core", ] [[package]] name = "jiff-static" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" +checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69" dependencies = [ "proc-macro2", "quote", @@ -2969,7 +2969,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls", - "socket2 0.5.10", + "socket2 0.6.1", "thiserror 2.0.17", "tokio", "tracing", @@ -3006,7 +3006,7 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.5.10", + "socket2 0.6.1", "tracing", "windows-sys 0.60.2", ] @@ -3845,9 +3845,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.109" +version = "2.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f17c7e013e88258aa9543dcbe81aca68a667a9ac37cd69c9fbc07858bfe0e2f" +checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" dependencies = [ "proc-macro2", "quote", @@ -4712,9 +4712,9 @@ dependencies = [ [[package]] name = "weezl" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" +checksum = "009936b22a61d342859b5f0ea64681cbb35a358ab548e2a44a8cf0dac2d980b8" [[package]] name = "wide" diff --git a/ebml_derive/Cargo.toml b/ebml_derive/Cargo.toml index 89e973d..bd821e9 100644 --- a/ebml_derive/Cargo.toml +++ b/ebml_derive/Cargo.toml @@ -7,6 +7,6 @@ edition = "2021" proc-macro = true [dependencies] -syn = "2.0.109" +syn = "2.0.110" quote = "1.0.42" diff --git a/remuxer/src/bin/mkvinfo.rs b/remuxer/src/bin/mkvinfo.rs index fa2d287..e2c7cea 100644 --- a/remuxer/src/bin/mkvinfo.rs +++ b/remuxer/src/bin/mkvinfo.rs @@ -6,7 +6,10 @@ use anyhow::{Result, anyhow}; use jellyremuxer::demuxers::create_demuxer_autodetect; -use std::{env::args, fs::File}; +use std::{ + env::{args, var}, + fs::File, +}; fn main() -> Result<()> { env_logger::init_from_env("LOG"); @@ -20,5 +23,15 @@ fn main() -> Result<()> { println!("CHAPTERS: {:#?}", reader.chapters()?); println!("TAGS: {:#?}", reader.tags()?); + if var("CLUSTERS").is_ok() { + reader.seek_cluster(None)?; + while let Some((off, cluster)) = reader.read_cluster()? { + eprintln!( + "off={off} num_blocks={}", + cluster.simple_blocks.len() + cluster.block_groups.len() + ) + } + } + Ok(()) } diff --git a/remuxer/src/demuxers/matroska.rs b/remuxer/src/demuxers/matroska.rs index bb7289a..45bb154 100644 --- a/remuxer/src/demuxers/matroska.rs +++ b/remuxer/src/demuxers/matroska.rs @@ -102,7 +102,9 @@ impl MatroskaDemuxer { /// Seeks to the content of child tag of Segment possibly optimized via SeekHead. /// Returns the absolute offset of the element start and size of the content. pub fn seek_to_segment_tag(&mut self, search_tag: u64) -> Result<Option<(u64, u64)>> { - if let Some(seek_head) = self.seek_head()? { + if let Some(seek_head) = self.seek_head()? + && !search_tag == Segment::TAG_CLUSTERS + { let Some(segment_position) = seek_head .seeks .iter() @@ -159,8 +161,7 @@ impl MatroskaDemuxer { } impl Demuxer for MatroskaDemuxer { fn info(&mut self) -> Result<Info> { - self - .read_segment_tag("Info", Segment::TAG_INFO)? + self.read_segment_tag("Info", Segment::TAG_INFO)? .ok_or(anyhow!("info missing")) } fn tracks(&mut self) -> Result<Option<Tracks>> { diff --git a/tool/Cargo.toml b/tool/Cargo.toml index 7e4823e..71852b1 100644 --- a/tool/Cargo.toml +++ b/tool/Cargo.toml @@ -11,7 +11,7 @@ log = { workspace = true } env_logger = "0.11.8" anyhow = "1.0.100" reqwest = { workspace = true } -indicatif = "0.18.2" +indicatif = "0.18.3" tokio = { workspace = true } clap = { version = "4.5.51", features = ["derive"] } clap_complete = "4.5.60" |