{ "task": "PKG-MB-05", "status": "done", "parentCommit": "5d0b128483a78a5374bb7163adc1421ba6a4d4c8", "sourceSha256LF": { "packages/artplayer-proxy-mediabunny/src/AudioEngine.d.ts": "2d59216f234173253b87e2b3ab8710efd25666f6cadbb2d1052b5c1cb829635a", "packages/artplayer-proxy-mediabunny/src/AudioEngine.js": "910d6831372e4895d55dec78010f281a199bc88f99735630a5a3b621f192ac35", "packages/artplayer-proxy-mediabunny/src/engine-ports.ts": "eabac444c7aeeb6026b654428868e72912c9591aabcbd70bdf1e3a85aeb8ebe3", "packages/artplayer-proxy-mediabunny/src/engine-types.ts": "857a61f1fa3531bd737626658981eaab1b83eb369266fb45528676b9f57a293a", "packages/artplayer-proxy-mediabunny/src/EventTarget.ts": "4cea57e59b0a1118744a55b0a87c1df28cb0d69c26c50f9275039fe7540c9720", "packages/artplayer-proxy-mediabunny/src/hls-selection.ts": "a8632c0ea7d0c59434de005eee81bbf8d1dea8ae73c690673b603e5d6fa3cfd6", "packages/artplayer-proxy-mediabunny/src/hls-state.ts": "ff9ffd742f9763349df1f50eac6b6bd488a80d05aaab8ca198f387f0d17d5e25", "packages/artplayer-proxy-mediabunny/src/index.js": "4e1be8937908ff6e6ef8a4e863e22b4468312cf31d66ac299322e475757773bb", "packages/artplayer-proxy-mediabunny/src/input.ts": "d25b1c4ee4aee358c86fd8c554b8b36bfc23fdbd3c27fa21d2cd7e812c98bf9c", "packages/artplayer-proxy-mediabunny/src/load-session.ts": "560fbd5935fc787bde5f413fcaa41b8829506179c5328ce3cb51e734bbba8cec", "packages/artplayer-proxy-mediabunny/src/m3u8.js": "4639f09e0c743dc2b24078f48ca1e58eaaedaa3f5e6b863583cbd4bc4a7d3142", "packages/artplayer-proxy-mediabunny/src/media.ts": "e745cd8e750e05d0fcfa4bc588f7eb5a5576f3be20f5e67b65b704f57d539ae9", "packages/artplayer-proxy-mediabunny/src/MediaBunnyEngine.ts": "237d3d29fbf61a74df83dea11d862450dfd8f3b7fbd555dd5552b630ff0191e9", "packages/artplayer-proxy-mediabunny/src/playback.ts": "0512f6a1b253d754b6644266327e368e0e18cce1cf9a3af62b6747ed55d691f7", "packages/artplayer-proxy-mediabunny/src/preflight.ts": "d296234312f23b97a1e0a054f1d7dbbc988d5240c5fd5089c36df1677c7b7348", "packages/artplayer-proxy-mediabunny/src/readiness.ts": "9aa24b5e994006b45bda9eafad602785c3e0e334cef54ff45a4939e386c4aceb", "packages/artplayer-proxy-mediabunny/src/shim-frames.ts": "172b222f997a711c2cc7741f189f05127a4ac5099c1cbe2729e903b36b4ce24a", "packages/artplayer-proxy-mediabunny/src/shim-values.ts": "a93ee17e87cc7db24f4b02d866af8af206d3007d01def446906fb769c20de17d", "packages/artplayer-proxy-mediabunny/src/tracks.ts": "6da68530c1fc7105ab17ed742d87d93e84447e822e84386591f9c3e6d0bec733", "packages/artplayer-proxy-mediabunny/src/video-frames.ts": "c48b93c77d976b03d9cb828478ef3f208e35fbd78a4c6d3d6566d90bdc0fe6f2", "packages/artplayer-proxy-mediabunny/src/video-poster.ts": "db883faea9c6b6e74535ddfba1b55011b751faf94a342d70bef532a1c96f7a46", "packages/artplayer-proxy-mediabunny/src/video-renderer.ts": "a1fe324f2b8e4efb0cc40a6021cb85bbcc0568f53352107d63a8b9bbebe5e9b5", "packages/artplayer-proxy-mediabunny/src/VideoEngine.ts": "1c41d43e663b51319d25dccb08a16c7450703dcdffe15d686b4fa3f0a8c7a7e6", "packages/artplayer-proxy-mediabunny/src/VideoShim.ts": "1fef3028a3937182c31503129655efdb88118ea0f6d3be96e9be99dcbcc5fdc7", "packages/artplayer-proxy-mediabunny/dist/artplayer-proxy-mediabunny.js": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "packages/artplayer-proxy-mediabunny/dist/artplayer-proxy-mediabunny.legacy.js": "cbbff47b53f5a867506becfdf5d9b23f83a0eb70e43e6ef4355f19feb7f74adc", "packages/artplayer-proxy-mediabunny/dist/artplayer-proxy-mediabunny.mjs": "9a5e2861c6d26282e04a3178e17b30dbb4bf13e8d6c2115d029fb0fb709830fd", "packages/artplayer-proxy-mediabunny/ARCHITECTURE.md": "f3dc1b6b80bb94735b29e1493b00c4265308753c8d3a2e3c90124110fbf43a70", "package.json": "3f84c1d71a110b0fe7c189ba7294706c7e5d36cda6ab93dcf3b7d51302c2efb1", "test/mediabunny-video.test.js": "1233252bb03cf491dbceffe674ae0fee1c25b70be6b1cf1b48b27279d346415f", "test/browser/mediabunny-video.spec.js": "5886a40fd07946feb2c391cea036c99b27fc4e48d2f0fcf4e434e27eaaab8cae", "test/browser/mediabunny-inputs.spec.js": "25e672461834cf0d28c1763f7bb81b113a1d79904a1becc210d25fe596f52d9d" }, "node": { "total": 146, "video": 38, "sameAssertionsOnPreviousMain": { "passed": 7, "failed": 31 }, "main": 110, "legacy": 110, "artifactScope": "Each 110-case command contains 106 candidate artifact assertions and four frozen normal-event controls." }, "browser": { "total": 54, "outcomes": { "native-input-playback-and-seek": 10, "trackless-rejected-before-decoder-setup": 3, "unsupported-capability-control": 10, "native-pending-stream-cancellation": 9, "native-synthetic-raf": 9, "native-decoded-video-race": 10, "native-mp4-playback-observed": 2, "verified-unsupported-capability-control": 1 }, "records": [ { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "webm", "outcome": "native-input-playback-and-seek", "cleanup": { "audioContext": "closed", "pendingFrames": 0, "streamCancelled": false }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "blob", "outcome": "native-input-playback-and-seek", "cleanup": { "audioContext": "closed", "pendingFrames": 0, "streamCancelled": false }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "stream", "outcome": "native-input-playback-and-seek", "cleanup": { "audioContext": "closed", "pendingFrames": 0, "streamCancelled": true }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "audio", "outcome": "native-input-playback-and-seek", "cleanup": { "audioContext": "closed", "pendingFrames": 0, "streamCancelled": false }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "hls", "outcome": "native-input-playback-and-seek", "cleanup": { "audioContext": "closed", "pendingFrames": 0, "streamCancelled": false }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "trackless", "outcome": "trackless-rejected-before-decoder-setup", "cleanup": { "audioContext": "not-created", "pendingFrames": 0, "streamCancelled": false }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "webm", "outcome": "native-input-playback-and-seek", "cleanup": { "audioContext": "closed", "pendingFrames": 0, "streamCancelled": false }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "blob", "outcome": "native-input-playback-and-seek", "cleanup": { "audioContext": "closed", "pendingFrames": 0, "streamCancelled": false }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "stream", "outcome": "native-input-playback-and-seek", "cleanup": { "audioContext": "closed", "pendingFrames": 0, "streamCancelled": true }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "audio", "outcome": "native-input-playback-and-seek", "cleanup": { "audioContext": "closed", "pendingFrames": 0, "streamCancelled": false }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "hls", "outcome": "native-input-playback-and-seek", "cleanup": { "audioContext": "closed", "pendingFrames": 0, "streamCancelled": false }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "trackless", "outcome": "trackless-rejected-before-decoder-setup", "cleanup": { "audioContext": "not-created", "pendingFrames": 0, "streamCancelled": false }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "webm", "outcome": "unsupported-capability-control", "cleanup": { "audioContext": "not-created", "pendingFrames": 0, "streamCancelled": false }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "blob", "outcome": "unsupported-capability-control", "cleanup": { "audioContext": "not-created", "pendingFrames": 0, "streamCancelled": false }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "stream", "outcome": "unsupported-capability-control", "cleanup": { "audioContext": "not-created", "pendingFrames": 0, "streamCancelled": true }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "audio", "outcome": "unsupported-capability-control", "cleanup": { "audioContext": "not-created", "pendingFrames": 0, "streamCancelled": false }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "hls", "outcome": "unsupported-capability-control", "cleanup": { "audioContext": "not-created", "pendingFrames": 0, "streamCancelled": false }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "input": "trackless", "outcome": "trackless-rejected-before-decoder-setup", "cleanup": { "audioContext": "not-created", "pendingFrames": 0, "streamCancelled": false }, "scope": "Identified proxy with native browser media and controlled ArtPlayer host using actual core utilities/config; frame timestamps sampled against the SDK audio clock, not acoustic/long-run AV-sync acceptance. Cleanup checks settled playback, not pending-operation races. Candidate trackless rejection is checked separately before decoder setup; this is not full release acceptance." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "ending": "destroy", "outcome": "native-pending-stream-cancellation", "scope": "Real browser ReadableStream and actual SDK Input disposal before first media bytes; real timeout; controlled ArtPlayer host; does not assert decoder, late frame or audio-node cleanup." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "ending": "source", "outcome": "native-pending-stream-cancellation", "scope": "Real browser ReadableStream and actual SDK Input disposal before first media bytes; real timeout; controlled ArtPlayer host; does not assert decoder, late frame or audio-node cleanup." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "ending": "timeout", "outcome": "native-pending-stream-cancellation", "scope": "Real browser ReadableStream and actual SDK Input disposal before first media bytes; real timeout; controlled ArtPlayer host; does not assert decoder, late frame or audio-node cleanup." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "ending": "destroy", "outcome": "native-pending-stream-cancellation", "scope": "Real browser ReadableStream and actual SDK Input disposal before first media bytes; real timeout; controlled ArtPlayer host; does not assert decoder, late frame or audio-node cleanup." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "ending": "source", "outcome": "native-pending-stream-cancellation", "scope": "Real browser ReadableStream and actual SDK Input disposal before first media bytes; real timeout; controlled ArtPlayer host; does not assert decoder, late frame or audio-node cleanup." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "ending": "timeout", "outcome": "native-pending-stream-cancellation", "scope": "Real browser ReadableStream and actual SDK Input disposal before first media bytes; real timeout; controlled ArtPlayer host; does not assert decoder, late frame or audio-node cleanup." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "ending": "destroy", "outcome": "native-pending-stream-cancellation", "scope": "Real browser ReadableStream and actual SDK Input disposal before first media bytes; real timeout; controlled ArtPlayer host; does not assert decoder, late frame or audio-node cleanup." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "ending": "source", "outcome": "native-pending-stream-cancellation", "scope": "Real browser ReadableStream and actual SDK Input disposal before first media bytes; real timeout; controlled ArtPlayer host; does not assert decoder, late frame or audio-node cleanup." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "ending": "timeout", "outcome": "native-pending-stream-cancellation", "scope": "Real browser ReadableStream and actual SDK Input disposal before first media bytes; real timeout; controlled ArtPlayer host; does not assert decoder, late frame or audio-node cleanup." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "callback", "outcome": "native-synthetic-raf", "result": { "idType": "number", "calls": [ { "owner": "first", "time": "number", "mediaTime": 0, "presentedFrames": 0 } ], "listeners": 0 }, "scope": "Real browser requestAnimationFrame and actual proxy instances; synthetic metadata is preserved, no decoding or video frame accuracy is claimed." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "destroy", "outcome": "native-synthetic-raf", "result": { "idType": "number", "calls": [], "listeners": 0 }, "scope": "Real browser requestAnimationFrame and actual proxy instances; synthetic metadata is preserved, no decoding or video frame accuracy is claimed." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "independent", "outcome": "native-synthetic-raf", "result": { "idType": "number", "calls": [ { "owner": "second" } ], "listeners": 0 }, "scope": "Real browser requestAnimationFrame and actual proxy instances; synthetic metadata is preserved, no decoding or video frame accuracy is claimed." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "callback", "outcome": "native-synthetic-raf", "result": { "idType": "number", "calls": [ { "owner": "first", "time": "number", "mediaTime": 0, "presentedFrames": 0 } ], "listeners": 0 }, "scope": "Real browser requestAnimationFrame and actual proxy instances; synthetic metadata is preserved, no decoding or video frame accuracy is claimed." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "destroy", "outcome": "native-synthetic-raf", "result": { "idType": "number", "calls": [], "listeners": 0 }, "scope": "Real browser requestAnimationFrame and actual proxy instances; synthetic metadata is preserved, no decoding or video frame accuracy is claimed." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "independent", "outcome": "native-synthetic-raf", "result": { "idType": "number", "calls": [ { "owner": "second" } ], "listeners": 0 }, "scope": "Real browser requestAnimationFrame and actual proxy instances; synthetic metadata is preserved, no decoding or video frame accuracy is claimed." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "callback", "outcome": "native-synthetic-raf", "result": { "idType": "number", "calls": [ { "owner": "first", "time": "number", "mediaTime": 0, "presentedFrames": 0 } ], "listeners": 0 }, "scope": "Real browser requestAnimationFrame and actual proxy instances; synthetic metadata is preserved, no decoding or video frame accuracy is claimed." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "destroy", "outcome": "native-synthetic-raf", "result": { "idType": "number", "calls": [], "listeners": 0 }, "scope": "Real browser requestAnimationFrame and actual proxy instances; synthetic metadata is preserved, no decoding or video frame accuracy is claimed." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "independent", "outcome": "native-synthetic-raf", "result": { "idType": "number", "calls": [ { "owner": "second" } ], "listeners": 0 }, "scope": "Real browser requestAnimationFrame and actual proxy instances; synthetic metadata is preserved, no decoding or video frame accuracy is claimed." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "pause-frame", "outcome": "native-decoded-video-race", "result": { "before": 2, "after": 2, "paused": true, "frames": 0 }, "state": { "events": [ "video:waiting", "video:loadstart", "video:loadedmetadata", "video:durationchange", "video:progress", "video:loadeddata", "video:canplay", "video:canplaythrough", "video:progress", "video:play", "video:playing", "video:timeupdate", "video:waiting", "video:pause", "destroy" ], "draws": 2, "error": null, "audioContext": "closed", "frames": 0 }, "scope": "Actual SDK MP4 decoding and browser clock/RAF; frame delivery or two raw VideoSample deliveries before CanvasSink conversion control interleaving. Source/seek ownership, pause and timeupdate reentry verified; not long-run AV sync or a mock codec." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "seek-source", "outcome": "native-decoded-video-race", "result": { "before": 2, "after": 2, "heldReads": 1, "currentIteratorKept": true, "frames": 0, "time": 0, "error": null }, "state": { "events": [ "video:waiting", "video:loadstart", "video:loadedmetadata", "video:durationchange", "video:progress", "video:loadeddata", "video:canplay", "video:canplaythrough", "video:progress", "video:seeking", "video:waiting", "video:waiting", "video:loadstart", "video:loadedmetadata", "video:durationchange", "video:progress", "video:loadeddata", "video:canplay", "video:canplaythrough", "video:progress", "destroy" ], "draws": 2, "error": null, "audioContext": "closed", "frames": 0 }, "scope": "Actual SDK MP4 decoding and browser clock/RAF; frame delivery or two raw VideoSample deliveries before CanvasSink conversion control interleaving. Source/seek ownership, pause and timeupdate reentry verified; not long-run AV sync or a mock codec." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "seek-newer", "outcome": "native-decoded-video-race", "result": { "before": 2, "after": 2, "heldReads": 1, "currentIteratorKept": true, "frames": 0, "time": 5, "error": null }, "state": { "events": [ "video:waiting", "video:loadstart", "video:loadedmetadata", "video:durationchange", "video:progress", "video:loadeddata", "video:canplay", "video:canplaythrough", "video:progress", "video:seeking", "video:waiting", "video:seeking", "video:waiting", "video:seeked", "destroy" ], "draws": 2, "error": null, "audioContext": "closed", "frames": 0 }, "scope": "Actual SDK MP4 decoding and browser clock/RAF; frame delivery or two raw VideoSample deliveries before CanvasSink conversion control interleaving. Source/seek ownership, pause and timeupdate reentry verified; not long-run AV sync or a mock codec." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "timeupdate-pause", "outcome": "native-decoded-video-race", "result": { "paused": true, "frames": 0 }, "state": { "events": [ "video:waiting", "video:loadstart", "video:loadedmetadata", "video:durationchange", "video:progress", "video:loadeddata", "video:canplay", "video:canplaythrough", "video:progress", "video:play", "video:playing", "video:timeupdate", "video:pause", "destroy" ], "draws": 1, "error": null, "audioContext": "closed", "frames": 0 }, "scope": "Actual SDK MP4 decoding and browser clock/RAF; frame delivery or two raw VideoSample deliveries before CanvasSink conversion control interleaving. Source/seek ownership, pause and timeupdate reentry verified; not long-run AV sync or a mock codec." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "seek-pool", "outcome": "native-decoded-video-race", "result": { "before": 1220654181, "after": 1220654181, "timestamp": 5.041666666666667, "currentFrameUnchanged": true, "time": 5 }, "state": { "events": [ "video:waiting", "video:loadstart", "video:loadedmetadata", "video:durationchange", "video:progress", "video:loadeddata", "video:canplay", "video:canplaythrough", "video:progress", "video:seeking", "video:waiting", "video:seeking", "video:waiting", "video:seeking", "video:waiting", "video:seeked", "destroy" ], "draws": 2, "error": null, "audioContext": "closed", "frames": 0 }, "scope": "Actual SDK MP4 decoding and browser clock/RAF; frame delivery or two raw VideoSample deliveries before CanvasSink conversion control interleaving. Source/seek ownership, pause and timeupdate reentry verified; not long-run AV sync or a mock codec." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "pause-frame", "outcome": "native-decoded-video-race", "result": { "before": 2, "after": 2, "paused": true, "frames": 0 }, "state": { "events": [ "video:waiting", "video:loadstart", "video:loadedmetadata", "video:durationchange", "video:progress", "video:loadeddata", "video:canplay", "video:canplaythrough", "video:progress", "video:play", "video:playing", "video:timeupdate", "video:waiting", "video:pause", "destroy" ], "draws": 2, "error": null, "audioContext": "closed", "frames": 0 }, "scope": "Actual SDK MP4 decoding and browser clock/RAF; frame delivery or two raw VideoSample deliveries before CanvasSink conversion control interleaving. Source/seek ownership, pause and timeupdate reentry verified; not long-run AV sync or a mock codec." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "seek-source", "outcome": "native-decoded-video-race", "result": { "before": 2, "after": 2, "heldReads": 1, "currentIteratorKept": true, "frames": 0, "time": 0, "error": null }, "state": { "events": [ "video:waiting", "video:loadstart", "video:loadedmetadata", "video:durationchange", "video:progress", "video:loadeddata", "video:canplay", "video:canplaythrough", "video:progress", "video:seeking", "video:waiting", "video:waiting", "video:loadstart", "video:loadedmetadata", "video:durationchange", "video:progress", "video:loadeddata", "video:canplay", "video:canplaythrough", "video:progress", "destroy" ], "draws": 2, "error": null, "audioContext": "closed", "frames": 0 }, "scope": "Actual SDK MP4 decoding and browser clock/RAF; frame delivery or two raw VideoSample deliveries before CanvasSink conversion control interleaving. Source/seek ownership, pause and timeupdate reentry verified; not long-run AV sync or a mock codec." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "seek-newer", "outcome": "native-decoded-video-race", "result": { "before": 2, "after": 2, "heldReads": 1, "currentIteratorKept": true, "frames": 0, "time": 5, "error": null }, "state": { "events": [ "video:waiting", "video:loadstart", "video:loadedmetadata", "video:durationchange", "video:progress", "video:loadeddata", "video:canplay", "video:canplaythrough", "video:progress", "video:seeking", "video:waiting", "video:seeking", "video:waiting", "video:seeked", "destroy" ], "draws": 2, "error": null, "audioContext": "closed", "frames": 0 }, "scope": "Actual SDK MP4 decoding and browser clock/RAF; frame delivery or two raw VideoSample deliveries before CanvasSink conversion control interleaving. Source/seek ownership, pause and timeupdate reentry verified; not long-run AV sync or a mock codec." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "timeupdate-pause", "outcome": "native-decoded-video-race", "result": { "paused": true, "frames": 0 }, "state": { "events": [ "video:waiting", "video:loadstart", "video:loadedmetadata", "video:durationchange", "video:progress", "video:loadeddata", "video:canplay", "video:canplaythrough", "video:progress", "video:play", "video:playing", "video:timeupdate", "video:pause", "destroy" ], "draws": 1, "error": null, "audioContext": "closed", "frames": 0 }, "scope": "Actual SDK MP4 decoding and browser clock/RAF; frame delivery or two raw VideoSample deliveries before CanvasSink conversion control interleaving. Source/seek ownership, pause and timeupdate reentry verified; not long-run AV sync or a mock codec." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "seek-pool", "outcome": "native-decoded-video-race", "result": { "before": 1220654181, "after": 1220654181, "timestamp": 5.041666666666667, "currentFrameUnchanged": true, "time": 5 }, "state": { "events": [ "video:waiting", "video:loadstart", "video:loadedmetadata", "video:durationchange", "video:progress", "video:loadeddata", "video:canplay", "video:canplaythrough", "video:progress", "video:seeking", "video:waiting", "video:seeking", "video:waiting", "video:seeking", "video:waiting", "video:seeked", "destroy" ], "draws": 2, "error": null, "audioContext": "closed", "frames": 0 }, "scope": "Actual SDK MP4 decoding and browser clock/RAF; frame delivery or two raw VideoSample deliveries before CanvasSink conversion control interleaving. Source/seek ownership, pause and timeupdate reentry verified; not long-run AV sync or a mock codec." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "pause-frame", "outcome": "unsupported-capability-control", "state": { "events": [ "video:error", "destroy" ], "draws": 0, "error": { "code": 4, "message": "undefined is not a constructor (evaluating 'new t')" }, "audioContext": "not-created", "frames": 0 }, "scope": "Actual SDK MP4 decoding and browser clock/RAF; frame delivery or two raw VideoSample deliveries before CanvasSink conversion control interleaving. Source/seek ownership, pause and timeupdate reentry verified; not long-run AV sync or a mock codec." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "seek-source", "outcome": "unsupported-capability-control", "state": { "events": [ "video:waiting", "video:loadstart", "video:error", "destroy" ], "draws": 0, "error": { "code": 4, "message": "undefined is not a constructor (evaluating 'new t')" }, "audioContext": "not-created", "frames": 0 }, "scope": "Actual SDK MP4 decoding and browser clock/RAF; frame delivery or two raw VideoSample deliveries before CanvasSink conversion control interleaving. Source/seek ownership, pause and timeupdate reentry verified; not long-run AV sync or a mock codec." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "seek-newer", "outcome": "unsupported-capability-control", "state": { "events": [ "video:waiting", "video:loadstart", "video:error", "destroy" ], "draws": 0, "error": { "code": 4, "message": "undefined is not a constructor (evaluating 'new t')" }, "audioContext": "not-created", "frames": 0 }, "scope": "Actual SDK MP4 decoding and browser clock/RAF; frame delivery or two raw VideoSample deliveries before CanvasSink conversion control interleaving. Source/seek ownership, pause and timeupdate reentry verified; not long-run AV sync or a mock codec." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "timeupdate-pause", "outcome": "unsupported-capability-control", "state": { "events": [ "video:waiting", "video:loadstart", "video:error", "destroy" ], "draws": 0, "error": { "code": 4, "message": "undefined is not a constructor (evaluating 'new t')" }, "audioContext": "not-created", "frames": 0 }, "scope": "Actual SDK MP4 decoding and browser clock/RAF; frame delivery or two raw VideoSample deliveries before CanvasSink conversion control interleaving. Source/seek ownership, pause and timeupdate reentry verified; not long-run AV sync or a mock codec." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "scenario": "seek-pool", "outcome": "unsupported-capability-control", "state": { "events": [ "video:waiting", "video:loadstart", "video:error", "destroy" ], "draws": 0, "error": { "code": 4, "message": "undefined is not a constructor (evaluating 'new t')" }, "audioContext": "not-created", "frames": 0 }, "scope": "Actual SDK MP4 decoding and browser clock/RAF; frame delivery or two raw VideoSample deliveries before CanvasSink conversion control interleaving. Source/seek ownership, pause and timeupdate reentry verified; not long-run AV sync or a mock codec." }, { "project": "chromium", "browser": "153.0.8010.12", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "outcome": "native-mp4-playback-observed", "scope": "Identified published or candidate proxy with actual core5.4.0; native MP4 pixels/clock or explicitly unsupported Windows WebKit APIs. No HLS or long-run AV-sync acceptance." }, { "project": "firefox", "browser": "155.0", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "outcome": "native-mp4-playback-observed", "scope": "Identified published or candidate proxy with actual core5.4.0; native MP4 pixels/clock or explicitly unsupported Windows WebKit APIs. No HLS or long-run AV-sync acceptance." }, { "project": "webkit", "browser": "26.6", "platform": "win32", "implementation": "candidate-artifact", "sha256": "9c89a729197593ffcab11b64813b312f588f5515d2cb8acb0537d0a389a5209c", "outcome": "verified-unsupported-capability-control", "scope": "Identified published or candidate proxy with actual core5.4.0; native MP4 pixels/clock or explicitly unsupported Windows WebKit APIs. No HLS or long-run AV-sync acceptance." } ], "poolBeforeFix": { "failedPixelChecks": 2, "passedCapabilityControls": 1, "report": "refactor/.cache/mb05-pool-before-results/report.json", "reportSha256": "36a712a6a941d8eb7176d00d2c633d4be8d4b89ea8288c40c105b011af363c97", "results": "refactor/.cache/mb05-pool-before-results/results" }, "report": "refactor/.cache/mb05-video-terminal-results/report.json", "reportSha256": "9346e4cf7e4a53fb8ca6ce7600198f5db4e518ef40f72b19df2ebb5d331c88aa", "results": "refactor/.cache/mb05-video-terminal-results/results", "sameNativeAssertionsOnPreviousMain": { "passedCapabilityControls": 5, "failedNativeRaces": 10, "report": "refactor/.cache/mb05-video-frozen-terminal-results/report.json", "reportSha256": "ad8319c1618f54b9df7d40ec5f681d17abc72147db8ead1da66eb9977be4d908", "results": "refactor/.cache/mb05-video-frozen-terminal-results/results" } }, "checks": [ { "command": "yarn test:mediabunny", "result": "pass", "tests": 146 }, { "command": "main/legacy shim, coordinator, load and video tests", "result": "pass", "eachRun": 110 }, { "command": "same video assertions on frozen main", "result": "expected historical failures", "passed": 7, "failed": 31 }, { "command": "package strict tsc and focused eslint", "result": "pass", "productionTypeScriptModules": 20, "temporaryAudioDeclarationBridges": 1 }, { "command": "three format build and ESM factory", "result": "pass" }, { "command": "five browser specs on final built main", "result": "pass", "tests": 54 }, { "command": "yarn ci:check", "result": "pass", "tests": { "unit": 1152, "engineering": 14, "baseline": 141, "mainTotal": 1307, "repeatedContractExecutions": 44 }, "strictProductionTypeScriptFiles": 310, "log": "refactor/.cache/mb05-video-ci.log" } ], "limitations": [ "AudioEngine remains JS behind an explicit declaration bridge; audio-node/clock ownership is MB-06.", "Ten native frame races use actual decoded frames or raw samples with controlled delivery delay; not long-run AV sync.", "Eleven Windows WebKit capability controls are not playback; no general Safari claim.", "Existing undecodable-track fallback and readiness need MB-CAP-01/MB-READY-01 review.", "HLS UI and full concurrent selection topology remain MB-07.", "Cleanup invokes and observes SDK iterator return without waiting for an obsolete read; the SDK controls underlying decoder completion.", "No npm release acceptance is implied." ], "postCiVerification": { "runtimeSourceUnchanged": true, "browserTeardownWaiter": "Wait for asynchronous AudioContext close within the existing expect timeout; no production change", "checks": [ "focused eslint --no-fix", "54 final browser cases", "15 frozen browser controls" ], "logs": [ "refactor/.cache/mb05-video-lint.log", "refactor/.cache/mb05-video-browser-terminal.log", "refactor/.cache/mb05-video-browser-frozen-terminal.log" ] } }