kasunk99-livestream-core 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHostSocket.d.ts","sourceRoot":"","sources":["../../src/hooks/useHostSocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAYH,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAC;AAoB3B,MAAM,MAAM,oBAAoB,GAAG;IACjC,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG;IAC5C,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC,CAAC;AAMF,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"useHostSocket.d.ts","sourceRoot":"","sources":["../../src/hooks/useHostSocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAYH,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAC;AAoB3B,MAAM,MAAM,oBAAoB,GAAG;IACjC,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG;IAC5C,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC,CAAC;AAMF,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,mBAAmB,CAkjBrF"}
|
|
@@ -101,15 +101,16 @@ export function useHostSocket(options = {}) {
|
|
|
101
101
|
}
|
|
102
102
|
catch { /* ignore */ }
|
|
103
103
|
resetHostState();
|
|
104
|
-
// Step 3 — stop
|
|
105
|
-
//
|
|
104
|
+
// Step 3 — stop tracks deferred: give the executor a moment to finish pc.close().
|
|
105
|
+
// Screen stream: use release() not t.stop(). release() calls TrackPrivate.dispose()
|
|
106
|
+
// → ScreenCaptureController.dispose() → MediaProjectionService.abort() +
|
|
107
|
+
// videoCapturer.dispose() → decrements captureStopped latch immediately.
|
|
108
|
+
// t.stop() alone only calls stopCapture() which blocks the latch for up to 60 s
|
|
109
|
+
// when peerConnectionDispose() already freed the SurfaceTextureHelper.
|
|
106
110
|
setTimeout(() => {
|
|
107
111
|
try {
|
|
108
|
-
screenStreamToStop
|
|
109
|
-
?.
|
|
110
|
-
t.stop?.();
|
|
111
|
-
}
|
|
112
|
-
catch { /* ignore */ } });
|
|
112
|
+
screenStreamToStop
|
|
113
|
+
?.release?.();
|
|
113
114
|
}
|
|
114
115
|
catch { /* ignore */ }
|
|
115
116
|
try {
|
|
@@ -500,17 +501,16 @@ export function useHostSocket(options = {}) {
|
|
|
500
501
|
patchHostState({ status: 'Stopping screen share...' });
|
|
501
502
|
const screenStream = hostSession.screenStream;
|
|
502
503
|
hostSession.screenStream = null; // guard: stopScreenShare() bails on re-entry
|
|
503
|
-
//
|
|
504
|
-
// →
|
|
505
|
-
//
|
|
506
|
-
//
|
|
507
|
-
//
|
|
508
|
-
//
|
|
509
|
-
|
|
510
|
-
.
|
|
511
|
-
t.stop?.();
|
|
504
|
+
// release() calls TrackPrivate.dispose() → ScreenCaptureController.dispose()
|
|
505
|
+
// → MediaProjectionService.abort() + videoCapturer.dispose() which unblocks
|
|
506
|
+
// captureStopped.await() immediately. t.stop() alone does not call dispose(),
|
|
507
|
+
// so the background thread in stopCapture() blocks the latch for up to 60 s
|
|
508
|
+
// when peerConnectionDispose() already freed SurfaceTextureHelper (e.g. after
|
|
509
|
+
// the user navigates away and comes back to a fresh component mount).
|
|
510
|
+
try {
|
|
511
|
+
screenStream.release?.();
|
|
512
512
|
}
|
|
513
|
-
catch { /* ignore */ }
|
|
513
|
+
catch { /* ignore */ }
|
|
514
514
|
}
|
|
515
515
|
fullCleanup();
|
|
516
516
|
patchHostState({ status: 'Stream stopped' });
|
package/package.json
CHANGED