mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-11 14:50:02 +00:00
fix(core): avoid live volume probe during render
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "Distributed: static audio must not materialize future nested GSAP state",
|
||||
"description": "Regression for #2809. A static-volume audio element must not trigger live-timeline envelope probing in a non-zero-start chunk and prematurely apply a nested composition's future terminal visibility set.",
|
||||
"tags": ["distributed", "audio", "sub-composition", "regression"],
|
||||
"minPsnr": 40,
|
||||
"maxFrameFailures": 0,
|
||||
"minAudioCorrelation": 0,
|
||||
"maxAudioLagWindows": 120,
|
||||
"renderConfig": {
|
||||
"fps": 24,
|
||||
"chunkSize": 120
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:44f07badd4fc8b99f7430ea23d7009263787656ac725d0a70a9c68f5c15c9ab1
|
||||
size 87166
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:29abd7d2f00d654654348b10cdef4c9c6f91e52451c1a8f007605bef7ab12017
|
||||
size 61986
|
||||
Binary file not shown.
+56
@@ -0,0 +1,56 @@
|
||||
<template id="child-template">
|
||||
<div
|
||||
id="child-root"
|
||||
data-composition-id="child"
|
||||
data-start="0"
|
||||
data-duration="10"
|
||||
data-width="640"
|
||||
data-height="360"
|
||||
>
|
||||
<div class="future-state">
|
||||
<strong>MUST BE VISIBLE</strong>
|
||||
<span>static audio cannot seek visual state</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
[data-composition-id="child"] {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
width: 640px;
|
||||
height: 360px;
|
||||
}
|
||||
|
||||
[data-composition-id="child"] .future-state {
|
||||
display: grid;
|
||||
gap: 14px;
|
||||
min-width: 420px;
|
||||
padding: 42px;
|
||||
border: 8px solid #d8ffe5;
|
||||
border-radius: 28px;
|
||||
color: #f4fff7;
|
||||
background: #087443;
|
||||
box-shadow: 0 24px 70px rgb(0 0 0 / 45%);
|
||||
font: 22px/1.3 Arial, sans-serif;
|
||||
text-align: center;
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
[data-composition-id="child"] .future-state strong {
|
||||
font-size: 38px;
|
||||
letter-spacing: 0.04em;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
window.__timelines = window.__timelines || {};
|
||||
const timeline = gsap.timeline({ paused: true });
|
||||
timeline.to(".future-state", { opacity: 0.2, duration: 0.25 }, 9.4);
|
||||
timeline.set(".future-state", { visibility: "hidden" }, 9.65);
|
||||
window.__timelines.child = timeline;
|
||||
})();
|
||||
</script>
|
||||
</template>
|
||||
@@ -0,0 +1,59 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Static volume with future nested set</title>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
width: 640px;
|
||||
height: 360px;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
background: #07111f;
|
||||
}
|
||||
|
||||
#root,
|
||||
#child-host {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
width: 640px;
|
||||
height: 360px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div
|
||||
id="root"
|
||||
data-composition-id="main"
|
||||
data-start="0"
|
||||
data-duration="12"
|
||||
data-width="640"
|
||||
data-height="360"
|
||||
>
|
||||
<div
|
||||
id="child-host"
|
||||
data-composition-id="child"
|
||||
data-composition-src="compositions/child.html"
|
||||
data-start="2"
|
||||
data-duration="10"
|
||||
data-track-index="0"
|
||||
></div>
|
||||
<audio
|
||||
id="bed"
|
||||
src="assets/silence.wav"
|
||||
data-start="0"
|
||||
data-duration="12"
|
||||
data-track-index="1"
|
||||
data-volume="1"
|
||||
></audio>
|
||||
</div>
|
||||
<script>
|
||||
window.__timelines = window.__timelines || {};
|
||||
const timeline = gsap.timeline({ paused: true });
|
||||
timeline.to({}, { duration: 12 }, 0);
|
||||
window.__timelines.main = timeline;
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user