Repository navigation
Render native video planes through the framework (experimental) - #118
Draft
xandreeddev wants to merge 14 commits into
Draft
xandreeddev wants to merge 14 commits into
xandreeddev wants to merge 14 commits into
Conversation
(cherry picked from commit d77f3d0)
This branch has not been deployed
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.
Live wallpapers currently convert decoded frames to RGBA before upload. This adds an experimental native YUV420 path through the public framework API, ordinary element/paint tree and shared renderer, with checked color metadata and immutable decoded-frame ownership. It is off by default (
LUCENT_NATIVE_VIDEO_PLANES=1enables an owned test session).The neutral
lucent-video-framecrate contains validated media values. FFmpeg remains in the service adapter, Vulkan resources remain in the renderer, and client output/transition policy stays in the desktop. Unsupported metadata, minification, shared or unknown output routes preserve RGBA; current, paused and outgoing frames use the same asset's prepared poster while replacements load or fail. No new shell toolkit or external player is introduced.This is stacked on #117 and also contains the separately tested nonblocking keyboard-control flush. That focus change has no complete native-widget acceptance yet. No merge or production enablement is requested while the checks below are unresolved.
Validation:
1c1dfae474929fab60d6c300326e6959d1fae77c: Rust job122031826229 passes the full workspace, configured protocol/legacy Vulkan checks, 45 named regressions and six strict video-plane/actual-scene Vulkan tests. Architecture30 and capture-integrity9 pass.Still missing: a clean 21-stage/952-test Arch qualification and fresh captures; concrete target ABI/import review; coherent native deployment and actual eligible video delivery/fallback/restore tests; eligible normal RSS at or below 300 MiB, source-rate/60 FPS and smooth-interaction measurements; broader HiDPI/multi-output/physical coverage. GPU-cache source review finds no accidental strong retention of old CPU frames, but that is not a memory measurement. Default playback remains RGBA until the native path earns acceptance.