refactor(dgw): parse growing WebM with TagDecoder - #1941
Open
irvingouj@Devolutions (irvingoujAtDevolution) wants to merge 3 commits into
Open
refactor(dgw): parse growing WebM with TagDecoder#1941irvingouj@Devolutions (irvingoujAtDevolution) wants to merge 3 commits into
irvingouj@Devolutions (irvingoujAtDevolution) wants to merge 3 commits into
Conversation
Contributor
Author
|
Implementation notes:
Note LLM-assisted content (no human feedback). |
irvingouj@Devolutions (irvingoujAtDevolution)
marked this pull request as ready for review
August 21, 2026 20:54
Copilot started reviewing on behalf of
irvingouj@Devolutions (irvingoujAtDevolution)
August 21, 2026 20:55
View session
Contributor
There was a problem hiding this comment.
Pull request overview
Refactors growing WebM parsing to use TagDecoder, retaining incomplete tags until recordings append more data.
Changes:
- Adds incremental buffered decoding and disk refresh support.
- Updates streaming and benchmark paths.
- Adds a growing-file regression test.
Two error-handling regressions were identified.
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
crates/video-streamer/src/streamer/mod.rs |
Integrates incremental decoding. |
crates/video-streamer/src/streamer/iter.rs |
Implements buffered TagDecoder iteration. |
crates/video-streamer/src/bench_support.rs |
Updates benchmark iteration. |
crates/video-streamer/Cargo.toml |
Adds bytes. |
Cargo.lock |
Locks the dependency update. |
Suppressed comments (1)
crates/video-streamer/src/streamer/mod.rs:147
refresh_from_disk()only repositions the reader; it does not consume or reset the decoder's buffered bytes. Consequently, anInvalidTagDataerror is returned from the same bytes after every refresh, turning a permanent parse failure into repeated waits for up to 75 seconds. WithTagDecoder, incomplete input is represented byNone, so parser errors should fall through to the existing generic error arm.
webm_itr.refresh_from_disk()?;
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Contributor
Author
|
Review follow-up:
Note LLM-assisted content (no human feedback). |
The original streamer treated incomplete tags as UnexpectedEOF and rewound the file. ebml-iterable 0.7 keeps those tags pending, so live recordings can append without seek/skip. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
TagDecoder reports incomplete input as None, not UnexpectedEOF. Retrying InvalidTagData just stalled on real corruption. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
A parse error stays at the same offset. Swallowing it while draining already-recorded tags hid corruption. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
irvingouj@Devolutions (irvingoujAtDevolution)
force-pushed
the
refactor/video-streamer-tag-decoder
branch
from
August 21, 2026 21:16
ffaca0f to
f77dcb9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The original streamer treated incomplete tags as UnexpectedEOF and rewound the file.
ebml-iterable 0.7 keeps those tags pending, so live recordings can append without seek/skip.
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
Stack created with GitHub Stacks CLI • Give Feedback 💬