mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-11 14:50:02 +00:00
perf(studio-server): coordinate cancelable thumbnail generation (#2720)
* perf(studio): schedule adaptive timeline thumbnails * perf(studio): bound thumbnail decoding resources * perf(studio): virtualize timeline thumbnail media * perf(studio): prioritize timeline thumbnail work * perf(studio-server): coordinate cancelable thumbnail generation --------- Co-authored-by: Codex <codex@local>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
export type ThumbnailMode = "adaptive" | "hidden";
|
||||
export type ThumbnailRuntimePolicy = "follow-preference" | "force-hidden" | "legacy-default";
|
||||
|
||||
// "Adaptive" currently means the scheduler pauses rich work while scrolling.
|
||||
// The mode name leaves room for finer-grained runtime heuristics later.
|
||||
|
||||
const rawPolicy = import.meta.env.VITE_STUDIO_TIMELINE_THUMBNAIL_POLICY;
|
||||
|
||||
const studioThumbnailRuntimePolicy: ThumbnailRuntimePolicy =
|
||||
rawPolicy === "force-hidden" || rawPolicy === "legacy-default" ? rawPolicy : "follow-preference";
|
||||
|
||||
export function defaultThumbnailMode(
|
||||
storedMode: ThumbnailMode | undefined,
|
||||
policy: ThumbnailRuntimePolicy = studioThumbnailRuntimePolicy,
|
||||
): ThumbnailMode {
|
||||
return storedMode ?? (policy === "legacy-default" ? "hidden" : "adaptive");
|
||||
}
|
||||
|
||||
export function effectiveThumbnailMode(
|
||||
preferredMode: ThumbnailMode,
|
||||
policy: ThumbnailRuntimePolicy = studioThumbnailRuntimePolicy,
|
||||
): ThumbnailMode {
|
||||
return policy === "force-hidden" ? "hidden" : preferredMode;
|
||||
}
|
||||
Reference in New Issue
Block a user