From 29f3fe32b20ceadd5136dc43b68d94ccbb76b33c Mon Sep 17 00:00:00 2001 From: ekkoitac Date: Thu, 2 Apr 2026 08:57:34 +0800 Subject: [PATCH] docs: address review comments on Recordly attribution - Update ATTRIBUTION.md to list clamp01() alongside easeOutScreenStudio() and cubicBezier() - Add inline attribution header comment to mathUtils.ts - Add inline attribution header comment to zoomRegionUtils.ts --- ATTRIBUTION.md | 14 ++++++++++++++ README.md | 4 ++++ .../video-editor/videoPlayback/mathUtils.ts | 3 +++ .../video-editor/videoPlayback/zoomRegionUtils.ts | 3 +++ 4 files changed, 24 insertions(+) create mode 100644 ATTRIBUTION.md diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md new file mode 100644 index 000000000..66bd35236 --- /dev/null +++ b/ATTRIBUTION.md @@ -0,0 +1,14 @@ +# Attribution + +OpenScreen thanks the following open-source projects for inspiring and contributing code: + +## Zoom & Pan Animation + +The zoom and pan animation system in OpenScreen was inspired by and ported from [Recordly](https://github.com/Recordly-dev/Recordly). + +The following functions in `src/components/video-editor/videoPlayback/` were ported from Recordly: + +- `mathUtils.ts` — `easeOutScreenStudio()`, `cubicBezier()`, and `clamp01()` +- `zoomRegionUtils.ts` — zoom region strength, chaining, and connected pan transition logic + +We apologize for the omission and thank Recordly's maintainers for their excellent work. diff --git a/README.md b/README.md index 0e9ed4df7..3f4b48f50 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,10 @@ _I'm new to open source, idk what I'm doing lol. If something is wrong please ra Contributions are welcome! If you’d like to help out or see what’s currently being worked on, take a look at the open issues and the [project roadmap](https://github.com/users/siddharthvaddem/projects/3) to understand the current direction of the project and find ways to contribute. +## Attribution + +Third-party attributions are listed in [ATTRIBUTION.md](./ATTRIBUTION.md). + ## License This project is licensed under the [MIT License](./LICENSE). By using this software, you agree that the authors are not liable for any issues, damages, or claims arising from its use. diff --git a/src/components/video-editor/videoPlayback/mathUtils.ts b/src/components/video-editor/videoPlayback/mathUtils.ts index 78c9414f3..b41c0fad2 100644 --- a/src/components/video-editor/videoPlayback/mathUtils.ts +++ b/src/components/video-editor/videoPlayback/mathUtils.ts @@ -1,3 +1,6 @@ +// Ported from Recordly (https://github.com/Recordly-dev/Recordly). +// See ATTRIBUTION.md for details. + export function clamp01(value: number) { return Math.max(0, Math.min(1, value)); } diff --git a/src/components/video-editor/videoPlayback/zoomRegionUtils.ts b/src/components/video-editor/videoPlayback/zoomRegionUtils.ts index 3ceace879..c66f74cc6 100644 --- a/src/components/video-editor/videoPlayback/zoomRegionUtils.ts +++ b/src/components/video-editor/videoPlayback/zoomRegionUtils.ts @@ -1,3 +1,6 @@ +// Ported from Recordly (https://github.com/Recordly-dev/Recordly). +// See ATTRIBUTION.md for details. + import type { ZoomFocus, ZoomRegion } from "../types"; import { ZOOM_DEPTH_SCALES } from "../types"; import { TRANSITION_WINDOW_MS, ZOOM_IN_TRANSITION_WINDOW_MS } from "./constants";