Skip to content

Commit ac1fd30

Browse files
authored
Merge branch 'main' into feat/pip-placeholder
2 parents 2e963ab + 0b262dc commit ac1fd30

File tree

51 files changed

+2784
-1369
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+2784
-1369
lines changed

.styles/Vocab/Base/accept.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,3 +93,5 @@ enum
9393
everytime
9494
telemedicine
9595
realtime
96+
Bridgeless
97+
Interop

packages/client/CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,27 @@
22

33
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
44

5+
## [1.8.3](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.8.2...@stream-io/video-client-1.8.3) (2024-10-10)
6+
7+
8+
### Bug Fixes
9+
10+
* do not release track if track was not removed from stream ([#1517](https://github.com/GetStream/stream-video-js/issues/1517)) ([5bfc528](https://github.com/GetStream/stream-video-js/commit/5bfc52850c36ffe0de37e47066538a8a14dc9e01))
11+
12+
## [1.8.2](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.8.1...@stream-io/video-client-1.8.2) (2024-10-10)
13+
14+
15+
### Bug Fixes
16+
17+
* add track release for react-native whenever track stop is called ([#1516](https://github.com/GetStream/stream-video-js/issues/1516)) ([5074510](https://github.com/GetStream/stream-video-js/commit/50745101d28d0339592c22ca02b076040ad3bdeb))
18+
19+
## [1.8.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.8.0...@stream-io/video-client-1.8.1) (2024-10-10)
20+
21+
22+
### Bug Fixes
23+
24+
* mic not fully released in some cases ([#1515](https://github.com/GetStream/stream-video-js/issues/1515)) ([b7bf90b](https://github.com/GetStream/stream-video-js/commit/b7bf90b9b1a83fb80d01a82ebee8754343963ae5))
25+
526
## [1.8.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.7.4...@stream-io/video-client-1.8.0) (2024-10-02)
627

728

packages/client/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@stream-io/video-client",
3-
"version": "1.8.0",
3+
"version": "1.8.3",
44
"packageManager": "[email protected]",
55
"main": "dist/index.cjs.js",
66
"module": "dist/index.es.js",

packages/client/src/devices/devices.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,6 @@ export const disposeOfMediaStream = (stream: MediaStream) => {
276276
if (!stream.active) return;
277277
stream.getTracks().forEach((track) => {
278278
track.stop();
279-
stream.removeTrack(track);
280279
});
281280
// @ts-expect-error release() is present in react-native-webrtc and must be called to dispose the stream
282281
if (typeof stream.release === 'function') {

packages/client/src/events/call.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,8 @@ export const watchCallEnded = (call: Call) => {
7676
return function onCallEnded() {
7777
const { callingState } = call.state;
7878
if (
79-
callingState === CallingState.RINGING ||
80-
callingState === CallingState.JOINED ||
81-
callingState === CallingState.JOINING
79+
callingState !== CallingState.IDLE &&
80+
callingState !== CallingState.LEFT
8281
) {
8382
call.leave({ reason: 'call.ended event received' }).catch((err) => {
8483
call.logger('error', 'Failed to leave call after call.ended ', err);

packages/client/src/helpers/RNSpeechDetector.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,18 @@ export class RNSpeechDetector {
88
private pc1 = new RTCPeerConnection({});
99
private pc2 = new RTCPeerConnection({});
1010
private intervalId: NodeJS.Timeout | undefined;
11+
private audioStream: MediaStream | undefined;
1112

1213
/**
1314
* Starts the speech detection.
1415
*/
1516
public async start() {
1617
try {
18+
this.cleanupAudioStream();
1719
const audioStream = await navigator.mediaDevices.getUserMedia({
1820
audio: true,
1921
});
22+
this.audioStream = audioStream;
2023

2124
this.pc1.addEventListener('icecandidate', async (e) => {
2225
await this.pc2.addIceCandidate(
@@ -55,6 +58,7 @@ export class RNSpeechDetector {
5558
public stop() {
5659
this.pc1.close();
5760
this.pc2.close();
61+
this.cleanupAudioStream();
5862
if (this.intervalId) {
5963
clearInterval(this.intervalId);
6064
}
@@ -97,4 +101,18 @@ export class RNSpeechDetector {
97101
clearInterval(this.intervalId);
98102
};
99103
}
104+
105+
private cleanupAudioStream() {
106+
if (!this.audioStream) {
107+
return;
108+
}
109+
this.audioStream.getTracks().forEach((track) => track.stop());
110+
if (
111+
// @ts-expect-error release() is present in react-native-webrtc
112+
typeof this.audioStream.release === 'function'
113+
) {
114+
// @ts-expect-error called to dispose the stream in RN
115+
this.audioStream.release();
116+
}
117+
}
100118
}

packages/react-bindings/CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,21 @@
22

33
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
44

5+
## [1.1.3](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-bindings-1.1.2...@stream-io/video-react-bindings-1.1.3) (2024-10-10)
6+
7+
### Dependency Updates
8+
9+
* `@stream-io/video-client` updated to version `1.8.3`
10+
## [1.1.2](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-bindings-1.1.1...@stream-io/video-react-bindings-1.1.2) (2024-10-10)
11+
12+
### Dependency Updates
13+
14+
* `@stream-io/video-client` updated to version `1.8.2`
15+
## [1.1.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-bindings-1.1.0...@stream-io/video-react-bindings-1.1.1) (2024-10-10)
16+
17+
### Dependency Updates
18+
19+
* `@stream-io/video-client` updated to version `1.8.1`
520
## [1.1.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-bindings-1.0.10...@stream-io/video-react-bindings-1.1.0) (2024-10-02)
621

722
### Dependency Updates

packages/react-bindings/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@stream-io/video-react-bindings",
3-
"version": "1.1.0",
3+
"version": "1.1.3",
44
"packageManager": "[email protected]",
55
"main": "./dist/index.cjs.js",
66
"module": "./dist/index.es.js",

packages/react-native-sdk/CHANGELOG.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,38 @@
22

33
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
44

5+
## [1.1.5](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.1.4...@stream-io/video-react-native-sdk-1.1.5) (2024-10-16)
6+
7+
8+
### Bug Fixes
9+
10+
* **react-native:** set objectFit based on actual video track dimensions ([#1520](https://github.com/GetStream/stream-video-js/issues/1520)) ([44ef7d2](https://github.com/GetStream/stream-video-js/commit/44ef7d2e69a910be45b2d3a7643c3f58e0f29803))
11+
12+
## [1.1.4](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.1.3...@stream-io/video-react-native-sdk-1.1.4) (2024-10-10)
13+
14+
### Dependency Updates
15+
16+
* `@stream-io/video-client` updated to version `1.8.3`
17+
* `@stream-io/video-react-bindings` updated to version `1.1.3`
18+
## [1.1.3](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.1.2...@stream-io/video-react-native-sdk-1.1.3) (2024-10-10)
19+
20+
### Dependency Updates
21+
22+
* `@stream-io/video-client` updated to version `1.8.2`
23+
* `@stream-io/video-react-bindings` updated to version `1.1.2`
24+
## [1.1.2](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.1.1...@stream-io/video-react-native-sdk-1.1.2) (2024-10-10)
25+
26+
### Dependency Updates
27+
28+
* `@stream-io/video-client` updated to version `1.8.1`
29+
* `@stream-io/video-react-bindings` updated to version `1.1.1`
30+
## [1.1.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.1.0...@stream-io/video-react-native-sdk-1.1.1) (2024-10-04)
31+
32+
33+
### Bug Fixes
34+
35+
* clarify about USE_FULL_SCREEN_INTENT android permission ([#1510](https://github.com/GetStream/stream-video-js/issues/1510)) ([ec61b32](https://github.com/GetStream/stream-video-js/commit/ec61b32449c89885b87fe972a38d25503bab0c0f))
36+
537
## [1.1.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.0.14...@stream-io/video-react-native-sdk-1.1.0) (2024-10-02)
638

739
### Dependency Updates

packages/react-native-sdk/docusaurus/docs/reactnative/01-setup/02-installation/01-react-native.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,10 @@ In iOS simulators, recording audio or video is not supported. So always test you
131131

132132
In Android emulators, a static video stream can be sent and so it can be used for testing. However, we recommend that you always test your app on an actual device for the best experience.
133133

134+
## New Architecture (Fabric)
135+
136+
The SDK's native modules and views are compatible with the [New Architecture](https://reactnative.dev/docs/the-new-architecture/landing-page) and [Bridgeless mode](https://github.com/reactwg/react-native-new-architecture/discussions/154) through the **New Renderer Interop Layers**. These layers are [automatically enabled](https://github.com/reactwg/react-native-new-architecture/discussions/175) when you turn on the New Architecture in React Native 0.74 and above. We recommend that you use React Native 0.74+ if you are using the New Architecture with the SDK.
137+
134138
## Troubleshooting
135139

136140
<Troubleshooting isExpo={false} />

0 commit comments

Comments
 (0)