@stream-io/video-react-sdk 0.0.1-alpha.80 → 0.0.1-alpha.82

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/css/styles.css +1 -1
  3. package/dist/src/components/CallControls/CallStatsButton.js +1 -1
  4. package/dist/src/components/CallControls/CallStatsButton.js.map +1 -1
  5. package/dist/src/components/CallStats/CallStats.d.ts +6 -0
  6. package/dist/src/components/{StreamCall → CallStats}/CallStats.js +3 -3
  7. package/dist/src/components/CallStats/CallStats.js.map +1 -0
  8. package/dist/src/components/CallStats/CallStatsLatencyChart.js.map +1 -0
  9. package/dist/src/components/CallStats/index.d.ts +2 -0
  10. package/dist/src/components/CallStats/index.js +3 -0
  11. package/dist/src/components/CallStats/index.js.map +1 -0
  12. package/dist/src/components/Debug/DebugStatsView.d.ts +1 -1
  13. package/dist/src/components/Debug/DebugStatsView.js +32 -7
  14. package/dist/src/components/Debug/DebugStatsView.js.map +1 -1
  15. package/dist/src/core/components/ParticipantView/DefaultParticipantViewUI.js +1 -1
  16. package/dist/src/core/components/ParticipantView/DefaultParticipantViewUI.js.map +1 -1
  17. package/dist/src/hooks/index.d.ts +0 -1
  18. package/dist/src/hooks/index.js +0 -1
  19. package/dist/src/hooks/index.js.map +1 -1
  20. package/package.json +7 -5
  21. package/src/components/CallControls/CallStatsButton.tsx +1 -1
  22. package/src/components/{StreamCall → CallStats}/CallStats.tsx +3 -3
  23. package/src/components/CallStats/index.ts +2 -0
  24. package/src/components/Debug/DebugStatsView.tsx +60 -7
  25. package/src/core/components/ParticipantView/DefaultParticipantViewUI.tsx +1 -1
  26. package/src/hooks/index.ts +0 -1
  27. package/dist/src/components/StreamCall/CallStats.d.ts +0 -2
  28. package/dist/src/components/StreamCall/CallStats.js.map +0 -1
  29. package/dist/src/components/StreamCall/CallStatsLatencyChart.js.map +0 -1
  30. package/dist/src/hooks/useRtcStats.d.ts +0 -11
  31. package/dist/src/hooks/useRtcStats.js +0 -39
  32. package/dist/src/hooks/useRtcStats.js.map +0 -1
  33. package/src/hooks/useRtcStats.ts +0 -36
  34. /package/dist/src/components/{StreamCall → CallStats}/CallStatsLatencyChart.d.ts +0 -0
  35. /package/dist/src/components/{StreamCall → CallStats}/CallStatsLatencyChart.js +0 -0
  36. /package/src/components/{StreamCall → CallStats}/CallStatsLatencyChart.tsx +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.0.1-alpha.82](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-0.0.1-alpha.81...@stream-io/video-react-sdk-0.0.1-alpha.82) (2023-05-25)
6
+
7
+
8
+ ### Features
9
+
10
+ * show simulcast track stats in debug view ([#553](https://github.com/GetStream/stream-video-js/issues/553)) ([2c993f5](https://github.com/GetStream/stream-video-js/commit/2c993f53cfe7e76b789bc57d6034b01ff57de8d4))
11
+
12
+
13
+
14
+ ## [0.0.1-alpha.81](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-0.0.1-alpha.80...@stream-io/video-react-sdk-0.0.1-alpha.81) (2023-05-25)
15
+
16
+
17
+
5
18
  ## [0.0.1-alpha.80](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-0.0.1-alpha.79...@stream-io/video-react-sdk-0.0.1-alpha.80) (2023-05-25)
6
19
 
7
20
 
@@ -2421,7 +2421,7 @@
2421
2421
  height: 1.5rem;
2422
2422
  background-position: center;
2423
2423
  background-repeat: no-repeat;
2424
- background-image: var(--str-video__icon--network-quality);
2424
+ background-image: var(--str-video__icon--stats);
2425
2425
  cursor: pointer;
2426
2426
  }
2427
2427
 
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from 'react';
3
- import { CallStats } from '../StreamCall/CallStats';
3
+ import { CallStats } from '../CallStats';
4
4
  import { CompositeButton, IconButton } from '../Button/';
5
5
  import { MenuToggle } from '../Menu';
6
6
  export const CallStatsButton = ({ caption = 'Stats', }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"CallStatsButton.js","sourceRoot":"","sources":["../../../../src/components/CallControls/CallStatsButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,UAAU,EAAyB,MAAM,SAAS,CAAC;AAM5D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,OAAO,GAAG,OAAO,GACI,EAAE,EAAE;IACzB,OAAO,CACL,KAAC,UAAU,kBAAC,SAAS,EAAC,SAAS,EAAC,YAAY,EAAE,gBAAgB,gBAC5D,KAAC,SAAS,KAAG,IACF,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACxB,KAAC,eAAe,kBAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,gBAC5D,KAAC,UAAU,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,YAAY,GAAG,IAC9B,CACnB,CAAC,CAAC"}
1
+ {"version":3,"file":"CallStatsButton.js","sourceRoot":"","sources":["../../../../src/components/CallControls/CallStatsButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,UAAU,EAAyB,MAAM,SAAS,CAAC;AAM5D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,OAAO,GAAG,OAAO,GACI,EAAE,EAAE;IACzB,OAAO,CACL,KAAC,UAAU,kBAAC,SAAS,EAAC,SAAS,EAAC,YAAY,EAAE,gBAAgB,gBAC5D,KAAC,SAAS,KAAG,IACF,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACxB,KAAC,eAAe,kBAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,gBAC5D,KAAC,UAAU,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,YAAY,GAAG,IAC9B,CACnB,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export declare const CallStats: () => JSX.Element;
3
+ export declare const StatCard: (props: {
4
+ label: string;
5
+ value: string;
6
+ }) => JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useEffect, useRef, useState } from 'react';
3
- import { useCurrentCallStatsReport } from '@stream-io/video-react-bindings';
3
+ import { useCallStatsReport } from '@stream-io/video-react-bindings';
4
4
  import { CallStatsLatencyChart } from './CallStatsLatencyChart';
5
5
  export const CallStats = () => {
6
6
  const [latencyBuffer, setLatencyBuffer] = useState(() => {
@@ -10,7 +10,7 @@ export const CallStats = () => {
10
10
  const [publishBitrate, setPublishBitrate] = useState('-');
11
11
  const [subscribeBitrate, setSubscribeBitrate] = useState('-');
12
12
  const previousStats = useRef();
13
- const callStatsReport = useCurrentCallStatsReport();
13
+ const callStatsReport = useCallStatsReport();
14
14
  useEffect(() => {
15
15
  if (!callStatsReport)
16
16
  return;
@@ -37,7 +37,7 @@ export const CallStats = () => {
37
37
  }, [callStatsReport]);
38
38
  return (_jsx("div", Object.assign({ className: "str-video__call-stats" }, { children: callStatsReport && (_jsxs(_Fragment, { children: [_jsx("h3", { children: "Call Latency" }), _jsx(CallStatsLatencyChart, { values: latencyBuffer }), _jsx("h3", { children: "Call performance" }), _jsxs("div", Object.assign({ className: "str-video__call-stats__card-container" }, { children: [_jsx(StatCard, { label: "Region", value: callStatsReport.datacenter }), _jsx(StatCard, { label: "Latency", value: `${callStatsReport.publisherStats.averageRoundTripTimeInMs} ms.` }), _jsx(StatCard, { label: "Receive jitter", value: `${callStatsReport.subscriberStats.averageJitterInMs} ms.` }), _jsx(StatCard, { label: "Publish jitter", value: `${callStatsReport.publisherStats.averageJitterInMs} ms.` }), _jsx(StatCard, { label: "Publish resolution", value: toFrameSize(callStatsReport.publisherStats) }), _jsx(StatCard, { label: "Publish quality drop reason", value: callStatsReport.publisherStats.qualityLimitationReasons }), _jsx(StatCard, { label: "Receiving resolution", value: toFrameSize(callStatsReport.subscriberStats) }), _jsx(StatCard, { label: "Receive quality drop reason", value: callStatsReport.subscriberStats.qualityLimitationReasons }), _jsx(StatCard, { label: "Publish bitrate", value: publishBitrate }), _jsx(StatCard, { label: "Receiving bitrate", value: subscribeBitrate })] }))] })) })));
39
39
  };
40
- const StatCard = (props) => {
40
+ export const StatCard = (props) => {
41
41
  const { label, value } = props;
42
42
  return (_jsxs("div", Object.assign({ className: "str-video__call-stats__card" }, { children: [_jsx("div", Object.assign({ className: "str-video__call-stats__card_label" }, { children: label })), _jsx("div", Object.assign({ className: "str-video__call-stats__card_value" }, { children: value }))] })));
43
43
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallStats.js","sourceRoot":"","sources":["../../../../src/components/CallStats/CallStats.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallStatsLatencyChart.js","sourceRoot":"","sources":["../../../../src/components/CallStats/CallStatsLatencyChart.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAErC,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAChC,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;QACpB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,CACL,4BAAK,SAAS,EAAC,4CAA4C,gBACzD,KAAC,cAAc,IACb,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAC3B,IAAI,EAAE;gBACJ;oBACE,EAAE,EAAE,SAAS;oBACb,IAAI,EAAE,IAAI;iBACX;aACF,EACD,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAClD,YAAY,QACZ,WAAW,EAAE,KAAK,EAClB,WAAW,QACX,YAAY,EAAC,GAAG,EAChB,aAAa,QACb,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EACzB,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;gBAC/B,IAAI,EAAE,IAAI;aACX,EACD,KAAK,EAAE;gBACL,IAAI,EAAE;oBACJ,KAAK,EAAE;wBACL,IAAI,EAAE;4BACJ,IAAI,EAAE,SAAS;yBAChB;wBACD,IAAI,EAAE;4BACJ,MAAM,EAAE,SAAS;yBAClB;qBACF;iBACF;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE;wBACJ,WAAW,EAAE,GAAG;qBACjB;iBACF;aACF,GACD,IACE,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './CallStats';
2
+ export * from './CallStatsLatencyChart';
@@ -0,0 +1,3 @@
1
+ export * from './CallStats';
2
+ export * from './CallStatsLatencyChart';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/CallStats/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC"}
@@ -2,6 +2,6 @@
2
2
  import { Call } from '@stream-io/video-client';
3
3
  export declare const DebugStatsView: (props: {
4
4
  call: Call;
5
- kind: 'subscriber' | 'publisher';
6
5
  mediaStream?: MediaStream;
6
+ sessionId: string;
7
7
  }) => JSX.Element;
@@ -1,11 +1,20 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState } from 'react';
3
- import { useRtcStats } from '../../hooks/useRtcStats';
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
4
3
  import { useFloatingUIPreset } from '../../hooks';
4
+ import { StatCard } from '../CallStats';
5
+ import { useCallStatsReport } from '@stream-io/video-react-bindings';
5
6
  export const DebugStatsView = (props) => {
6
7
  var _a;
7
- const { call, kind, mediaStream } = props;
8
- const stats = useRtcStats(call, kind, mediaStream);
8
+ const { call, mediaStream, sessionId } = props;
9
+ const callStatsReport = useCallStatsReport();
10
+ useEffect(() => {
11
+ call.startReportingStatsFor(sessionId);
12
+ return () => {
13
+ call.stopReportingStatsFor(sessionId);
14
+ };
15
+ }, [call, sessionId]);
16
+ const reportForTracks = callStatsReport === null || callStatsReport === void 0 ? void 0 : callStatsReport.participants[sessionId];
17
+ const trackStats = reportForTracks === null || reportForTracks === void 0 ? void 0 : reportForTracks.flatMap((report) => report.streams);
9
18
  const { refs, strategy, y, x } = useFloatingUIPreset({
10
19
  placement: 'top',
11
20
  strategy: 'absolute',
@@ -16,11 +25,27 @@ export const DebugStatsView = (props) => {
16
25
  return (_jsxs(_Fragment, { children: [_jsx("span", { className: "str-video__debug__track-stats-icon", tabIndex: 0, ref: refs.setReference, title: settings &&
17
26
  `${settings.width}x${settings.height}@${Math.round(settings.frameRate || 0)}`, onClick: () => {
18
27
  setIsPopperOpen((v) => !v);
19
- } }), isPopperOpen && (_jsx("div", Object.assign({ className: "str-video__debug__track-stats", ref: refs.setFloating, style: {
28
+ } }), isPopperOpen && (_jsxs("div", Object.assign({ className: "str-video__debug__track-stats str-video__call-stats", ref: refs.setFloating, style: {
20
29
  position: strategy,
21
30
  top: y !== null && y !== void 0 ? y : 0,
22
31
  left: x !== null && x !== void 0 ? x : 0,
23
32
  overflowY: 'auto',
24
- } }, { children: _jsx("pre", { children: JSON.stringify(stats, null, 2) }) })))] }));
33
+ } }, { children: [_jsx("h3", { children: "Participant stats" }), _jsx("div", Object.assign({ className: "str-video__call-stats__card-container" }, { children: trackStats === null || trackStats === void 0 ? void 0 : trackStats.map((track) => {
34
+ if (track.kind === 'video') {
35
+ return (_jsx(StatCard, { label: `${track.kind}: ${track.codec} ` +
36
+ (track.rid ? ` (${track.rid})` : ''), value: `${track.frameWidth || 0}x${track.frameHeight || 0}@${track.framesPerSecond || 0}fps` }, `${track.rid}/${track.ssrc}/${track.codec}/${track.kind}`));
37
+ }
38
+ else if (track.kind === 'audio') {
39
+ return (_jsx(StatCard, { label: track.codec || 'N/A', value: `Jitter: ${track.jitter || 0}ms` }, `${track.ssrc}/${track.codec}/${track.kind}`));
40
+ }
41
+ return null;
42
+ }).filter(Boolean) })), reportForTracks === null || reportForTracks === void 0 ? void 0 : reportForTracks.map((report, index) => (_jsx("pre", { children: JSON.stringify(unwrapStats(report.rawStats), null, 2) }, index)))] })))] }));
43
+ };
44
+ const unwrapStats = (rawStats) => {
45
+ const decodedStats = {};
46
+ rawStats === null || rawStats === void 0 ? void 0 : rawStats.forEach((s) => {
47
+ decodedStats[s.id] = s;
48
+ });
49
+ return decodedStats;
25
50
  };
26
51
  //# sourceMappingURL=DebugStatsView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DebugStatsView.js","sourceRoot":"","sources":["../../../../src/components/Debug/DebugStatsView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAI9B,EAAE,EAAE;;IACH,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAEnD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,mBAAmB,CAAC;QACnD,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,UAAU;KACrB,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,CAAC,UAAU,CAAC,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,cAAc,EAAE,mCAAI,EAAE,CAAC;IACzD,MAAM,QAAQ,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,EAAE,CAAC;IAC3C,OAAO,CACL,8BACE,eACE,SAAS,EAAC,oCAAoC,EAC9C,QAAQ,EAAE,CAAC,EACX,GAAG,EAAE,IAAI,CAAC,YAAY,EACtB,KAAK,EACH,QAAQ;oBACR,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAChD,QAAQ,CAAC,SAAS,IAAI,CAAC,CACxB,EAAE,EAEL,OAAO,EAAE,GAAG,EAAE;oBACZ,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC,GACD,EACD,YAAY,IAAI,CACf,4BACE,SAAS,EAAC,+BAA+B,EACzC,GAAG,EAAE,IAAI,CAAC,WAAW,EACrB,KAAK,EAAE;oBACL,QAAQ,EAAE,QAAQ;oBAClB,GAAG,EAAE,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,CAAC;oBACX,IAAI,EAAE,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,CAAC;oBACZ,SAAS,EAAE,MAAM;iBAClB,gBAED,wBAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAO,IACvC,CACP,IACA,CACJ,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"DebugStatsView.js","sourceRoot":"","sources":["../../../../src/components/Debug/DebugStatsView.tsx"],"names":[],"mappings":"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"}
@@ -31,6 +31,6 @@ export const ParticipantDetails = ({ indicatorsVisible = true, }) => {
31
31
  return (_jsxs("div", Object.assign({ className: "str-video__participant-details" }, { children: [_jsxs("span", Object.assign({ className: "str-video__participant-details__name" }, { children: [name || userId, indicatorsVisible && isDominantSpeaker && (_jsx("span", { className: "str-video__participant-details__name--dominant_speaker", title: "Dominant speaker" })), indicatorsVisible && (_jsx(Notification, Object.assign({ isVisible: isLoggedInUser &&
32
32
  connectionQuality === SfuModels.ConnectionQuality.POOR, message: "Poor connection quality. Please check your internet connection." }, { children: connectionQualityAsString && (_jsx("span", { className: clsx('str-video__participant-details__connection-quality', `str-video__participant-details__connection-quality--${connectionQualityAsString}`), title: connectionQualityAsString })) }))), indicatorsVisible && !hasAudio && (_jsx("span", { className: "str-video__participant-details__name--audio-muted" })), indicatorsVisible && !hasVideo && (_jsx("span", { className: "str-video__participant-details__name--video-muted" })), indicatorsVisible && isPinned && (
33
33
  // TODO: remove this monstrosity once we have a proper design
34
- _jsx("span", { title: "Unpin", onClick: () => call === null || call === void 0 ? void 0 : call.setParticipantPinnedAt(sessionId), style: { cursor: 'pointer' }, className: "str-video__participant-details__name--pinned" }))] })), isDebugMode && (_jsxs(_Fragment, { children: [_jsx(DebugParticipantPublishQuality, { participant: participant, call: call }), _jsx(DebugStatsView, { call: call, kind: isLoggedInUser ? 'publisher' : 'subscriber', mediaStream: videoStream })] }))] })));
34
+ _jsx("span", { title: "Unpin", onClick: () => call === null || call === void 0 ? void 0 : call.setParticipantPinnedAt(sessionId), style: { cursor: 'pointer' }, className: "str-video__participant-details__name--pinned" }))] })), isDebugMode && (_jsxs(_Fragment, { children: [_jsx(DebugParticipantPublishQuality, { participant: participant, call: call }), _jsx(DebugStatsView, { call: call, sessionId: sessionId, mediaStream: videoStream })] }))] })));
35
35
  };
36
36
  //# sourceMappingURL=DefaultParticipantViewUI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultParticipantViewUI.js","sourceRoot":"","sources":["../../../../../src/core/components/ParticipantView/DefaultParticipantViewUI.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DefaultParticipantViewUI.js","sourceRoot":"","sources":["../../../../../src/core/components/ParticipantView/DefaultParticipantViewUI.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1 @@
1
- export * from './useRtcStats';
2
1
  export * from './useFloatingUIPreset';
@@ -1,3 +1,2 @@
1
- export * from './useRtcStats';
2
1
  export * from './useFloatingUIPreset';
3
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -25,9 +25,9 @@
25
25
  "@floating-ui/react": "^0.22.0",
26
26
  "@nivo/core": "^0.80.0",
27
27
  "@nivo/line": "^0.80.0",
28
- "@stream-io/i18n": "^0.0.1-alpha.62",
29
- "@stream-io/video-client": "^0.0.1-alpha.186",
30
- "@stream-io/video-react-bindings": "^0.0.1-alpha.73",
28
+ "@stream-io/i18n": "^0.0.1-alpha.64",
29
+ "@stream-io/video-client": "^0.0.1-alpha.188",
30
+ "@stream-io/video-react-bindings": "^0.0.1-alpha.75",
31
31
  "clsx": "^1.2.1",
32
32
  "rxjs": "~7.8.1"
33
33
  },
@@ -36,8 +36,10 @@
36
36
  "react-dom": "^18.0.0"
37
37
  },
38
38
  "devDependencies": {
39
- "@stream-io/video-styling": "^0.0.1-alpha.58",
39
+ "@stream-io/video-styling": "^0.0.1-alpha.60",
40
+ "@types/prop-types": "^15.7.5",
40
41
  "@types/rimraf": "^3.0.2",
42
+ "prop-types": "^15.8.1",
41
43
  "react": "^18.2.0",
42
44
  "react-dom": "^18.2.0",
43
45
  "replace-in-file": "^6.3.5",
@@ -45,5 +47,5 @@
45
47
  "typedoc": "^0.24.7",
46
48
  "typescript": "^4.9.5"
47
49
  },
48
- "version": "0.0.1-alpha.80"
50
+ "version": "0.0.1-alpha.82"
49
51
  }
@@ -1,6 +1,6 @@
1
1
  import { forwardRef } from 'react';
2
2
 
3
- import { CallStats } from '../StreamCall/CallStats';
3
+ import { CallStats } from '../CallStats';
4
4
  import { CompositeButton, IconButton } from '../Button/';
5
5
  import { MenuToggle, ToggleMenuButtonProps } from '../Menu';
6
6
 
@@ -3,7 +3,7 @@ import {
3
3
  AggregatedStatsReport,
4
4
  CallStatsReport,
5
5
  } from '@stream-io/video-client';
6
- import { useCurrentCallStatsReport } from '@stream-io/video-react-bindings';
6
+ import { useCallStatsReport } from '@stream-io/video-react-bindings';
7
7
  import { CallStatsLatencyChart } from './CallStatsLatencyChart';
8
8
 
9
9
  export const CallStats = () => {
@@ -17,7 +17,7 @@ export const CallStats = () => {
17
17
  const [publishBitrate, setPublishBitrate] = useState('-');
18
18
  const [subscribeBitrate, setSubscribeBitrate] = useState('-');
19
19
  const previousStats = useRef<CallStatsReport>();
20
- const callStatsReport = useCurrentCallStatsReport();
20
+ const callStatsReport = useCallStatsReport();
21
21
 
22
22
  useEffect(() => {
23
23
  if (!callStatsReport) return;
@@ -95,7 +95,7 @@ export const CallStats = () => {
95
95
  );
96
96
  };
97
97
 
98
- const StatCard = (props: { label: string; value: string }) => {
98
+ export const StatCard = (props: { label: string; value: string }) => {
99
99
  const { label, value } = props;
100
100
  return (
101
101
  <div className="str-video__call-stats__card">
@@ -0,0 +1,2 @@
1
+ export * from './CallStats';
2
+ export * from './CallStatsLatencyChart';
@@ -1,15 +1,26 @@
1
- import { useState } from 'react';
1
+ import { useEffect, useState } from 'react';
2
2
  import { Call } from '@stream-io/video-client';
3
- import { useRtcStats } from '../../hooks/useRtcStats';
4
3
  import { useFloatingUIPreset } from '../../hooks';
4
+ import { StatCard } from '../CallStats';
5
+ import { useCallStatsReport } from '@stream-io/video-react-bindings';
5
6
 
6
7
  export const DebugStatsView = (props: {
7
8
  call: Call;
8
- kind: 'subscriber' | 'publisher';
9
9
  mediaStream?: MediaStream;
10
+ sessionId: string;
10
11
  }) => {
11
- const { call, kind, mediaStream } = props;
12
- const stats = useRtcStats(call, kind, mediaStream);
12
+ const { call, mediaStream, sessionId } = props;
13
+ const callStatsReport = useCallStatsReport();
14
+
15
+ useEffect(() => {
16
+ call.startReportingStatsFor(sessionId);
17
+ return () => {
18
+ call.stopReportingStatsFor(sessionId);
19
+ };
20
+ }, [call, sessionId]);
21
+
22
+ const reportForTracks = callStatsReport?.participants[sessionId];
23
+ const trackStats = reportForTracks?.flatMap((report) => report.streams);
13
24
 
14
25
  const { refs, strategy, y, x } = useFloatingUIPreset({
15
26
  placement: 'top',
@@ -38,7 +49,7 @@ export const DebugStatsView = (props: {
38
49
  />
39
50
  {isPopperOpen && (
40
51
  <div
41
- className="str-video__debug__track-stats"
52
+ className="str-video__debug__track-stats str-video__call-stats"
42
53
  ref={refs.setFloating}
43
54
  style={{
44
55
  position: strategy,
@@ -47,9 +58,51 @@ export const DebugStatsView = (props: {
47
58
  overflowY: 'auto',
48
59
  }}
49
60
  >
50
- <pre>{JSON.stringify(stats, null, 2)}</pre>
61
+ <h3>Participant stats</h3>
62
+ <div className="str-video__call-stats__card-container">
63
+ {trackStats
64
+ ?.map((track) => {
65
+ if (track.kind === 'video') {
66
+ return (
67
+ <StatCard
68
+ key={`${track.rid}/${track.ssrc}/${track.codec}/${track.kind}`}
69
+ label={
70
+ `${track.kind}: ${track.codec} ` +
71
+ (track.rid ? ` (${track.rid})` : '')
72
+ }
73
+ value={`${track.frameWidth || 0}x${
74
+ track.frameHeight || 0
75
+ }@${track.framesPerSecond || 0}fps`}
76
+ />
77
+ );
78
+ } else if (track.kind === 'audio') {
79
+ return (
80
+ <StatCard
81
+ key={`${track.ssrc}/${track.codec}/${track.kind}`}
82
+ label={track.codec || 'N/A'}
83
+ value={`Jitter: ${track.jitter || 0}ms`}
84
+ />
85
+ );
86
+ }
87
+ return null;
88
+ })
89
+ .filter(Boolean)}
90
+ </div>
91
+ {reportForTracks?.map((report, index) => (
92
+ <pre key={index}>
93
+ {JSON.stringify(unwrapStats(report.rawStats), null, 2)}
94
+ </pre>
95
+ ))}
51
96
  </div>
52
97
  )}
53
98
  </>
54
99
  );
55
100
  };
101
+
102
+ const unwrapStats = (rawStats?: RTCStatsReport) => {
103
+ const decodedStats: Record<string, string> = {};
104
+ rawStats?.forEach((s) => {
105
+ decodedStats[s.id] = s;
106
+ });
107
+ return decodedStats;
108
+ };
@@ -150,7 +150,7 @@ export const ParticipantDetails = ({
150
150
  />
151
151
  <DebugStatsView
152
152
  call={call}
153
- kind={isLoggedInUser ? 'publisher' : 'subscriber'}
153
+ sessionId={sessionId}
154
154
  mediaStream={videoStream}
155
155
  />
156
156
  </>
@@ -1,2 +1 @@
1
- export * from './useRtcStats';
2
1
  export * from './useFloatingUIPreset';
@@ -1,2 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const CallStats: () => JSX.Element;
@@ -1 +0,0 @@
1
- {"version":3,"file":"CallStats.js","sourceRoot":"","sources":["../../../../src/components/StreamCall/CallStats.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CallStatsLatencyChart.js","sourceRoot":"","sources":["../../../../src/components/StreamCall/CallStatsLatencyChart.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAErC,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAChC,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;QACpB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,CACL,4BAAK,SAAS,EAAC,4CAA4C,gBACzD,KAAC,cAAc,IACb,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAC3B,IAAI,EAAE;gBACJ;oBACE,EAAE,EAAE,SAAS;oBACb,IAAI,EAAE,IAAI;iBACX;aACF,EACD,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAClD,YAAY,QACZ,WAAW,EAAE,KAAK,EAClB,WAAW,QACX,YAAY,EAAC,GAAG,EAChB,aAAa,QACb,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EACzB,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;gBAC/B,IAAI,EAAE,IAAI;aACX,EACD,KAAK,EAAE;gBACL,IAAI,EAAE;oBACJ,KAAK,EAAE;wBACL,IAAI,EAAE;4BACJ,IAAI,EAAE,SAAS;yBAChB;wBACD,IAAI,EAAE;4BACJ,MAAM,EAAE,SAAS;yBAClB;qBACF;iBACF;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE;wBACJ,WAAW,EAAE,GAAG;qBACjB;iBACF;aACF,GACD,IACE,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -1,11 +0,0 @@
1
- import { Call } from '@stream-io/video-client';
2
- /**
3
- *
4
- * @param call
5
- * @param kind
6
- * @param mediaStream
7
- * @returns
8
- *
9
- * @category Call State
10
- */
11
- export declare const useRtcStats: (call: Call, kind: 'subscriber' | 'publisher', mediaStream?: MediaStream) => Record<string, string> | undefined;
@@ -1,39 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { useEffect, useState } from 'react';
11
- /**
12
- *
13
- * @param call
14
- * @param kind
15
- * @param mediaStream
16
- * @returns
17
- *
18
- * @category Call State
19
- */
20
- export const useRtcStats = (call, kind, mediaStream) => {
21
- const [stats, setStats] = useState();
22
- useEffect(() => {
23
- const intervalId = setInterval(() => __awaiter(void 0, void 0, void 0, function* () {
24
- var _a;
25
- const [track] = (_a = mediaStream === null || mediaStream === void 0 ? void 0 : mediaStream.getVideoTracks()) !== null && _a !== void 0 ? _a : [];
26
- const rawStats = yield call.getStats(kind, track);
27
- const decodedStats = {};
28
- rawStats === null || rawStats === void 0 ? void 0 : rawStats.forEach((s) => {
29
- decodedStats[s.id] = s;
30
- });
31
- setStats(decodedStats);
32
- }), 1500);
33
- return () => {
34
- clearInterval(intervalId);
35
- };
36
- }, [call, kind, mediaStream]);
37
- return stats;
38
- };
39
- //# sourceMappingURL=useRtcStats.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRtcStats.js","sourceRoot":"","sources":["../../../src/hooks/useRtcStats.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG5C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,IAAU,EACV,IAAgC,EAChC,WAAyB,EACzB,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAA0B,CAAC;IAC7D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,WAAW,CAAC,GAAS,EAAE;;YACxC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,cAAc,EAAE,mCAAI,EAAE,CAAC;YACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,YAAY,GAA2B,EAAE,CAAC;YAChD,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACtB,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzB,CAAC,CAAA,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,GAAG,EAAE;YACV,aAAa,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAE9B,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -1,36 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
- import { Call } from '@stream-io/video-client';
3
-
4
- /**
5
- *
6
- * @param call
7
- * @param kind
8
- * @param mediaStream
9
- * @returns
10
- *
11
- * @category Call State
12
- */
13
- export const useRtcStats = (
14
- call: Call,
15
- kind: 'subscriber' | 'publisher',
16
- mediaStream?: MediaStream,
17
- ) => {
18
- const [stats, setStats] = useState<Record<string, string>>();
19
- useEffect(() => {
20
- const intervalId = setInterval(async () => {
21
- const [track] = mediaStream?.getVideoTracks() ?? [];
22
- const rawStats = await call.getStats(kind, track);
23
- const decodedStats: Record<string, string> = {};
24
- rawStats?.forEach((s) => {
25
- decodedStats[s.id] = s;
26
- });
27
- setStats(decodedStats);
28
- }, 1500);
29
-
30
- return () => {
31
- clearInterval(intervalId);
32
- };
33
- }, [call, kind, mediaStream]);
34
-
35
- return stats;
36
- };