Repository navigation
feat(web): add direct Canvas rendering and fix HEVC NAL framing - #30
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.
新增不创建
<video>元素的实验性直接 Canvas 模式,并修复真机 HEVC 间歇性decode-stalled的 NAL 格式转换缺陷。默认仍使用原生 Video;缺少主线程 Processor 或发生媒体错误时保留所选模式,沿用上游图像回退与重试机制。改动
VideoFrame。00 00 01 xx长度前缀误认成 Annex B 起始码的问题:256–511 字节的 NAL 原先会携带多余长度字节进入 RTP。两个 AirPlay 入口现在显式声明输入格式,并新增边界、多 NAL、畸形输入、关键帧分类及 RTP 往返测试。data:WebP 探测而导致始终协商 JPEG 的问题,改用及时释放的 Blob URL;真实浏览器测试使用 Android 服务端的同一 CSP,无需放宽策略。验证
npm test:136 项通过;npm run check、git diff --check通过。:common:testDebugUnitTest:57 个套件、324 项通过,无失败或跳过。npm run test:browser:media:真实 Chromium 覆盖 CSP 下的 WebP 探测、缩放触控、损坏图片回退、精确 ACK、旧帧拒绝、恢复期限、旋转及 WebSocket 重连。decode-stalled。范围与限制
直接 Canvas 保持实验性且默认关闭,首版仅支持主线程
MediaStreamTrackProcessor。本轮动态成功绘制约 51 fps,不承诺持续 60 fps 或物理屏幕刷新率;目标车机型号及长时间运行仍需单独验证。详细过程及各轮数据见 docs/VALIDATION.md。