Smooth DVR playback: native-rate playback (true 720p90 / 1080p60) via the live-video display path#619
Open
bob9 wants to merge 1 commit into
Open
Smooth DVR playback: native-rate playback (true 720p90 / 1080p60) via the live-video display path#619bob9 wants to merge 1 commit into
bob9 wants to merge 1 commit into
Conversation
…eo display path Replaces this branch's earlier UI-path retime wholesale: bench testing on both goggle generations proved the FPGA's UI input path only ever locks 1080p50, so retimed playback now enters the genuine live-video display mode and the decoded video rides the vdpo overlay plane. - ts_probe: the platform demuxer reports 0 fps for goggle TS recordings; derive the rate from video PES PTS spacing. - goggles2 (hardware-verified): 90fps -> 720p90 with the VO layer sized 1280x720, 60fps -> video-path 1080p60. - goggle v1 (hardware-verified): same modes; the UI re-renders at 1280x720 during 720p90 (like the race OSD) so the control bar is not comb-torn by the 1280-wide scanout; one receiver init per boot leaves a black raster behind the FPGA overlay chroma-key, then the receiver stays off; prewarm runs while the user browses the playback list. - boxpro: UI already runs 720p60; no-op stubs. - playback UX: control bar auto-hides after 4s and wakes on dial input; unplayable files show a message instead of a silent black screen; thumbnails read straight off the card (the /tmp staging overflowed tmpfs and degraded previews to placeholder icons). - diagnostics: in-firmware display bench (right-click during playback) used for hardware bring-up, and an SD-card transition/stall log. - TS-only on purpose: MP4 playback keeps the stock display path.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DVR recordings of 60 and 90 fps flights judder on playback because the menu UI drives the panel at 1080p50 while the recording's frames arrive at 60/90 fps. This PR plays them at their native rate: 90 fps recordings at true 720p90 (every frame shown), 60 fps at 1080p60.
Why v2 looks nothing like v1
The first version of this PR retimed the display on the FPGA's UI input path. Hardware bring-up falsified that approach: on both goggle generations the UI path only ever locks 1080p50 — every recipe tried (bare vdpo retime, clock phases, MFPGA setups, OLED timing sets) produced an unlocked panel. I closed the PR, built an in-firmware display bench, and found the route that works: enter the genuine live-video display mode and let the decoded video ride the vdpo overlay plane — the same path the OSD uses in race mode every day.
What's here
Credit
The live-video-path architecture and the goggles2 verification are @bolagnaise's work; the goggle v1 bring-up, probe validation and playback UX were done on this side. Field-tested on real race footage on both goggle generations.