Skip to content

feat: burn time and location overlays into recorded video#162

Open
cizra wants to merge 2 commits into
Myzel394:masterfrom
cizra:alibi/add-time-location-overlay
Open

feat: burn time and location overlays into recorded video#162
cizra wants to merge 2 commits into
Myzel394:masterfrom
cizra:alibi/add-time-location-overlay

Conversation

@cizra

@cizra cizra commented May 25, 2026

Copy link
Copy Markdown

feat: burn time and location overlays into recorded video

Dashcam users repeatedly asked (upstream issues) for evidence metadata
to be visible inside the recorded video itself, not just as sidecar
data: a wall-clock timestamp, and optionally GPS coordinates.

Add separate, default-off settings for time and location overlays
(with curated timestamp formats and location-permission handling),
and a CameraX video effect that renders the configured overlay via an
OpenGL pass on each frame before it reaches the encoder.

Code changes by Claude Opus running inside Pi.dev. I built and tested this commit, it works fine in my phone.
Depends on #158 to build and run.
Contains #161, should be rebased on it.

Elmo Todurov added 2 commits May 25, 2026 10:34
After a process crash, Android could restart a recorder service and
reconnect the UI to it without the model ever calling init() with the
saved settings. The very first access to the `settings` lateinit then
threw UninitializedPropertyAccessException, crashing the UI as soon as
it bound.

Expose `hasInitializedSettings()` on IntervalRecorderService and have
BaseRecorderModel detect stale services on bind, drop them, and start
a fresh one instead of binding to invalid state.
Dashcam users repeatedly asked (upstream issues) for evidence metadata
to be visible inside the recorded video itself, not just as sidecar
data: a wall-clock timestamp, and optionally GPS coordinates.

Add separate, default-off settings for time and location overlays
(with curated timestamp formats and location-permission handling),
and a CameraX video effect that renders the configured overlay via an
OpenGL pass on each frame before it reaches the encoder.
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.

1 participant