Skip to content

Add time filter persistence, text inputs, and overlay settings panel#1592

Open
mattdawkins wants to merge 9 commits intomainfrom
filter-range-in-pipes-and-adj-opt
Open

Add time filter persistence, text inputs, and overlay settings panel#1592
mattdawkins wants to merge 9 commits intomainfrom
filter-range-in-pipes-and-adj-opt

Conversation

@mattdawkins
Copy link
Copy Markdown
Member

@mattdawkins mattdawkins commented Feb 3, 2026

Summary

Persist time filters per dataset, expose them as text inputs in the overlay panel, and have pipelines respect the active filter range.

Changes vs main

  • Persist `timeFilters` on `DatasetMetaMutable`.
  • Add overlay-panel text inputs for filter start/end frames.
  • Pipeline run path (desktop + web): pass current filter range as `frameRange` and forward it to the backend.
  • Backend / tasks: forward `frame_range` into the kwiver downsampler (`start_frame`, `end_frame`); for transcode/filter pipelines also set `renumber_frames` and `adjust_timestamps` so the output media is renumbered relative to the trimmed range.
  • Desktop `viame.ts`: filter detector/track CSVs by frame range before ingest, and trim image lists by frame range for image-sequence inputs.

@mattdawkins mattdawkins force-pushed the filter-range-in-pipes-and-adj-opt branch from 05f3341 to f1e0542 Compare February 11, 2026 05:52
Save and load timeFilters in dataset metadata following the established
confidenceFilters pattern. Filters are saved on every change (toggle,
slider, timeline drag) and restored when the dataset is reopened.
Replace the hover-based v-menu with a click-toggled overlay panel that
appears above the controls bar on the right third of the screen. Add
frame number text fields and HH:MM:SS time inputs (for video datasets)
alongside the existing sliders. Clicking the filter button enables the
filter and opens settings; clicking again disables it; clicking outside
closes the panel without disabling.
Pass start_frame, end_frame, and frame_range_is_native to the KWIVER
downsampler when the user has selected a frame range, so VIAME skips
frames outside the range rather than post-filtering. The is_native flag
is set based on whether DIVE is downsampling (fps < originalFps).
…ne type

For transcode/filter pipelines with a frame range, renumber output frames
relative to the new range (frame 0 = start frame). For all other pipelines,
keep frames relative to the original video.
@mattdawkins mattdawkins force-pushed the filter-range-in-pipes-and-adj-opt branch 2 times, most recently from d47d5d0 to 3f82c93 Compare April 29, 2026 09:44
@BryonLewis
Copy link
Copy Markdown
Collaborator

I've updated the system to use PipelineParams and that type has RunTimeParams like the frameRange and KwiverParams are params passed into kwiver.

@mattdawkins - I've ran a simple fish detector on this and the output produces two files. A detector_output.csv and a detector_output_filtered.csv, the filtered file typically has no tracks. The detector_output has tracks but the frame Ids are reset to 0 and not the range where they shgould be. I tried setting the renumbered setting to true (it was false before) so see if that adjusted frames and it doesn't seem to.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants