Resolve frame metadata for image sequences and videos - #1808
Open
PaulHax wants to merge 2 commits into
Open
Conversation
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.
Third of a four-PR stack, on top of #1807. Review only this PR's own commits; the base branch
carries #1806 and #1807.
Summary
The shared client engine turning readable TXT/CSV attachments into per-frame values.
Image sequences resolve in order: a column matching media filenames; a literal zero-based
framecolumn; one uniquely best monotonic source-image-counter column. Videos accept only the literal
zero-based
framecontract.Sparse and out-of-order rows are valid; malformed, duplicate, and out-of-range frame values cannot
overwrite a valid row. Column selection is first-match, not a ranking: the leftmost column that
names at least two of a camera's images wins, and the leftmost integer column that survives the
counter checks wins. A shared multicamera table needs no arbitration — a sibling camera's filename
column names none of this camera's images, so it never qualifies.
Media controllers expose a ready frame context for image-sequence and video consumers. Large-image
datasets keep their attachment for opt-in pipelines but resolve no rows. A shared composable owns
loading, selected-camera precedence, per-frame lookup, and a compact session cache; every camera's
attachment is fetched eagerly and the in-flight load is shared, so switching cameras mid-load does
not re-download. Derived rows are not persisted.
No UI consumes this yet — the panel that does is the next PR. Review it against the unit tests.
Reviewer focus
framemeans a DIVE zero-based frame number, never row order.the current aligned instant shows none.