Repository navigation
feat(web): add direct Canvas rendering with preserved fallback frames - #31
Merged
Merged
Conversation
Introduce renderer adapters, accessible mode selection and preference migration. Add no-Video rendering, JPEG fallback diagnostics, session isolation and regression coverage with localized documentation.
Declare the input framing at AirPlay decode entry points instead of guessing from start-code bytes. Cover AVC and HEVC length boundaries, keyframe detection, malformed records and byte-exact RTP roundtrips.
Document frame-rate measurements, bottleneck investigation, the NAL framing diagnosis and fixed-APK verification across all three renderers. Record restored device settings and remaining validation limits.
Use a temporary Blob URL for the WebP capability image and revoke it on completion. Run the real browser media regression against the Android CSP so blocked data URLs cannot silently disable WebP negotiation.
…dation Describe JPEG and WebP image fallback with upstream retry and presentation state. Record merged checks, real HEVC playback and recovery, the CSP probe regression, final APK verification and restored device settings.
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.
Adds the three video rendering modes, explicit HEVC NAL framing, and CSP-compatible WebP probing from #30, preserving all original commits. Native Video remains the default; Direct Canvas is experimental and falls back to JPEG / WebP when unavailable or failing.
Fixes the review finding in Direct Canvas: a read/draw failure or unexpected stream end previously cleared the canvas before the receiver could capture its last frame. The error callback now runs before cleanup, preserving the frozen picture until the fallback image decodes. Generation checking prevents cleanup from stopping a renderer restarted by that callback.
Validation of the final tree:
npm run check,git diff --check, andnpm run test:browser:mediapassed.Android build and emulator checks are delegated to this PR's CI; no new physical-device validation was performed.