From 539a187ecd3b801a8c88a7f0045655e7a0106e50 Mon Sep 17 00:00:00 2001 From: Nelson Osacky Date: Mon, 22 Jun 2026 13:40:44 +0200 Subject: [PATCH 1/3] docs(replay): Add THIRD_PARTY_NOTICES entry for SimpleMp4FrameMuxer SimpleMp4FrameMuxer is adapted from the flutter_screen_recorder library and carries a complete attribution header, but the corresponding entry in THIRD_PARTY_NOTICES.md was never added. Warden's check-code-attribution flags the missing entry as independently required regardless of header completeness. Co-Authored-By: Claude Opus 4.8 (1M context) --- THIRD_PARTY_NOTICES.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index c1fa7e8f65..451bc9a9cc 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -513,3 +513,40 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` + +--- + +## fzyzcjy — Flutter Screen Recorder (MIT) + +**Source:** https://github.com/fzyzcjy/flutter_screen_recorder (Commit: dce41cec25c66baf42c6bac4198e95874ce3eb9d)
+**License:** MIT License
+**Copyright:** Copyright (c) 2021 fzyzcjy + +### Scope + +The Sentry Android Replay SDK includes an adapted version of `SimpleMp4FrameMuxer` from the flutter_screen_recorder library, used to mux encoded video frames into an MP4 file. The code resides in `io.sentry.android.replay.video.SimpleMp4FrameMuxer`. + +``` +Copyright (c) 2021 fzyzcjy + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, +sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT +NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +In addition to the standard MIT license, this library requires the following: The recorder itself +only saves data on user's phone locally, thus it does not have any privacy problem. However, if +you are going to get the records out of the local storage (e.g. upload the records to your +server), please explicitly ask the user for permission, and promise to only use the records to +debug your app. This is a part of the license of this library. +``` From 07c42d5d986b217b06837b814678f7e2ad2aa7a6 Mon Sep 17 00:00:00 2001 From: Nelson Osacky Date: Mon, 22 Jun 2026 13:58:10 +0200 Subject: [PATCH 2/3] docs(replay): Cover all adapted flutter_screen_recorder and Curtains files SimpleFrameMuxer and SimpleVideoEncoder are adapted from the same flutter_screen_recorder library as SimpleMp4FrameMuxer; fold all three into one notice entry. Also extend the existing Square Curtains scope to list io.sentry.android.replay.Windows, which is adapted from Curtains but was not mentioned. Co-Authored-By: Claude Opus 4.8 (1M context) --- THIRD_PARTY_NOTICES.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index 451bc9a9cc..925add4a71 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -154,7 +154,7 @@ limitations under the License. ### Scope -The Sentry Java SDK includes an adapted version of Square's Curtains library for null-safe `Window.Callback` handling. The code resides in `io.sentry.android.replay.util.FixedWindowCallback`. +The Sentry Java SDK includes adapted versions of Square's Curtains library for null-safe `Window.Callback` handling and for tracking attached window roots. The code resides in `io.sentry.android.replay.util.FixedWindowCallback` and `io.sentry.android.replay.Windows`. ``` Copyright 2021 Square Inc. @@ -524,7 +524,7 @@ SOFTWARE. ### Scope -The Sentry Android Replay SDK includes an adapted version of `SimpleMp4FrameMuxer` from the flutter_screen_recorder library, used to mux encoded video frames into an MP4 file. The code resides in `io.sentry.android.replay.video.SimpleMp4FrameMuxer`. +The Sentry Android Replay SDK includes adapted versions of the video encoding and muxing classes from the flutter_screen_recorder library, used to encode and mux replay video frames into an MP4 file. The code resides in the `io.sentry.android.replay.video` package and includes `SimpleFrameMuxer`, `SimpleMp4FrameMuxer`, and `SimpleVideoEncoder`. ``` Copyright (c) 2021 fzyzcjy From cc88d278d407d7ba0dbd834563037c2ee73ffad1 Mon Sep 17 00:00:00 2001 From: Nelson Osacky Date: Mon, 22 Jun 2026 14:10:21 +0200 Subject: [PATCH 3/3] fix(replay): Correct adapted-from URL in SimpleVideoEncoder header The attribution header pointed at the upstream SimpleFrameMuxer.kt instead of SimpleVideoEncoder.kt. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../java/io/sentry/android/replay/video/SimpleVideoEncoder.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentry-android-replay/src/main/java/io/sentry/android/replay/video/SimpleVideoEncoder.kt b/sentry-android-replay/src/main/java/io/sentry/android/replay/video/SimpleVideoEncoder.kt index a400be865e..de14aadaaa 100644 --- a/sentry-android-replay/src/main/java/io/sentry/android/replay/video/SimpleVideoEncoder.kt +++ b/sentry-android-replay/src/main/java/io/sentry/android/replay/video/SimpleVideoEncoder.kt @@ -1,6 +1,6 @@ /** * Adapted from - * https://github.com/fzyzcjy/flutter_screen_recorder/blob/dce41cec25c66baf42c6bac4198e95874ce3eb9d/packages/fast_screen_recorder/android/src/main/kotlin/com/cjy/fast_screen_recorder/SimpleFrameMuxer.kt + * https://github.com/fzyzcjy/flutter_screen_recorder/blob/dce41cec25c66baf42c6bac4198e95874ce3eb9d/packages/fast_screen_recorder/android/src/main/kotlin/com/cjy/fast_screen_recorder/SimpleVideoEncoder.kt * * Copyright (c) 2021 fzyzcjy *