feat(player): add ASR/YOLO overlays, zoom, and text rendering

- Add TTF text rendering for subtitles and YOLO labels
- Implement ASR subtitle display with background
- Add YOLO bbox rendering with class labels
- Add zoom in/out (+/-) and reset (Backquote)
- Add frame/time info display
- Fix YOLO metadata parsing for actual file format
- Add Shift+Arrow for 1-second seek
This commit is contained in:
accusys
2026-03-19 01:33:46 +08:00
parent 0b75987fd0
commit 5587e6a67a
5272 changed files with 103480 additions and 45 deletions

View File

@@ -0,0 +1,37 @@
/Users/accusys/momentry_playground/target/debug/deps/chrono-5814d22105e1cebc.d: /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/lib.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/time_delta.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/date.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/datetime/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/formatting.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/parsed.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/parse.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/scan.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/strftime.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/locales.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/date/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/datetime/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/internals.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/isoweek.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/time/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/fixed.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/unix.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/timezone.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/parser.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/rule.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/utc.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/round.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/weekday.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/weekday_set.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/month.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/traits.rs
/Users/accusys/momentry_playground/target/debug/deps/libchrono-5814d22105e1cebc.rlib: /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/lib.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/time_delta.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/date.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/datetime/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/formatting.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/parsed.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/parse.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/scan.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/strftime.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/locales.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/date/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/datetime/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/internals.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/isoweek.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/time/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/fixed.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/unix.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/timezone.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/parser.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/rule.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/utc.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/round.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/weekday.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/weekday_set.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/month.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/traits.rs
/Users/accusys/momentry_playground/target/debug/deps/libchrono-5814d22105e1cebc.rmeta: /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/lib.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/time_delta.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/date.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/datetime/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/formatting.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/parsed.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/parse.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/scan.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/strftime.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/locales.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/date/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/datetime/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/internals.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/isoweek.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/time/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/fixed.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/unix.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/mod.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/timezone.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/parser.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/rule.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/utc.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/round.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/weekday.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/weekday_set.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/month.rs /Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/traits.rs
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/lib.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/time_delta.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/date.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/datetime/mod.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/mod.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/formatting.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/parsed.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/parse.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/scan.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/strftime.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/format/locales.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/mod.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/date/mod.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/datetime/mod.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/internals.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/isoweek.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/naive/time/mod.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/mod.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/fixed.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/mod.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/unix.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/mod.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/timezone.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/parser.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/local/tz_info/rule.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/offset/utc.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/round.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/weekday.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/weekday_set.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/month.rs:
/Users/accusys/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.44/src/traits.rs: