Skip to content
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 40 commits into from
Oct 16, 2024
Merged

feat(svc-codec): VP9 and AV1 support #1434

merged 40 commits into from
Oct 16, 2024

Conversation

oliverlaz
Copy link
Member

@oliverlaz oliverlaz commented Jul 4, 2024

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

GetStream/protocol#776

@oliverlaz oliverlaz changed the title feat(vp9): experimental VP9 support feat(svc-codec): VP9 and AV1 support Oct 10, 2024
@oliverlaz oliverlaz merged commit c9c8530 into main Oct 16, 2024
19 checks passed
@oliverlaz oliverlaz deleted the vp9-publish branch October 16, 2024 12:45
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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants