The problem
A local media library needs to preserve edits and watch progress while files change, drives disappear, and background work competes with playback. The interface also needs to remain responsive around large artwork.
My contribution
I defined the library and playback requirements, directed architecture and agent workflows, set acceptance criteria, and coordinated debugging and validation. Native playback and decoding are provided by mpv and its upstream dependencies.
Architecture
Qt Quick draws the interface. Python controllers coordinate the repository, library workers, and embedded player. SQLite migrations preserve state. The artwork worker stores lossless display derivatives, and Home prepares complete scene snapshots before a transition.
Read the architecture flow
- 1Qt Quick interface
- 2Python controllers
- 3SQLite library + progress
- 4Scanner and artwork workers
- 5Native mpv playback
Keep user intent separate from discovered metadata
The scanner writes discovered auto_* fields while interface edits use user_* fields. Views prefer the user value. Volume identity uses filesystem UUIDs, so an unavailable drive does not automatically erase the library. Background workers handle scans and thumbnails; playback owns its own progress state.
The tradeoff
Native playback introduced a real Qt/mpv/NVIDIA integration constraint. The documented render-context failure led to embedding mpv in a child window while Qt uses Vulkan. That is a platform-specific integration choice with a clear validation boundary.
Read demonstration transcript
The actual application opens a disposable library with test-pattern artwork. It switches from Home to Library, opens a fictional series and its synthetic episode entries, then returns to Home. This capture demonstrates navigation, not playback performance or physical display acceptance.
337 automated cases pass in an isolated run
The complete existing suite passed on a private source copy with disposable state and offscreen/software Qt on October 21, 2026. These cases support specific library, cache, and playback contracts. They are not evidence of production-library or physical desktop acceptance.
| Current isolated suite | 337 passed |
|---|---|
| Historical Home baseline | 6.987 s |
| Historical warm Home | 0.869 s |
Method and scope
The October 6, 2026 native artwork report records an 87.56% reduction in Home usability time on one RTX 4060/Xorg system. Its probe used a copied 1,669-episode library, stopped scanning and thumbnail generation, and did not flush OS cache. The linked raw temporary measurement files are now missing. Treat this as a historical report, not a freshly reproduced benchmark.
Verification and limits
Current checks use Python 3.12.3, PySide6 6.10.3, a private source copy, and disposable fixtures. No production database or media library was opened for this test run.
- Offscreen tests do not prove physical display, compositor, keyboard, HDR, or audible playback behavior.
- The earlier 305-test count belongs to the artwork report. It is not the current test count.
- Library-size figures from the resume are omitted here because their measurement record was not established by this audit.
These results describe the inspected project and stated test conditions. They are not a guarantee for every input or machine.
