-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(svc-codec): VP9 and AV1 support #1434
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Conflicts: # packages/client/src/rtc/videoLayers.ts
# Conflicts: # packages/client/src/devices/CameraManager.ts # packages/client/src/rtc/Publisher.ts # packages/client/src/rtc/videoLayers.ts # packages/client/src/types.ts # sample-apps/react/react-dogfood/components/MeetingUI.tsx
oliverlaz
changed the title
feat(vp9): experimental VP9 support
feat(svc-codec): VP9 and AV1 support
Oct 10, 2024
oliverlaz
requested review from
myandrienko,
santhoshvai,
kristian-mkd,
szuperaz,
isekovanic,
MartinCupela,
khushal87 and
arnautov-anton
October 16, 2024 08:38
santhoshvai
approved these changes
Oct 16, 2024
santhoshvai
reviewed
Oct 16, 2024
# Conflicts: # packages/client/src/devices/CameraManager.ts
oliverlaz
added a commit
that referenced
this pull request
Oct 17, 2024
Follow-up to #1434. Allows specifying publish options for calls accepted through Push Notifications config.
santhoshvai
added a commit
that referenced
this pull request
Oct 29, 2024
commit 1e24dafe507e846288fae3fa137a3834983a783d Author: Zachary Ebenfeld <[email protected]> Date: Tue Oct 29 05:44:06 2024 -0400 docs: changed call[0] to calls[0] in docs (#1540) commit 4efe03b2d9d2731857abbd535ab16b9cfcaa2c88 Author: GitHub Actions Bot <> Date: Mon Oct 28 14:37:14 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.4.5 commit 55b7eacff7ce324d692133edb64ad6a761c9c315 Author: GitHub Actions Bot <> Date: Mon Oct 28 14:36:50 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.2.5 commit ba50ee72d83fd96584fbb58135815b9b53e47dea Author: GitHub Actions Bot <> Date: Mon Oct 28 14:36:31 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.7.3 commit ccbf12f50fe254fabd835bb7859ef1407063f9c4 Author: GitHub Actions Bot <> Date: Mon Oct 28 14:36:22 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.1.8 commit b0b1e5bdf36b728835b345b80ac23c13cba10d4a Author: GitHub Actions Bot <> Date: Mon Oct 28 14:35:58 2024 +0000 chore(@stream-io/video-client): release version 1.9.3 commit 6274cac2ecf155aa6ce0c6d764229e0e9cd39a6a Author: Matvei Andrienko <[email protected]> Date: Mon Oct 28 15:31:31 2024 +0100 fix: make device selection by device id exact (#1538) Somewhere around Chrome v126 a new behavior was introduced, and the `deviceId: string` constraint when querying `getUserMedia` was no longer respected. The default device was always returned instead. Using the `deviceId: { exact: string }` constraint seems to solve the issue. However, it also can cause the `OvercontrainedError` exception when device id is not valid. We handle it by falling back to default device in this case. commit 30686e2db5fd9aa3f9353626cf5ba6327ca9c180 Author: GitHub Actions Bot <> Date: Tue Oct 22 12:22:14 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.4.4 commit d111ba43b18daec0531b0f42869da730d529845a Author: GitHub Actions Bot <> Date: Tue Oct 22 12:21:43 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.2.4 commit eb3afb4dc33289cde0639cc109194971d31f51e0 Author: Santhosh Vaiyapuri <[email protected]> Date: Tue Oct 22 14:18:17 2024 +0200 fix: added workaround for possible multiple createDevice calls on remounting (#1532) small workaround where SDK wont send same tokens again commit 7be61d27f15d1ef3acb5434661ee30d0b9e33e9a Author: Oliver Lazoroski <[email protected]> Date: Tue Oct 22 13:38:35 2024 +0200 fix: don't apply participant aspect ratios in screen share mode (#1531) ### Overview Applying portrait mode aspect ratios (9/16, or any similar) breaks the screen-sharing layout (some elements go off-screen). Until we provide a proper solution, we restore to the default aspect ratio once screen sharing is started. In the long run, we should consider separating the screen share layout configuration from the regular one. Context: https://getstream.slack.com/archives/C07KX5D7MFX/p1729017984964169?thread_ts=1727981915.684569&cid=C07KX5D7MFX This PR also includes a few other low-hanging fruits. commit 82cb3e388484d36d6468e55c45d72e461ab38d5a Author: GitHub Actions Bot <> Date: Mon Oct 21 17:30:20 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.4.3 commit d1ba0146b7764d75877fdc29f43b80bdaf67a81f Author: GitHub Actions Bot <> Date: Mon Oct 21 17:29:57 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.2.3 commit a6b1db0a4cf05c05f59c29c9d3f70730a370a8e7 Author: GitHub Actions Bot <> Date: Mon Oct 21 17:29:39 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.7.2 commit c23dd0c013f035044e70db0919085cc21d006bb7 Author: GitHub Actions Bot <> Date: Mon Oct 21 17:29:30 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.1.7 commit f6ae46ae30523f257ab3d4034381ccb69e92c630 Author: GitHub Actions Bot <> Date: Mon Oct 21 17:29:08 2024 +0000 chore(@stream-io/video-client): release version 1.9.2 commit eac4e4ebd2575f5269f65db7173107d5cafab9bf Author: Kristian <[email protected]> Date: Mon Oct 21 19:26:22 2024 +0200 fix(client): invoke call.reject only when reject param specified (#1530) ### Issue Rejecting a call which has already been ended results in 400 error from backend. To prevent this error we should not allow `call.reject()` to be called on `call.ended` event. ### Fix This PR updates the `call.leave` method to make sure that `reject()` can be invoked inside `leave()` only if the reject input param is set to `true`. ```ts leave = async ({ reject = false, // <-- only if this param is explicitly sent with value true reason = 'user is leaving the call', }: CallLeaveOptions = {}) => { ``` commit cc7aa3bc677d906d611f9d400a11a9d07f2b93f3 Author: GitHub Actions Bot <> Date: Fri Oct 18 13:41:06 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.4.2 commit e2076f3008c652550f33a0c8564ea8125ee8a5b5 Author: GitHub Actions Bot <> Date: Fri Oct 18 13:40:43 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.2.2 commit cd3e9e5557a233b5613f0f5558acd1d43856ad86 Author: GitHub Actions Bot <> Date: Fri Oct 18 13:40:24 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.7.1 commit d0a45aacb69c014ac1428c8a7560e9c8fc4b7181 Author: GitHub Actions Bot <> Date: Fri Oct 18 13:40:14 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.1.6 commit a016665528813b8c4eb219513a59989edbcfadd4 Author: GitHub Actions Bot <> Date: Fri Oct 18 13:39:51 2024 +0000 chore(@stream-io/video-client): release version 1.9.1 commit 96cadd05e995392eac4ec300828d07b287d691a0 Author: Oliver Lazoroski <[email protected]> Date: Fri Oct 18 15:37:05 2024 +0200 fix(svc): announce downscaled layers in setPublisher (#1526) Fixes an issue where SVC layers weren't announced correctly to the SFU. Although this is harmless for customers, our internal dashboards may show incorrect data. Context: https://getstream.slack.com/archives/C04ATV49DU3/p1729242858098099 commit aaa17e638312e18f94eb561fc21c69ce5814f37c Author: Kristian <[email protected]> Date: Fri Oct 18 14:04:25 2024 +0200 fix(rn-dogfood): Fix modals orientation bug (#1525) - Fixes the modals in dogfood app - before the fix: when the app in is landscape mode and a modal is being open the app is set to portrait mode - after the fix: the modals support landscape mode as well and work as expected in landscape mode commit b93479e6c34f5b2c45cedf7257f603970e1d432b Author: Oliver Lazoroski <[email protected]> Date: Thu Oct 17 13:52:54 2024 +0200 fix: use debug level logs for anon/guest users commit 464a71c68d1e1d02965d1715ee1052a212246fd0 Author: GitHub Actions Bot <> Date: Thu Oct 17 10:44:32 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.4.1 commit 188961988bacdede228f800b6f8e2250666086ba Author: GitHub Actions Bot <> Date: Thu Oct 17 10:44:09 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.2.1 commit a2ae74e8097bf1e58d040e4a7696ecadfc435843 Author: Oliver Lazoroski <[email protected]> Date: Thu Oct 17 12:41:15 2024 +0200 fix: allow specifying publish options in PN config (#1524) Follow-up to #1434. Allows specifying publish options for calls accepted through Push Notifications config. commit 146a638abf31e900ebab42fa78750721ecc2a6ce Author: GitHub Actions Bot <> Date: Wed Oct 16 12:49:31 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.4.0 commit 8415992d76ae687c8c6993a2f1957535cefce5b5 Author: GitHub Actions Bot <> Date: Wed Oct 16 12:49:09 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.2.0 commit e05676afe419a4c1e898111cfd78608a81d67d71 Author: GitHub Actions Bot <> Date: Wed Oct 16 12:48:51 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.7.0 commit 88ee04d6109d65a1f83ee68608601779c054fda4 Author: GitHub Actions Bot <> Date: Wed Oct 16 12:48:42 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.1.5 commit cf6c58609a2a93843a1f4861a66d41d4eb062ab6 Author: GitHub Actions Bot <> Date: Wed Oct 16 12:48:20 2024 +0000 chore(@stream-io/video-client): release version 1.9.0 commit c9c8530d48c9206dc3803e6aa6cc1859fd433920 Author: Oliver Lazoroski <[email protected]> Date: Wed Oct 16 14:45:32 2024 +0200 feat(svc-codec): VP9 and AV1 support (#1434) ### Overview Enables support for SVC codecs (VP9 and AV1). Adds new API that allows codec overriding: - `call.updatePublishOptions({ preferredCodec: 'vp9' })` ### Implementation notes: - the SDK will now check whether the platform supports the preferred codec, otherwise, it will fall back to a known supported codec - for testing purposes, use `call.updatePublishOptions({ forceCodec: 'vp9' })` The SDK ships a predefined bitrate lookup table now; in the future, this mapping should come from our backend. The bitrates used here enable ~30-50% less network usage while maintaining the same video quality (h264, vp9). - when SVC codec is used, the SDK now supports the dynamic update of the `scalabilityMode` - in Simulcast, the SDK can turn off any layer when instructed by the SFU - this allows further CPU/bandwidth reductions - default codecs: - Firefox - always uses `vp8` as it has intermittent issues when other codecs are used - Safari - always uses `h264` as it is hardware accelerated and yields best performance - RN iOS and iPadOS - always uses `h264` as it is hardware-accelerated - RN Android - uses `vp8` by default https://github.com/GetStream/protocol/pull/776/ --------- Co-authored-by: Suchith.J.N <[email protected]> Co-authored-by: Santhosh Vaiyapuri <[email protected]> commit 1b8a68d47b10023e34cbdb5790cad5f2b75cd105 Author: GitHub Actions Bot <> Date: Wed Oct 16 12:06:54 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.3.12 commit 9b1aa12d9ab0ab29d2b75df4cddadbb14474759d Author: GitHub Actions Bot <> Date: Wed Oct 16 12:06:32 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.1.6 commit 1fdbe169c0bb394aba28c46ffc12964a12a0c2b0 Author: GitHub Actions Bot <> Date: Wed Oct 16 12:06:11 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.6.7 commit 2cda8a5fe8f0e25bda2e6c368dad86d3554e2ba3 Author: GitHub Actions Bot <> Date: Wed Oct 16 12:06:00 2024 +0000 chore(@stream-io/video-styling): release version 1.1.1 commit b83cae4793b30867ce55240142edb4b32d81822b Author: GitHub Actions Bot <> Date: Wed Oct 16 12:05:52 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.1.4 commit bc8380fd968bcd41a733341c35e29cd12ae23831 Author: GitHub Actions Bot <> Date: Wed Oct 16 12:05:28 2024 +0000 chore(@stream-io/video-client): release version 1.8.4 commit 9eb2936379726923ee43491ce965003e0e7f2c37 Author: Matvei Andrienko <[email protected]> Date: Wed Oct 16 13:54:31 2024 +0200 fix: PiP video placeholder (#1509) Adds a prop similar to `VideoPlaceholder`, but the provided component is rendered when the participant's video is playing in picture-in-picture mode. --------- Co-authored-by: Oliver Lazoroski <[email protected]> commit 562b5cca77264330d08dff5305eccc489970076a Author: Matvei Andrienko <[email protected]> Date: Wed Oct 16 13:54:04 2024 +0200 fix: ignore camera direction for desktop devices (#1521) Our default call types include a default setting for camera direction (user-facing). Having this setting applied by default is useful for mobile devices, but on desktop devices where camera direction reporting is not reliable it leads to confusion, because it can cause a device other than the system default to be used by default. commit fc20668540a96db5c7c9eff79225a54ff5d51309 Author: Oliver Lazoroski <[email protected]> Date: Wed Oct 16 13:51:50 2024 +0200 chore: disable auto-release commit 6d25558a3839eac579c2334695fe52e96bc020b8 Author: Martin Mitrevski <[email protected]> Date: Wed Oct 16 13:50:19 2024 +0200 docs: Added more details for anon users (#1522) Few tickets on support came up, we need to be more clear in the docs. commit 0b262dcba74ca30bc02e7d2f318b7791c5d71c81 Author: GitHub Actions Bot <> Date: Wed Oct 16 11:09:58 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.3.11 commit 1bed36e199b14541d687fb653686649e03d30b7f Author: GitHub Actions Bot <> Date: Wed Oct 16 11:09:35 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.1.5 commit 44ef7d2e69a910be45b2d3a7643c3f58e0f29803 Author: Santhosh Vaiyapuri <[email protected]> Date: Wed Oct 16 13:06:18 2024 +0200 fix(react-native): set objectFit based on actual video track dimensions (#1520) commit 35ed5238e771eaa1793eac1fc8f11e0009ac8448 Author: Kristian <[email protected]> Date: Tue Oct 15 11:18:53 2024 +0200 chore: Upgrade to expo version 51 (#1518) - Upgrades the expo version in the `expo-video-sample app` to 51 - Fixes android startup issues related with the notifee dependency commit 4b12c61111ed8cffea82a500dfc9ce07dba1d525 Author: GitHub Actions Bot <> Date: Mon Oct 14 12:46:05 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.6.6 commit 9b1121966d3e3f7610fbbca386b8837563203e86 Author: Oliver Lazoroski <[email protected]> Date: Mon Oct 14 14:43:10 2024 +0200 fix: check for user capabilities before rendering call control buttons (#1513) Adds OwnCapability checks on the Call Control buttons. They shouldn't be rendered at all when certain user capabilities are not present. ## Fixes When browser permissions are not granted, and the user doesn't have `send-video` or `send-audio` permissions, the `CallControls` component is still prompting for browser permissions. The reason for this prompt is - these buttons use `useMicrophoneState()` and `useCameraState()` hooks that trigger these prompts. Fixing this in the buttons component will require a bit of refactoring, so I'm opting for this less ideal and simple fix. commit b7906d9952eaa840453ca02269ca7387609f774a Author: GitHub Actions Bot <> Date: Thu Oct 10 15:24:50 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.3.10 commit 1df1fdccda45e4d497385dd1a2c74e0f57623e62 Author: GitHub Actions Bot <> Date: Thu Oct 10 15:24:27 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.1.4 commit 007d2d65b4613b49f4d91b8bc76374ec4ea3f259 Author: GitHub Actions Bot <> Date: Thu Oct 10 15:24:08 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.6.5 commit 9b1185308c3c8ee5582cb036300402672cb638ce Author: GitHub Actions Bot <> Date: Thu Oct 10 15:24:00 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.1.3 commit 017ff2b053f0a536fe2bf877ed1cb987323cf774 Author: GitHub Actions Bot <> Date: Thu Oct 10 15:23:36 2024 +0000 chore(@stream-io/video-client): release version 1.8.3 commit 5bfc52850c36ffe0de37e47066538a8a14dc9e01 Author: Santhosh Vaiyapuri <[email protected]> Date: Thu Oct 10 17:20:44 2024 +0200 fix: do not release track if track was not removed from stream (#1517) commit 9a8daf7ec825d047ce688c58a480fbe9ad478d0b Author: GitHub Actions Bot <> Date: Thu Oct 10 12:16:17 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.3.9 commit bc39dc66365b7dcb4b3db5391cbf037f1d6c5e1f Author: GitHub Actions Bot <> Date: Thu Oct 10 12:15:54 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.1.3 commit 40c86cca96258efd9870be5abca64bb5a4b835db Author: GitHub Actions Bot <> Date: Thu Oct 10 12:15:36 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.6.4 commit 14e71a043e5e966f89504d9345555decc00ab7bb Author: GitHub Actions Bot <> Date: Thu Oct 10 12:15:27 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.1.2 commit fde52a2703f51413cd12071832b1136c45443bad Author: GitHub Actions Bot <> Date: Thu Oct 10 12:15:04 2024 +0000 chore(@stream-io/video-client): release version 1.8.2 commit 50745101d28d0339592c22ca02b076040ad3bdeb Author: Santhosh Vaiyapuri <[email protected]> Date: Thu Oct 10 14:12:10 2024 +0200 fix: add track release for react-native whenever track stop is called (#1516) track release does the garbage collection of track natively commit 33067931449eca834486f7a3bfc9c2956a42ce61 Author: GitHub Actions Bot <> Date: Thu Oct 10 10:22:15 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.3.8 commit 78c379ab8a9fd8541bc9ea84450be3a79c9c28c5 Author: GitHub Actions Bot <> Date: Thu Oct 10 10:21:52 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.1.2 commit 1257346a691ddc0ca8b9fbe19196c4783da68078 Author: GitHub Actions Bot <> Date: Thu Oct 10 10:21:34 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.6.3 commit c60c0ed66f3d2513b83ede450e13a0d07247398c Author: GitHub Actions Bot <> Date: Thu Oct 10 10:21:27 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.1.1 commit 655b693be2572b5441c31c928b2c4022eb1c5548 Author: GitHub Actions Bot <> Date: Thu Oct 10 10:21:04 2024 +0000 chore(@stream-io/video-client): release version 1.8.1 commit b7bf90b9b1a83fb80d01a82ebee8754343963ae5 Author: Santhosh Vaiyapuri <[email protected]> Date: Thu Oct 10 12:18:13 2024 +0200 fix: mic not fully released in some cases (#1515) * RNSpeechDetector could create multiple audio streams if started multiple times - fixed * On call ended when on reconnection we did not leave - fixed commit bcbb3f9e0faf483ae5d29c2dc7f18263d2cc978a Author: GitHub Actions Bot <> Date: Mon Oct 7 13:51:49 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.6.2 commit 2c1c3459c531c8b083f095c9ecc37235a89127c1 Author: Oliver Lazoroski <[email protected]> Date: Mon Oct 7 15:48:56 2024 +0200 fix: edge case with participant bar rendering (#1512) Under special circumstances - `excludeLocalParticipant = true` and the screen sharer is the only participant in the call, the participant bar didn't render, which led to an exclusion of the screen sharer's video track. Context: https://getstream.slack.com/archives/C07KX5D7MFX/p1727981915684569 commit e9ba37c908dccebc5515cc26809a147324fd95be Author: GitHub Actions Bot <> Date: Fri Oct 4 14:52:15 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.6.1 commit 73400414d472d39701fd31b54ac927a8a8865151 Author: Matvei Andrienko <[email protected]> Date: Fri Oct 4 16:49:24 2024 +0200 fix: video should be enabled by default commit bf43b5915d73afb0d88fe8f4eb0943a3758678a9 Author: Santhosh Vaiyapuri <[email protected]> Date: Fri Oct 4 14:50:05 2024 +0200 docs: add new architecture explanation (#1511) <img width="994" alt="Screenshot 2024-10-04 at 14 13 50" src="https://github.com/user-attachments/assets/729cab5f-b700-4481-9a71-dd4117cbba63"> commit 2378e5fdb56b7a25bfd768510964c6845fd66c8f Author: GitHub Actions Bot <> Date: Fri Oct 4 11:45:05 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.3.7 commit 41a5801071822109b706c59dba734116b3c7c265 Author: GitHub Actions Bot <> Date: Fri Oct 4 11:44:41 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.1.1 commit ec61b32449c89885b87fe972a38d25503bab0c0f Author: Santhosh Vaiyapuri <[email protected]> Date: Fri Oct 4 13:41:47 2024 +0200 fix: clarify about USE_FULL_SCREEN_INTENT android permission (#1510) commit 03df7e4eee6f5a98503d6ea907f59b9cca7560fa Author: GitHub Actions Bot <> Date: Thu Oct 3 12:32:22 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.6.0 commit ca12dc3ba34f6dec117ae6fe75d7dbe00f297fe4 Author: Matvei Andrienko <[email protected]> Date: Thu Oct 3 14:29:20 2024 +0200 feat: add a prop to control mirroring of local participant video (#1506) We get a lot of questions about disabling mirroring of local participant video. It's currently possible to do by overriding the `str-video__video--mirror` CSS class, but it seems that things will be easier if we have a prop to control this behavior. This PR adds an optional `mirrorLocalParticipantVideo` prop to all built-in layout components. Setting it to `false` disable local participant video mirroring. commit a2cd09ca09b729381a7de4bdfc1f9837c26ed53e Author: Santhosh Vaiyapuri <[email protected]> Date: Thu Oct 3 13:56:40 2024 +0200 docs: add ui-cookbook for react native manual video quality selection (#1507) commit 0b4c9b8f7d4acdf0d6ad7a73fe9772f0a163a065 Author: Oliver Lazoroski <[email protected]> Date: Thu Oct 3 11:18:47 2024 +0200 fix: typos, unused imports commit cbed57807369a5a88d450f3d9020a202e8df68aa Author: GitHub Actions Bot <> Date: Wed Oct 2 14:09:01 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.3.6 commit 16f1693783e253776a9770029e3fcc159cc24568 Author: GitHub Actions Bot <> Date: Wed Oct 2 14:08:38 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.1.0 commit 838c3b390efe662b814314effdc48b7b6306b09c Author: GitHub Actions Bot <> Date: Wed Oct 2 14:08:20 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.5.0 commit 5c707f75c3581b96479baab21c559e98dd3e0818 Author: GitHub Actions Bot <> Date: Wed Oct 2 14:08:12 2024 +0000 chore(@stream-io/video-styling): release version 1.1.0 commit 672504e3760075d5932938d8468a95aa8a4ee1b3 Author: GitHub Actions Bot <> Date: Wed Oct 2 14:08:05 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.1.0 commit 0de03fb225e212f9a1a6731b7bb17679aa6f4455 Author: GitHub Actions Bot <> Date: Wed Oct 2 14:07:42 2024 +0000 chore(@stream-io/video-client): release version 1.8.0 commit 3a754afa1bd13d038b1023520ec8a5296ad2669e Author: Matvei Andrienko <[email protected]> Date: Wed Oct 2 16:04:51 2024 +0200 feat: manual video quality selection (#1486) Adds APIs to manually override incoming video quality: ## Client ### `call.setPreferredIncomingVideoResolution(resolution?: VideoDimension, sessionIds?: string[])` Specify preference for incoming video resolution. The preference will be matched as close as possible, but actual resolution will depend on the video source quality and client network conditions. Will enable incoming video, if previously disabled. Passing `undefined` resolution clears previously set preferences. Optionally specify session ids of the participants this preference has effect on. Affects all participants by default. ### `call.setIncomingVideoEnabled(enabled: boolean)` Enables or disables incoming video from all remote call participants, and clears any preference for preferred resolution. ## React SDK New call state hook added: ### `useIncomingVideoSettings()` Returns incoming video settings for the current call, including global and per-participant manual video quality overrides. ## Demo App Video quality selector added to the settings modal in `react-dogfood`. On Pronto, it's also visible in call controls: ![](https://github.com/user-attachments/assets/8cf111d5-2924-4067-9aca-59f51dfb1a8e) ![](https://github.com/user-attachments/assets/eac779c0-d120-402d-b7b9-ef3033b56d1e) ## Internal APIs updated ### `callState.updateParticipantTracks` Call class no longer has a slightly incorrectly named `updateSubscriptionsPartial` method. We want to avoid the Call class dealing with subscriptions at all - this is a domain of the DynascaleManager. Instead, the new `updateParticipantTracks` should be used on the CallState object. ### Disabling <Video /> New `enabled` prop has been added to the core Video component. Setting `enabled={false}` allows to force fallback instead of video, even if participant is publishing a video track. --------- Co-authored-by: Santhosh Vaiyapuri <[email protected]> commit 0a2b74828eaaf2c104151603be0464e4d31dc29b Author: GitHub Actions Bot <> Date: Wed Oct 2 13:22:55 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.3.5 commit d07a287f8ca8f40a494ec19429ffa9bf3dd3c9db Author: GitHub Actions Bot <> Date: Wed Oct 2 13:22:33 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.14 commit 109cd6dcbd378a984b628579365536619a08db16 Author: GitHub Actions Bot <> Date: Wed Oct 2 13:22:14 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.4.5 commit 15ae71194a87d1e655daa493a6653f64aaaa7b07 Author: GitHub Actions Bot <> Date: Wed Oct 2 13:22:06 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.0.10 commit 2775ed5077f1aa4d2d20466265d571415b0a3a7e Author: GitHub Actions Bot <> Date: Wed Oct 2 13:21:43 2024 +0000 chore(@stream-io/video-client): release version 1.7.4 commit 087417f926b3d43a5bcb814ac9bb5951c1e63479 Author: Oliver Lazoroski <[email protected]> Date: Wed Oct 2 15:10:19 2024 +0200 fix: retryable location hint (#1505) Sometimes, it may take longer than 2000 ms. to retrieve the approximate location of the user. We now try up to three times before we eventually give up. commit 7131bd2f54973f3d7d29154946cfcd1b447e042e Author: Santhosh Vaiyapuri <[email protected]> Date: Wed Oct 2 14:35:13 2024 +0200 docs: add info about expo prebuild commit 0fc76ce145154c301f3dbd7a585126f94fc54c0e Author: Oliver Lazoroski <[email protected]> Date: Wed Oct 2 11:44:51 2024 +0200 docs: align docs structure (#1504) Align documentation structure according to the following specs: - https://www.notion.so/stream-wiki/API-Parity-3585495b04de4fb08ffe585313315a86 - https://www.notion.so/stream-wiki/Docs-gaps-4515af280e024c3ab33eb81828bde019 commit d77694a5c4f541a4c98e19ac5cac2c360e5f5985 Author: Santhosh Vaiyapuri <[email protected]> Date: Wed Oct 2 11:31:44 2024 +0200 docs: proper permission explanations in expo config plugin for ringing commit d33f1887cac3fbc0dd56b86cb95d9d6d930216aa Author: GitHub Actions Bot <> Date: Tue Oct 1 10:08:57 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.4.4 commit a1797cf1d62b1a74f0101bbd185b2cc0e1176575 Author: Oliver Lazoroski <[email protected]> Date: Tue Oct 1 12:06:02 2024 +0200 fix: React v17 compatibility (#1503) Add React v17 to the list of supported peer dependencies. commit cd4999ec3145323ac57a236e72ecd1d1666db1a3 Author: Oliver Lazoroski <[email protected]> Date: Tue Oct 1 11:10:02 2024 +0200 docs: better Noise Cancellation example (#1502) Adds concise noise cancellation integration code sample. commit 3f219b2997c859ab13afea15e5d2152cadf46b42 Author: Oliver Lazoroski <[email protected]> Date: Mon Sep 30 12:36:30 2024 +0200 fix: use vp8 for Firefox (#1501) During our testing, it turned out that Firefox can't reliably encode in h264. We'll fall back to vp8 for the time being. commit 9e4d5c5669816dac13a69ca55e6ca9b3cce5a10f Author: Santhosh Vaiyapuri <[email protected]> Date: Mon Sep 30 11:06:42 2024 +0200 docs: fix the react native calling state mapping example commit 59d4c241f5d26de2f355d784cf18f4783d8d1ee3 Author: Kristian <[email protected]> Date: Fri Sep 27 15:53:53 2024 +0200 docs: ongoing calls header wording update (#1500) Wording fix based on this request in -> [Docs gaps page](https://www.notion.so/stream-wiki/Docs-gaps-4515af280e024c3ab33eb81828bde019?pvs=4#8805b230d1ff4da8820a5be0ef8febd0) Changes the header from `Calls that live` to `Calls that are ongoing`. commit e5572b3f8a921a19df247c3697ac305f99ec15ac Author: Zita Szupera <[email protected]> Date: Thu Sep 26 11:13:52 2024 +0200 docs: update maximum call members to 100 (#1498) Backend now allows 100 for `members_limit` commit a2a0ec9fe55d40d55193636739a19db31366af9b Author: Santhosh Vaiyapuri <[email protected]> Date: Thu Sep 26 07:12:54 2024 +0200 docs: add push notification installation explanations commit 4480ba017be6545de0b3df04bc0f0f43257a192c Author: GitHub Actions Bot <> Date: Tue Sep 24 14:45:50 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.3.4 commit f99a9b37818aea5dcb1adb257c9ae6268288fac3 Author: GitHub Actions Bot <> Date: Tue Sep 24 14:45:26 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.13 commit 885f78eff3fc6056100b37cd75f6a523c4890184 Author: GitHub Actions Bot <> Date: Tue Sep 24 14:45:07 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.4.3 commit a29b057a7e65482c4ac7508922298d13c6b48eab Author: GitHub Actions Bot <> Date: Tue Sep 24 14:44:59 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.0.9 commit 86e8e0bc0fa5be3b94069f5e0e39c37e717f12b6 Author: GitHub Actions Bot <> Date: Tue Sep 24 14:44:36 2024 +0000 chore(@stream-io/video-client): release version 1.7.3 commit 7cdb62e75cad56098ee81eabbcc63382f93fd218 Author: Santhosh Vaiyapuri <[email protected]> Date: Tue Sep 24 16:41:46 2024 +0200 fix: do not always error out api calls when web socket initially failed (#1495) ## Problem Currently for all axios requests, we wait for `connectionIdPromise`. This promise is rejected or resolved based on the first WS connect attempt. If subsequent reconnects were successful but the first connect was rejected, this promise would still stay rejected. ## Solution To allow for reconnects to resolve, say for example, in 3rd try the connection got open, we can wait for the `connectionOpen` promise to resolve. To allow for 2 or 3 retries, we use `_waitForHealthy` function here. Alternatively we could await only on `connectionOpen` promise without allowing for timeouts to wait for reconnections also. commit 5ad5facc28414ea4b1b82537a0975ae5d979f7c7 Author: Zita Szupera <[email protected]> Date: Tue Sep 24 15:20:52 2024 +0200 docs: include member limit in query members docs (#1496) commit d841a3d124ebc60f0ba4f12ea707b91fabe2f29e Author: Zita Szupera <[email protected]> Date: Tue Sep 24 13:38:20 2024 +0200 docs: document query call members method (#1494) https://getstream.slack.com/archives/C06ALLF4QNB/p1727120067644979 commit 75ed99c3c9db2de8827e7493d1bc89817dd697fe Author: GitHub Actions Bot <> Date: Fri Sep 20 15:25:51 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.3.3 commit c8cb484d77002a74403b2e33ff8bfbd03bf00824 Author: GitHub Actions Bot <> Date: Fri Sep 20 15:25:27 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.12 commit 9e9651809139e5852c81661d833e76a60717caad Author: GitHub Actions Bot <> Date: Fri Sep 20 15:25:08 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.4.2 commit acb9950f6e1b5c93e45d34486f4e2dd74a5d145a Author: GitHub Actions Bot <> Date: Fri Sep 20 15:25:00 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.0.8 commit f4d6522ad456be265d44e86f7b752c6c5a055f0e Author: GitHub Actions Bot <> Date: Fri Sep 20 15:24:37 2024 +0000 chore(@stream-io/video-client): release version 1.7.2 commit cce5d8e641a9182a1779952e4e62aa16ec21ab92 Author: Oliver Lazoroski <[email protected]> Date: Fri Sep 20 17:21:26 2024 +0200 fix: overridable bitrate and bitrate downscale factor (#1493) Adds experimental APIs for overriding codec, bitrate, and bitrate downscale factor. Currently, we keep this API internal and undocumented until we get more feedback and more insights from our testing. In Pronto, these parameters can be overridden via a query parameter: `?video_codec=h264&bitrate=1200000&bitrate_factor=3` - will use h264, with 1.2mbps bitrate, and every lower layer will use 3 times less bitrate than the previous one. commit 7346ddb473efadb673e3e2a2674cef827487e6cb Author: GitHub Actions Bot <> Date: Fri Sep 20 13:27:34 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.3.2 commit 36c43948d4b8c8a163ab30eedad324a0e27ed3af Author: GitHub Actions Bot <> Date: Fri Sep 20 13:27:11 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.11 commit 693ad5a4460e8bdf092e98b330acd07e8a1556aa Author: GitHub Actions Bot <> Date: Fri Sep 20 13:26:53 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.4.1 commit 705141738a5bf66309e9283eca0c19068654e422 Author: GitHub Actions Bot <> Date: Fri Sep 20 13:26:45 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.0.7 commit 5f8e7cb0adea2bf3359ef3d482f44dc3a8a98fa7 Author: GitHub Actions Bot <> Date: Fri Sep 20 13:26:23 2024 +0000 chore(@stream-io/video-client): release version 1.7.1 commit d576f48c7f819d48008359a3c30fe5d1a3372145 Author: Oliver Lazoroski <[email protected]> Date: Fri Sep 20 15:23:33 2024 +0200 fix: don't attempt to recover broken WebSockets when there isn't a network connection (#1490) We don't attempt to recover broken WebSockets when there isn't a network connection. Instead, we wait for connectivity to be restored first. This behavior created some weird bugs with `call.leave()`. As we were creating new WebSockets, the `signalReady` never resolved (the socket couldn't be opened) and hence, `send()` was blocking forever. Due to this behavior, when attempting to leave a call while offline, the `callingState` never transitioned from `OFFLINE -> LEFT`. Ref: https://getstream.slack.com/archives/C06H93HC60Z/p1725636744842199?thread_ts=1724334671.814709&cid=C06H93HC60Z --------- Co-authored-by: Santhosh Vaiyapuri <[email protected]> commit f92d00bd076fde37e4057d186eaf5b285db79125 Author: Oliver Lazoroski <[email protected]> Date: Fri Sep 20 12:05:18 2024 +0200 fix: XCode 16 compatibility (#1492) It makes it possible to run our dogfood application from XCode 16. Ref: https://github.com/ivpusic/react-native-image-crop-picker/pull/2068 commit 6ed27b9d1dfebeb9a241f6aa0b55912cce87eef5 Author: Oliver Lazoroski <[email protected]> Date: Fri Sep 20 10:49:51 2024 +0200 chore: `preMajor: false` for stable packages (#1491) Enables proper semver version bumps for packages that are stable. commit 6393cffa2793d7f0362f0d5a828ae2cb9fe6fe53 Author: GitHub Actions Bot <> Date: Thu Sep 19 13:33:28 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.10 commit d5f4e5a0978e03c1e5980c6b09a3c0374c9bd417 Author: GitHub Actions Bot <> Date: Thu Sep 19 13:33:10 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.4.0 commit f07ae1a5a57d8b28a7ef315d9e7f6e5e22614ac3 Author: GitHub Actions Bot <> Date: Thu Sep 19 13:32:56 2024 +0000 chore(@stream-io/video-filters-web): release version 0.1.4 commit a1f95275ba8a5558b8921b945d150bbab76e7315 Author: GitHub Actions Bot <> Date: Thu Sep 19 13:32:50 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.0.6 commit 20774166dacb65d091a90f83dff7e6d105eab691 Author: GitHub Actions Bot <> Date: Thu Sep 19 13:32:27 2024 +0000 chore(@stream-io/video-client): release version 1.7.0 commit 6bf1e1d460ef02f3621702b711b58342e41adae5 Author: GitHub Actions Bot <> Date: Thu Sep 19 13:32:12 2024 +0000 chore(@stream-io/audio-filters-web): release version 0.2.2 commit 972e5792b5a131a212b1031ade76dcb383897a46 Author: Oliver Lazoroski <[email protected]> Date: Thu Sep 19 15:24:48 2024 +0200 feat: React SDK cold-start optimizations (#1488) Improves the cold-start performance of our React Video SDK by extracting the core parts of the `CallStatsLatencyChart` component in a separate lazy-loaded chunk. This saves around ~150KB of minified JS from being loaded, parsed, and compiled by the browser. We now use code-size-optimized Protobuf models. Binary encoding and decoding now happen through reflection (saves ~60KB minified). The total saving is ~210KB after minification, a drop of ~30%. Additionally, the SDK is now marked as free of side effects thus, allowing bundlers to tree-shake the unused code more efficiently. ### Possible breaking changes - `CallStats` exported a few enums that weren't intended to be part of the public API (`Statuses`). This is now fixed. Customers possibly relying on this enum are advised to copy it in their codebase. - `CallStatsLatencyChart` isn't exported anymore. ### New - Dependencies were updated to their latest versions - Now we use `rollup@4` to bundle libs and `vite@5` to run our sample apps - CallStats component now has an optional `showCodecInfo`. When enabled, it will show the name of the codec currently in use. --------- Co-authored-by: Matvei Andrienko <[email protected]> commit e2042dcf45732dc143bb842de69e7d2d6f41d38e Author: GitHub Actions Bot <> Date: Thu Sep 19 12:47:06 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.9 commit 2c8b3b7d359ecce053628250cdf7d595b0dbba19 Author: GitHub Actions Bot <> Date: Thu Sep 19 12:46:49 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.3.6 commit ac5affb132c579cb67f701eb4c7959eeb7f914f5 Author: GitHub Actions Bot <> Date: Thu Sep 19 12:46:41 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.0.5 commit 4e9e131cdffbf296567f498e24af8ac8bf0333e2 Author: GitHub Actions Bot <> Date: Thu Sep 19 12:46:17 2024 +0000 chore(@stream-io/video-client): release version 1.6.5 commit bf2ad90224d88592d4ea27ea8d0683efe98771f7 Author: Matvei Andrienko <[email protected]> Date: Thu Sep 19 14:41:53 2024 +0200 fix: race condition in `applySettingsToStream` (#1489) User case: 1. Have a button to leave a call that navigates to a different page 2. Have filters enabled and `BackgroundFiltersProvider` rendered 3. Pressing the "leave" button invokes `call.leave()` which disables devices; it also causes navigation to happen 4. Navigation unmounts `BackgroundFiltersProvider`, which unregisters the current filter, which calls `camera.applySettingsToStream()` 5. Depending on the conditions, `camera.applySettingsToStream()` may re-enable camera The user ends up with a camera still in use after leaving the call. Solution: "synchronize" `applySettingsToStream` with enable/disable methods. This way, either the camera will be disabled first, and `applySettingsToStream` does nothing; or `applySettingsToStream` finishes first, but the camera is then safely disabled. commit 72a3257e838508a0d1bd56af96d3f9c2d3787de9 Author: GitHub Actions Bot <> Date: Fri Sep 13 07:48:15 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.8 commit fbc46e11510ba084a768697d060a6c9d6c3e0bf9 Author: GitHub Actions Bot <> Date: Fri Sep 13 07:47:57 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.3.5 commit 9dd67f8ad7cd81b2e7731e92f73c43f6015f5342 Author: GitHub Actions Bot <> Date: Fri Sep 13 07:47:49 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.0.4 commit d13c2f122dacb9029f87038427cdc65d1b2a2442 Author: GitHub Actions Bot <> Date: Fri Sep 13 07:47:25 2024 +0000 chore(@stream-io/video-client): release version 1.6.4 commit bfe34a3609182da5bbb03331978d86569cada098 Author: Oliver Lazoroski <[email protected]> Date: Fri Sep 13 09:44:36 2024 +0200 fix: allow video target bitrate override (#1487) Introduces a new internal API that allows overriding of the target bitrate used for encoding video tracks. Also, it enables h264 by default in our internal environments. We need to dogfood this codec more. commit cc377f528dbbc1c2db45dae1750a6d2465c1692d Author: GitHub Actions Bot <> Date: Wed Sep 11 15:01:10 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.7 commit 26815357f66b43f94e1d939fb30a6cdb85c77a5f Author: Santhosh Vaiyapuri <[email protected]> Date: Wed Sep 11 16:58:19 2024 +0200 fix: replace dataSync with shortService for android foreground service type (#1485) dataSync requires to add a permission. Which makes play store reject the app for review asking for proof. Using shortService means that there is no permission necessary. so its a win-win commit c99fff33ba2e6cd9b26fe040b1dc627015b14812 Author: GitHub Actions Bot <> Date: Wed Sep 11 14:37:25 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.6 commit 0867c740e9752bc0ad7f5ef5dd774039a8868da3 Author: GitHub Actions Bot <> Date: Wed Sep 11 14:37:07 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.3.4 commit 652c2cfc50aa88f535b2dd12be53a85b4d89650a Author: GitHub Actions Bot <> Date: Wed Sep 11 14:36:59 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.0.3 commit 3835a2405e7734957b628cd0876063d24142263b Author: GitHub Actions Bot <> Date: Wed Sep 11 14:36:34 2024 +0000 chore(@stream-io/video-client): release version 1.6.3 commit edff5d7ca0cc241a3929da3b752073883f29da32 Author: Santhosh Vaiyapuri <[email protected]> Date: Wed Sep 11 16:28:18 2024 +0200 fix: client instance removal used a wrong key (#1484) commit a11020ef1f39b01e2ef93b3b79f4c69e45fa4321 Author: GitHub Actions Bot <> Date: Tue Sep 10 13:26:30 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.5 commit 6fb786f9455e31c1a74ffeb606cac94f2a4e14af Author: GitHub Actions Bot <> Date: Tue Sep 10 13:26:16 2024 +0000 chore(@stream-io/video-filters-react-native): release version 0.2.4 commit 734a3615bc185fc17c7d7afc812c662a9bec92e7 Author: Santhosh Vaiyapuri <[email protected]> Date: Tue Sep 10 15:23:16 2024 +0200 fix: broken ios autolinking on react native 0.68 (#1483) commit a4ffb89a89ef812823edafb39541866172228f95 Author: GitHub Actions Bot <> Date: Mon Sep 9 16:05:53 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.4 commit 27121069290b9ba4b490acc1a7a593f9ab79ce15 Author: GitHub Actions Bot <> Date: Mon Sep 9 16:05:35 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.3.3 commit 4f36d321abfaef7684b039507140cfa3d3a37f99 Author: GitHub Actions Bot <> Date: Mon Sep 9 16:05:26 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.0.2 commit 212882b374315a685469429d016ddf4c620687fb Author: GitHub Actions Bot <> Date: Mon Sep 9 16:05:02 2024 +0000 chore(@stream-io/video-client): release version 1.6.2 commit 3ea3c5ecf57b50d3f909d59a96811f636b07d8aa Author: Oliver Lazoroski <[email protected]> Date: Mon Sep 9 18:02:04 2024 +0200 fix: prioritize h264 baseline profile (#1482) When using `h264` as the preferred codec, we make sure that the baseline profile `42e01f` and `packetization-mode=0` are used to maximize compatibility between browsers and devices. commit fea00ff0ff3984e3ab29706355f98804151734a7 Author: Oliver Lazoroski <[email protected]> Date: Fri Sep 6 16:48:34 2024 +0200 fix: beep only when participantCount is less than five (#1479) Beeping is uncomfortable in large calls when many people are joining/leaving the call. This PR enables beeping only when the participant count is less than 5. commit 69a02298d9e03f16b03d199cd6174690fa83b48e Author: GitHub Actions Bot <> Date: Fri Sep 6 09:03:58 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.3 commit 01b513d9d07d86e8d6492f272f4df815cadcc40a Author: GitHub Actions Bot <> Date: Fri Sep 6 09:03:43 2024 +0000 chore(@stream-io/video-filters-react-native): release version 0.2.3 commit b6d8c163b66f75e12d0316abe46eebc6b017c29a Author: Santhosh Vaiyapuri <[email protected]> Date: Fri Sep 6 11:00:33 2024 +0200 fix: set min ios version to 13.0 for the podspecs commit b97eb867cd1751b09cd0670a95ad2a4a866886f6 Author: GitHub Actions Bot <> Date: Thu Sep 5 16:31:33 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.2 commit 547329733833bb94ccf3a5edd7749c3dda3e596b Author: GitHub Actions Bot <> Date: Thu Sep 5 16:31:16 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.3.2 commit 0213213465598f93af86e26722159bbdb1de6b2a Author: GitHub Actions Bot <> Date: Thu Sep 5 16:31:08 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.0.1 commit 21062880f9e72f323f17200aa5ea219da3eeca14 Author: GitHub Actions Bot <> Date: Thu Sep 5 16:30:44 2024 +0000 chore(@stream-io/video-client): release version 1.6.1 commit 135b11f2e29f486f2f43b9ac2a84848d0fd0b5b4 Author: Oliver Lazoroski <[email protected]> Date: Thu Sep 5 18:27:56 2024 +0200 fix: update state.endedAt after the SFU terminates the call (#1477) Updates the `endedAt` state property when the `callEnded` event arrives. commit 167fa0b745a5f65a1ed51bfd97afd07d83438f38 Author: GitHub Actions Bot <> Date: Thu Sep 5 14:20:24 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.1 commit e593e197cf2d83de454c038d92b49923c8f1d609 Author: GitHub Actions Bot <> Date: Thu Sep 5 14:20:11 2024 +0000 chore(@stream-io/video-filters-react-native): release version 0.2.2 commit d41241c65f97e04be423f521a47b2402997f16ee Merge: 9279d59e8 ca6afe81d Author: Santhosh Vaiyapuri <[email protected]> Date: Thu Sep 5 16:17:02 2024 +0200 Merge branch 'main' of github.com:GetStream/stream-video-js commit 9279d59e861a51c723a0f17229c39dae946ee664 Author: Santhosh Vaiyapuri <[email protected]> Date: Thu Sep 5 16:13:24 2024 +0200 fix(ios): if min ios version is not present default to 12 commit ca6afe81df774c31d91597c24b6a0df171ec4cb5 Author: Oliver Lazoroski <[email protected]> Date: Thu Sep 5 16:12:56 2024 +0200 chore(pronto): default to h264 in Safari (#1476) Let's test a bit with Pronto before we make #1437 the default SDK behavior. commit 2f9cd2e63e55a35461eef9e75ffa2d08bfea149e Author: GitHub Actions Bot <> Date: Thu Sep 5 07:31:57 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.3.1 commit f20ab9b6dc9a85d6d4d832d94ca1b369ba909658 Author: Oliver Lazoroski <[email protected]> Date: Thu Sep 5 09:29:04 2024 +0200 fix(composite): hide the local participant for call recordings (#1475) When using the spotlight layout, the egress-recording user was always present in the recording. This is a bug in the egress-composite app that is now fixed. ### Fixes - Egress (local) user is always hidden from the screen - Pagination arrows are hidden in the Spotlight layout commit 61616870178d6bbc29b22ca3b1a354e5e172c9c3 Author: Oliver Lazoroski <[email protected]> Date: Tue Sep 3 16:17:23 2024 +0200 chore: reset releaseAs tags [skip ci] commit c91f3410a82ea78effb2274956e354e8e0f2eb9a Author: GitHub Actions Bot <> Date: Tue Sep 3 14:14:11 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.0 commit 11f6cc2b14b07c5004f3c00840cb0dbecad765e9 Author: GitHub Actions Bot <> Date: Tue Sep 3 14:13:53 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.3.0 commit aa318b589fddf6061a7c85a95c8e4c8af15c3223 Author: GitHub Actions Bot <> Date: Tue Sep 3 14:13:45 2024 +0000 chore(@stream-io/video-react-bindings): release version 1.0.0 commit 4fe1d2a30d0c5019f26173ccd6c7fe49a9b53d73 Author: Oliver Lazoroski <[email protected]> Date: Tue Sep 3 16:10:41 2024 +0200 chore: release bindings as a major version commit 4fd17e1d83be17a8adaddea479db553119d7ada6 Author: GitHub Actions Bot <> Date: Tue Sep 3 14:00:41 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.3.0 commit c990e7a3132c5ee2ddcc707d8a4759c5a08fd3ef Author: GitHub Actions Bot <> Date: Tue Sep 3 14:00:40 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 1.0.0 commit f70e443ce151fa3a885706d214c99c0a31587a11 Author: GitHub Actions Bot <> Date: Tue Sep 3 14:00:38 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.3.0 commit 159d91f467462083804e4d32c5fa51eb389c63f5 Author: GitHub Actions Bot <> Date: Tue Sep 3 14:00:30 2024 +0000 chore(@stream-io/video-react-bindings): release version 0.4.56 commit 9342f002929c5491a3a227ec097a0cf08cf3803b Author: GitHub Actions Bot <> Date: Tue Sep 3 14:00:05 2024 +0000 chore(@stream-io/video-client): release version 1.6.0 commit e90aa52780f9e0ca5852a294a152282000f66675 Author: Oliver Lazoroski <[email protected]> Date: Tue Sep 3 15:57:07 2024 +0200 feat: Reconnects v2 (#1439) Implements the Reconnects v2 flow. The implementation doesn't change the public API (not breaking); internally, it does change many things. The Reconnects v2 consists of three reconnect strategies: - **FAST**: typically used when switching networks (wifi->5g or similar). This strategy takes the SFU-provided threshold, which normally is set to 25 seconds. The client attempts to connect to the same SFU and performs an ICE restart on the existing peer connections. - **REJOIN**: used when FAST isn't applicable, failed or the SFU told us to do it. Drops all existing peer connections, closes the web socket to the SFU, fetches new credentials from the Coordinator, and finally establishes a connection to the SFU returned by the coordinator. The important detail here is, that we rejoin with a new `session_id` parameter. This strategy is analogous to a browser tab refresh. - **MIGRATE**: when the SFU reaches its operational capacity or when it gets shut down due to maintenance or upgrade, it will ask connected clients to migrate away to another, healthy SFU. The migration is marked as complete, once the `participantMigrationComplete` event is emitted. If the migration fails, the client automatically attempts REJOIN. - **DISCONNECT**: The SFU politely asks you to leave the call ### Implementation notes dump for easier review ### - the original reconnection flow is completely removed and replaced with the new one - we don't rely on WS status codes anymore, as they have proven to be unreliable across platforms/browsers - with the new flow, the SFU can ask the client to perform a reconnect or a migration (signaled via the `error` event). This is super-helpful for cases where the auth token has expired and a new one should be fetched, the SFU is being updated, PeerConnections are broken and can't recover due to various reasons - the client, when disconnecting from an SFU, now sends a reason why. We store this information and it should appear in the call stats - SFU Client: to prevent race conditions on the server, the SFU client now waits until `JoinResponse` is received before it attempts to perform any RPC request. Also, these requests are now retried until they are successful, the SFU tells us not to do it anymore or the call has been left - Concurrent event processing: we now guard from processing SFU WS events concurrently. ICE restarts, Subscriber offers, etc... are now applied in the correct order - Orphaned tracks: as MediaTracks are sent on the PeerConnection, but the participant info is sent through a WebSocket, it could happen they arrive in the wrong order. Now, we keep a reference to these tracks in the call state and bind them to the appropriate participant once the info arrives - Video FPS: all three track qualities (f, h, q) now have 30fps, providing a smoother experience - The `network.changed` event is introduced, it emits every time the device detects being offline/online. It is decoupled from the existing `connection.changed` event. `connection.changed` represents two things: the device being online/offline or the coordinator socket is healthy or not. - logging: the SFU client, peer connections, dispatcher, and the signal web socket now have a shared `logTag`. It makes the debugging easier. - Coordinator unrecoverable error: when rejoining after a network loss, the call settings might have changed and the user might not have permission to join the call anymore or the call was marked as ended. The coordinator signals this with `unrecoverable: true` in the REST API response. The reconnect loop breaks and signals `RECONNECTION_FAILED`. commit c6cbc1f8d003ea1c39796ccbc87d7553604f819b Author: Zita Szupera <[email protected]> Date: Tue Sep 3 13:38:21 2024 +0200 chore: update node-sdk, add this to pronto for token generation (#1472) I wanted to do this for a long time now, this way we can catch any issues with token creation in the node-sdk commit 359145102c436d9b6f6df2510028c3de17802960 Author: GitHub Actions Bot <> Date: Tue Sep 3 11:04:33 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.2.1 commit e07e3387f581193313e92302eeccc951add315e8 Author: GitHub Actions Bot <> Date: Tue Sep 3 11:04:09 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 0.10.6 commit 582fbc921070368fde446ae666ef366eb3d46177 Author: Santhosh Vaiyapuri <[email protected]> Date: Tue Sep 3 13:01:01 2024 +0200 fix: ios build after pip addition was only as a static framework (#1473) fixes #1470 what i learnt is that I should add everything in bridging header that is imported from objective C even if its used inside a class Here I have this class ``` @objc (RTCViewPipManager) class RTCViewPipManager: RCTViewManager ``` which does this code ``` component = self.bridge.uiManager ``` The UI manager had to be imported with `#import <React/RCTUIManager.h> ` and then all the compilation was fixed, the error thrown by swift was so ambiguous that it seemed to indicate as if the PiP swift code had a compilation issue My theory of why static framework worked is because, it probably imports all the headers of React aka the objective-c library I am trying to use inside To top it all of, Xcode does not have a way to automatically add imports to briding-header make is so hard - no proper error message - no way to automatically generate - so we have to be very careful with swift and objective-c integration as we have to do it all manually commit dc16a74b1353f54aa9254c55e37bb15074834127 Author: Oliver Lazoroski <[email protected]> Date: Fri Aug 30 15:18:38 2024 +0200 docs: update headings for AI/ML filters (#1471) Updates the headings to allow better indexing and discoverability of our Filters API. commit adbd4aae9f76c26ff284ab803f9120dfdd639a00 Author: Ivan Sekovanikj <[email protected]> Date: Thu Aug 29 10:41:28 2024 +0200 docs(react-native): broken links in documentation (#1468) This PR fixes a bunch of broken links within the React Native SDK documentation. As a follow-up to this, we should consolidate the page structure to be the same as for the other SDKs (the `react` one for example). That will come in a followup PR. commit 3e9a67f76dce079a5d9a9062ee85a69517c40be0 Author: GitHub Actions Bot <> Date: Wed Aug 28 11:42:42 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.2.0 commit 9f9373dea1fb55560a1cbac2036ef5e500c58e80 Author: GitHub Actions Bot <> Date: Wed Aug 28 11:42:19 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 0.10.5 commit 3a76378a3e663aa8bc23d801c6ac695d65ee77c6 Author: Santhosh Vaiyapuri <[email protected]> Date: Wed Aug 28 13:39:22 2024 +0200 feat: PiP mode support on iOS (#1469) https://github.com/user-attachments/assets/b5e3214b-6316-4c3f-a535-1f31b2e100d5 commit c31172d5696765df748d834d1298a9f6798e5948 Author: GitHub Actions Bot <> Date: Fri Aug 23 13:09:04 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 0.10.4 commit 76eeaa07b8d1cb595d1d5a0dc5fc928d0d0f0253 Author: GitHub Actions Bot <> Date: Fri Aug 23 13:08:46 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.2.23 commit 056603d70f5c42c1668fbefaef6d8020cdb3bbcd Author: GitHub Actions Bot <> Date: Fri Aug 23 13:08:38 2024 +0000 chore(@stream-io/video-react-bindings): release version 0.4.55 commit d22a5adb02a919f0560e11b8eaf8036cdd7073f6 Author: GitHub Actions Bot <> Date: Fri Aug 23 13:08:16 2024 +0000 chore(@stream-io/video-client): release version 1.5.2 commit 55af565ea259a7fcb4298f4df63d05e4b346ed5a Author: Oliver Lazoroski <[email protected]> Date: Fri Aug 23 15:05:28 2024 +0200 fix: handle session_participant_count_updated event (#1467) Handlers for the new `call.session_participant_count_updated` event. The Coordinator will occasionally deliver this event to all clients, and it will carry the most recent state of: - `anonymous_participant_count` and - `participant_count_by_role` Specs: https://www.notion.so/stream-wiki/Participant-counts-4411743f0b9345c192b243ccc25099a5 ### Implementation notes The `CallSession` is extended with one extra property `anonymous_participant_count`. This value and the aggregated value for the regular participant count will be used for populating the `call.state.anonymousParticipantCount` and `call.state.participantCount` accordingly but only when the `callingState` isn't `JOINED`. Once the call is JOINED, these values will be populated from the SFU heart checks. This enables our `useParticipantCount()` and `useAnonymousParticipantCount()` hooks to work as expected, regardless if the user has joined the call or not. commit 555189365ebaef9b69544536d387b23f5d27108e Author: GitHub Actions Bot <> Date: Fri Aug 23 12:45:42 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 0.10.3 commit fedc42321d04c2d238ab6c779a24bc250b57124e Author: GitHub Actions Bot <> Date: Fri Aug 23 12:45:24 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.2.22 commit 802ff0e8df7dfb823225dde65bd3c8c26558fd04 Author: GitHub Actions Bot <> Date: Fri Aug 23 12:45:16 2024 +0000 chore(@stream-io/video-react-bindings): release version 0.4.54 commit ab024c3999b4c4164a2c652b8cbe2ce27a288a81 Author: GitHub Actions Bot <> Date: Fri Aug 23 12:44:49 2024 +0000 chore(@stream-io/video-client): release version 1.5.1 commit 4af7f0060db24923fb5dab43d1f2a709ef9acd29 Author: Santhosh Vaiyapuri <[email protected]> Date: Fri Aug 23 14:41:52 2024 +0200 fix: do not use ended_at from call state to check ringing validity (#1466) **Behaviour**: we should not schedule timeout based rejects if the call had already ended, as BE will respond with 400 **Background**: `callState.ended_at` represents the last time the call was ended `callSession.ended_at` represents if the current call session's ended time **Fix:** we should not schedule timeout based rejects if `callSession.ended_at` is present and not based on `callState.ended_at` commit dd0ca37a0ae4fd43b9007c2e53a595ec6cc6d502 Author: GitHub Actions Bot <> Date: Wed Aug 21 12:25:23 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.1.0 commit 7d721740394b2ac0a4a4cb76782156f6243007b3 Author: GitHub Actions Bot <> Date: Wed Aug 21 12:24:59 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 0.10.2 commit 947e27ecbbfd61a22c0b09e54bc86944bf82f7b9 Author: GitHub Actions Bot <> Date: Wed Aug 21 12:24:41 2024 +0000 chore(@stream-io/video-react-sdk): release version 1.2.21 commit ee6cc645ee982ce8531e04fa3bd3c0d71e3028d5 Author: GitHub Actions Bot <> Date: Wed Aug 21 12:24:33 2024 +0000 chore(@stream-io/video-react-bindings): release version 0.4.53 commit 06a7695aae69c25445f96630c86baad5f81bf580 Author: GitHub Actions Bot <> Date: Wed Aug 21 12:24:08 2024 +0000 chore(@stream-io/video-client): release version 1.5.0 commit 7f4d836511d9afdcd61bf5c6317611d3725953a6 Author: Santhosh Vaiyapuri <[email protected]> Date: Wed Aug 21 14:21:06 2024 +0200 feat(client): add a instance getter (#1461) * Created `StreamVideoClient.getOrCreateInstance` method * Updated RN samples * Tested on RN dogfood app, saves 3 unnecessary call.get() on incoming call when app is in background * Updated docs: ~React~, RN, ~JS~ commit c09e648f6ff09042dd3066919e7c703cd894d56d Author: Matvei Andrienko <[email protected]> Date: Tue Aug 20 15:14:56 2024 +0200 chore: add a note about credentials to sample video calling app (#1464) The sample app code used to have confusing comment from the time when credentials were provided in a separate widget in our tutorials. Now we just point to the tutorial which has demo crendentials. commit 6f4725a5a2c7190cc97dcd2903fa8d31e6214ab9 Author: Oliver Lazoroski <[email protected]> Date: Tue Aug 20 14:46:59 2024 +0200 docs: enable backstage in the code sample commit 5c6e8c75f631266ff4c41d4acac663d720e9ff9d Author: Oliver Lazoroski <[email protected]> Date: Tue Aug 20 14:35:05 2024 +0200 docs: make values more explicit commit 0cb6be66a62c780914019ba01066ca1d728be4d9 Author: Oliver Lazoroski <[email protected]> Date: Tue Aug 20 14:28:38 2024 +0200 docs: add sections for join_ahead_time_seconds (#1465) Adds sections for the `join_ahead_time_seconds` backstage option commit 2530c5a2d1a12edd317f740c03c44c09d68a3377 Author: Oliver Lazoroski <[email protected]> Date: Mon Aug 19 15:43:19 2024 +0200 chore: run release workflow only when `packages/**` are changed commit b27e3c00381be187c639b6b6949750a0ee462719 Author: Oliver Lazoroski <[email protected]> Date: Mon Aug 19 15:39:32 2024 +0200 chore: enable workflow_dispatch event commit bb753512a78e9105a7a3b7b76f0037bf985be0f2 Author: Santhosh Vaiyapuri <[email protected]> Date: Mon Aug 19 12:33:45 2024 +0200 chore(client): inform WS connect errors (#1463) For this code ``` async () => { try { await call?.getOrCreate(); } catch (error) { console.error('Failed to get or create call', error); } }; ``` Say if WS connect has failed. **Current behaviour of the log:** ``` Failed to get or create call undefined ``` **Changed behaviour in this PR:** ``` Failed to get or create call [Error: WS connection failed due to blah blah] ``` commit d5673bb2fd9c8971289ffcffc20ca27b506f29f2 Author: GitHub Actions Bot <> Date: Wed Aug 14 13:19:42 2024 +0000 chore(@stream-io/video-react-native-dogfood): release version 4.0.9 commit acf965e13fca643356739eb460a2c8d93277f02d Author: GitHub Actions Bot <> Date: Wed Aug 14 13:19:18 2024 +0000 chore(@stream-io/video-react-native-sdk): release version 0.10.1 commit a0eae46fd6c3a24f1955c53797d8de6d890add59 Author: Santhosh Vaiyapuri <[email protected]> Date: Wed Aug 14 15:16:04 2024 +0200 chore: log that notifee is not installed only on Android 7 and below commit 18718e637265e02510a3d01a35be37e9a18d5117 Author: Santhosh Vaiyapuri <[email protected]> Date: Wed Aug 14 15:14:33 2024 +0200 fix: push notifications not dismissed automatically on android 8 and above commit ce36fc8038b65904dd8f26a098eb12e5d3c2c9b2 Author: Sacha Arbonel <[email protected]> Date: Wed Aug 14 10:10:57 2024 +0200 fix: refactor ClosedCaptions components with custom queue hook (#1462) This PR introduces a custom hook useDeduplicatedQueue to improve the management of closed captions in both the ClosedCaptions and …
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
Enables support for SVC codecs (VP9 and AV1).
Adds new API that allows codec overriding:
call.updatePublishOptions({ preferredCodec: 'vp9' })
Implementation notes:
call.updatePublishOptions({ forceCodec: 'vp9' })
The SDK ships a predefined bitrate lookup table now; in the future, this mapping should come from our backend. The bitrates used here enable ~30-50% less network usage while maintaining the same video quality (h264, vp9).
scalabilityMode
vp8
as it has intermittent issues when other codecs are usedh264
as it is hardware accelerated and yields best performanceh264
as it is hardware-acceleratedvp8
by defaultGetStream/protocol#776