From 13d3cedfbc07e6bbe46a395eb86990fa01c1c346 Mon Sep 17 00:00:00 2001 From: oxoxDev <164490987+oxoxDev@users.noreply.github.com> Date: Thu, 7 May 2026 01:37:54 +0530 Subject: [PATCH] docs(gmeet-parity): row 15 codec-gap status post #1251 build infra (#1223) (#1282) --- docs/qa/GMEET-PARITY.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/qa/GMEET-PARITY.md b/docs/qa/GMEET-PARITY.md index 5c68e86f2..95dd28def 100644 --- a/docs/qa/GMEET-PARITY.md +++ b/docs/qa/GMEET-PARITY.md @@ -34,7 +34,7 @@ | 12 | **Session persistence** — close + reopen webview tab without sign-out; account stays active | ✅ pass | CEF profile persistence behaves identically to gmail/slack. | — | | 13 | **Captions ingestion → memory** — `meet_captions` rows + `meet_call_ended` lifecycle event flush a transcript document via `openhuman.memory_doc_ingest` | ⏭️ deferred to #1052 | Current handler at `webview_accounts/mod.rs:2219-2247` is log-only. Not a regression — recipe.js has been log-only since inception. Filed as **feature** at #1052 with module sketch (`google_meet/` mirroring `gmail/` shape, persistent `MeetingTranscriptStore`, opt-in toggle for the privacy-sensitive transcript). | Out of scope for this PR. | | 14 | **Hangup return UX** — leaving the call returns to a recognizable state (rejoin / 5-star review prompt) | ✅ pass | Behavior is identical to stock Chrome — rejoin button + 5-star review with 60s auto-dismiss. | — | -| 15 | **Background effects** — virtual background / blur applies without breaking the camera | ⚠️ partial — static effects work, dynamic (video) effects fail | **Phase A diagnostic 2026-05-05** ruled out the original hypothesis. Probe results inside an active Meet call: `crossOriginIsolated:false` (irrelevant — SAB is exposed via the existing `--enable-features=SharedArrayBuffer` flag), `hasSAB:true`, `hasInsertableStreams:true` (MediaStreamTrackProcessor/Generator both present), `hasWebGL2:true`, `hasWebGPU:true`, `hasAtomics:true`. **Static backgrounds (blur, classroom, library, etc.) WORK** — verified live. **Dynamic (video) backgrounds fail** with `MEDIA_ERR_SRC_NOT_SUPPORTED: PipelineStatus::DEMUXER_ERROR_NO_SUPPORTED_STREAMS: FFmpegDemuxer: no supported streams` when fetching `https://www.gstatic.com/video_effects/assets/.mp4`. Real root cause: vendored CEF ships the standard distribution (no proprietary codecs), so H.264-in-MP4 dynamic-bg assets can't be demuxed. Not a Chromium runtime gap. Memory `feedback_cef_runtime_gaps.md` gap #3 reclassified accordingly. | Reclassified — needs proprietary codec build of vendored `tauri-cef`. Will file follow-up against `tinyhumansai/tauri-cef` to switch CEF binary distribution to a Chrome-branded build (or document as won't-fix per license). Out of scope for openhuman code. | +| 15 | **Background effects** — virtual background / blur applies without breaking the camera | ⚠️ partial — static effects work, dynamic (video) effects fail | **Phase A diagnostic 2026-05-05** ruled out the original hypothesis. Probe results inside an active Meet call: `crossOriginIsolated:false` (irrelevant — SAB is exposed via the existing `--enable-features=SharedArrayBuffer` flag), `hasSAB:true`, `hasInsertableStreams:true` (MediaStreamTrackProcessor/Generator both present), `hasWebGL2:true`, `hasWebGPU:true`, `hasAtomics:true`. **Static backgrounds (blur, classroom, library, etc.) WORK** — verified live. **Dynamic (video) backgrounds fail** with `MEDIA_ERR_SRC_NOT_SUPPORTED: PipelineStatus::DEMUXER_ERROR_NO_SUPPORTED_STREAMS: FFmpegDemuxer: no supported streams` when fetching `https://www.gstatic.com/video_effects/assets/.mp4`. Real root cause: vendored CEF ships the standard distribution (no proprietary codecs), so H.264-in-MP4 dynamic-bg assets can't be demuxed. Not a Chromium runtime gap. Memory `feedback_cef_runtime_gaps.md` gap #3 reclassified accordingly. | Build infra landed in [`scripts/cef-with-codecs/`](../../scripts/cef-with-codecs/README.md) via #1251 (Chrome-branded FFmpeg build via `automate-git.py` + local install helper + license posture memo). Codec absence persists in the shipped binary until the build is run, the resulting CEF archive is hosted, and `tauri-cef` is re-pinned to fetch from that host. Remaining blockers are operational, not code: (a) license clearance per [`scripts/cef-with-codecs/README.md`](../../scripts/cef-with-codecs/README.md#license-posture-read-before-building), (b) binary hosting + checksum manifest. Flip row to ✅ once the codec-built CEF lands in a vendored `tauri-cef` pin and the smoke harness confirms `MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E"') === true`. | ## Smoke run procedure @@ -72,8 +72,9 @@ The legacy `recipe.js` polls the call DOM for caption rows. A future epic should ## Sign-off - Tester: oxoxDev -- Result: 12 ✅ / 1 ⚠️ partial (#1053 row 15 — CEF codec gap, not a runtime gap) / 1 ❌ blocked on #1046 (row 1) / 1 ⏭️ deferred to #1052 (row 13) -- Date: 2026-04-30 (row 15 reclassified 2026-05-05 after Phase A diagnostic) +- Result: 12 ✅ / 1 ⚠️ partial (#1223 row 15 — CEF codec gap; build infra shipped in #1251, awaits license + binary hosting) / 1 ❌ blocked on #1046 (row 1) / 1 ⏭️ deferred to #1052 (row 13) +- Date: 2026-04-30 (row 15 reclassified 2026-05-05 after Phase A diagnostic; row 15 status updated 2026-05-06 after #1251 codec-build infra merged) - Action items: - Land #1046 (gmail PR) → rebase this branch → row #1 Auth flips ✅ - - Track #1052 (caption ingest feature) and #1053 (background effects CEF gap) as follow-up issues + - Track #1052 (caption ingest feature) as follow-up issue + - Track #1223 (codec-built CEF: license clearance + binary hosting) — code-side build infra already in `scripts/cef-with-codecs/` per #1251; row 15 flips ✅ once vendored `tauri-cef` is re-pinned to a hosted Chrome-branded archive