v0.1.3: start time honored when replaying the already-loaded track
QMediaPlayer.setSource() no-ops on an unchanged URL, so replaying the track that was already the loaded source never re-fired LoadedMedia and the armed _pending_start_ms was silently dropped — a freshly edited start time appeared to save but playback began at 0:00. _load_current now detects the unchanged source and stop()+seeks directly (a forced clear+reload was tried and races the FFmpeg backend, snapping the seek back to 0). previous()-restart likewise rewinds to the custom start time instead of 0:00. Verified live via an offscreen GUI harness: replay-while-playing, replay-after-EndOfMedia, and cleared-start-time replay. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
20
TASKS.md
20
TASKS.md
@ -3,6 +3,26 @@
|
||||
Legend: `[ ]` todo · `[~]` in progress · `[x]` done.
|
||||
When a round closes, move its finished items to `tasks-done.md`.
|
||||
|
||||
## Round 22 — start time honored on same-source replay (v0.1.3)
|
||||
|
||||
Plan reference: `~/.claude/plans/could-you-look-into-generic-balloon.md`.
|
||||
Tests in `tests/test_round22.py`. Fix-only round → patch bump **0.1.3**.
|
||||
|
||||
Background: editing a track's start time saved fine but replaying it still
|
||||
started at 0:00 whenever that track was already the loaded source — Qt's
|
||||
`QMediaPlayer.setSource()` no-ops on an unchanged URL, so the LoadedMedia
|
||||
status change that consumes the armed `_pending_start_ms` never re-fired.
|
||||
(A forced clear+reload was tried first and races the FFmpeg backend: the
|
||||
seek lands, then the pipeline restart snaps position back to 0.)
|
||||
|
||||
- [x] `Player._load_current`: when the source URL is unchanged, skip
|
||||
`setSource` entirely — the media is already loaded — and `stop()` +
|
||||
seek straight to the armed start time. Verified live (offscreen GUI
|
||||
harness): replay-while-playing, replay-after-EndOfMedia, and
|
||||
cleared-start-time replay all land where they should.
|
||||
- [x] `Player.previous()`: the ">3 s in restarts the track" path now seeks
|
||||
to the track's custom start time instead of 0:00.
|
||||
|
||||
## Round 21 — transport buttons fill their bubble (v0.1.2)
|
||||
|
||||
Plan reference: `~/.claude/plans/tap-targets-on-the-snazzy-minsky.md`.
|
||||
|
||||
Reference in New Issue
Block a user