The track file cannot say where the audio was during an interruption #50
Labels
No labels
area/agent
area/capture
area/editor
area/geo
area/security
area/sync
area/transcription
area/ui
area/vault
area/voice-memos
blocked
milestone/M1
milestone/M2
milestone/M3
milestone/M4
needs-decision
needs-hardware
p0
p1
p2
type/bug
type/enhancement
type/feature
type/idea
type/infrastructure
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Stash/stash-ios#50
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The route map's playhead marker is placed by adding the elapsed playback time to the
recording's start. Those are two different clocks, and an interruption separates them.
Audio presentation timestamps come from frames written — deliberately, so an interruption is
spliced out rather than leaving a file no player will open. Location collection does not stop for
an interruption: it runs from
markRunningto the top ofstop(). So a memo interrupted by atwo-minute phone call is two minutes shorter than the walk it describes, and every fix after the
call is that much ahead of where the marker puts it.
What M2-08 does about it
Nothing on disk records the offset, so it cannot be corrected. It can be detected: a route
spanning more wall time than the memo holds audio is one the memo cannot account for, and
TrackTimelineanswers with no marker at all rather than a wrong one. A memo whose length will notread is exempt, because that is the capture the app was killed during and it is the route somebody
most wants to see.
So today an interrupted recording has a route you can look at and no marker while you play it.
Scope
Give the track file what it needs to say where the audio was during a fix. Two shapes to weigh:
<time>that is already there;The second is smaller on disk and keeps one fact in one place, which is the argument that chose
absolute
<time>over relative seconds in #34. The first survives a reader that knows nothing aboutStash's extensions, which is the argument that chose GPX at all.
This changes the track file format, so it is M2-07's contract and not a loose end of M2-08 —
which is why Wes asked for it as its own issue on 2026-08-09. Old tracks have no mapping and must go
on working exactly as they do now: detected, and no marker.
Done when
disagree.