Skip to content

Commit

Permalink
Added groupId to VideoTileState (#2881)
Browse files Browse the repository at this point in the history
  • Loading branch information
hensmi-amazon authored Apr 19, 2024
1 parent 7bcb073 commit a180b62
Show file tree
Hide file tree
Showing 10 changed files with 256 additions and 137 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

- Added `groupId` to `VideoTileState` for mapping metrics other then those from `getObservableVideoMetrics` when using server side network adaptation.

### Removed

### Changed
Expand Down
232 changes: 118 additions & 114 deletions docs/assets/js/search.js

Large diffs are not rendered by default.

19 changes: 11 additions & 8 deletions docs/classes/defaultvideotile.html
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ <h3>bind<wbr>Video<wbr>Element</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/videotile.html">VideoTile</a>.<a href="../interfaces/videotile.html#bindvideoelement">bindVideoElement</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/DefaultVideoTile.ts#L208">src/videotile/DefaultVideoTile.ts:208</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/DefaultVideoTile.ts#L213">src/videotile/DefaultVideoTile.ts:213</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand All @@ -186,7 +186,7 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</spa
<a name="bindvideostream" class="tsd-anchor"></a>
<h3>bind<wbr>Video<wbr>Stream</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">bind<wbr>Video<wbr>Stream<span class="tsd-signature-symbol">(</span>attendeeId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, localTile<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span>, mediaStream<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">MediaStream</span>, contentWidth<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, contentHeight<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, streamId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, externalUserId<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
<li class="tsd-signature tsd-kind-icon">bind<wbr>Video<wbr>Stream<span class="tsd-signature-symbol">(</span>attendeeId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, localTile<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span>, mediaStream<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">MediaStream</span>, contentWidth<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, contentHeight<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, streamId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, externalUserId<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span>, groupId<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
Expand Down Expand Up @@ -226,6 +226,9 @@ <h5>streamId: <span class="tsd-signature-type">number</span></h5>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> externalUserId: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> groupId: <span class="tsd-signature-type">number</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
Expand All @@ -242,7 +245,7 @@ <h3>capture</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/videotile.html">VideoTile</a>.<a href="../interfaces/videotile.html#capture">capture</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/DefaultVideoTile.ts#L264">src/videotile/DefaultVideoTile.ts:264</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/DefaultVideoTile.ts#L269">src/videotile/DefaultVideoTile.ts:269</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand Down Expand Up @@ -344,7 +347,7 @@ <h3>mark<wbr>Poor<wbr>Connection</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/videotile.html">VideoTile</a>.<a href="../interfaces/videotile.html#markpoorconnection">markPoorConnection</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/DefaultVideoTile.ts#L246">src/videotile/DefaultVideoTile.ts:246</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/DefaultVideoTile.ts#L251">src/videotile/DefaultVideoTile.ts:251</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand All @@ -369,7 +372,7 @@ <h3>pause</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/videotile.html">VideoTile</a>.<a href="../interfaces/videotile.html#pause">pause</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/DefaultVideoTile.ts#L232">src/videotile/DefaultVideoTile.ts:232</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/DefaultVideoTile.ts#L237">src/videotile/DefaultVideoTile.ts:237</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand All @@ -396,7 +399,7 @@ <h3>set<wbr>Stream<wbr>Id</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/videotile.html">VideoTile</a>.<a href="../interfaces/videotile.html#setstreamid">setStreamId</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/DefaultVideoTile.ts#L277">src/videotile/DefaultVideoTile.ts:277</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/DefaultVideoTile.ts#L282">src/videotile/DefaultVideoTile.ts:282</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand Down Expand Up @@ -472,7 +475,7 @@ <h3>unmark<wbr>Poor<wbr>Connection</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/videotile.html">VideoTile</a>.<a href="../interfaces/videotile.html#unmarkpoorconnection">unmarkPoorConnection</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/DefaultVideoTile.ts#L255">src/videotile/DefaultVideoTile.ts:255</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/DefaultVideoTile.ts#L260">src/videotile/DefaultVideoTile.ts:260</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand All @@ -497,7 +500,7 @@ <h3>unpause</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/videotile.html">VideoTile</a>.<a href="../interfaces/videotile.html#unpause">unpause</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/DefaultVideoTile.ts#L239">src/videotile/DefaultVideoTile.ts:239</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/DefaultVideoTile.ts#L244">src/videotile/DefaultVideoTile.ts:244</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand Down
22 changes: 21 additions & 1 deletion docs/classes/videotilestate.html
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ <h3>Properties</h3>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="videotilestate.html#boundvideoelement" class="tsd-kind-icon">bound<wbr>Video<wbr>Element</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="videotilestate.html#boundvideostream" class="tsd-kind-icon">bound<wbr>Video<wbr>Stream</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="videotilestate.html#devicepixelratio" class="tsd-kind-icon">device<wbr>Pixel<wbr>Ratio</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="videotilestate.html#groupid" class="tsd-kind-icon">group<wbr>Id</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="videotilestate.html#iscontent" class="tsd-kind-icon">is<wbr>Content</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="videotilestate.html#localtile" class="tsd-kind-icon">local<wbr>Tile</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="videotilestate.html#localtilestarted" class="tsd-kind-icon">local<wbr>Tile<wbr>Started</a></li>
Expand Down Expand Up @@ -235,6 +236,22 @@ <h3>device<wbr>Pixel<wbr>Ratio</h3>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="groupid" class="tsd-anchor"></a>
<h3>group<wbr>Id</h3>
<div class="tsd-signature tsd-kind-icon">group<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = null</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTileState.ts#L117">src/videotile/VideoTileState.ts:117</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The unique identifier published by server to associate with remote video source. It is defined in [[SignalingProtocol.proto]].
Developers should avoid using this field directly.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="iscontent" class="tsd-anchor"></a>
<h3>is<wbr>Content</h3>
Expand Down Expand Up @@ -461,7 +478,7 @@ <h3>clone</h3>
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTileState.ts#L113">src/videotile/VideoTileState.ts:113</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTileState.ts#L119">src/videotile/VideoTileState.ts:119</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <a href="videotilestate.html" class="tsd-signature-type" data-tsd-kind="Class">VideoTileState</a></h4>
Expand Down Expand Up @@ -506,6 +523,9 @@ <h4 class="tsd-returns-title">Returns <a href="videotilestate.html" class="tsd-s
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="videotilestate.html#devicepixelratio" class="tsd-kind-icon">device<wbr>Pixel<wbr>Ratio</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="videotilestate.html#groupid" class="tsd-kind-icon">group<wbr>Id</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="videotilestate.html#iscontent" class="tsd-kind-icon">is<wbr>Content</a>
</li>
Expand Down
21 changes: 12 additions & 9 deletions docs/interfaces/videotile.html
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ <h3>bind<wbr>Video<wbr>Element</h3>
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L47">src/videotile/VideoTile.ts:47</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L48">src/videotile/VideoTile.ts:48</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand All @@ -148,7 +148,7 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</spa
<a name="bindvideostream" class="tsd-anchor"></a>
<h3>bind<wbr>Video<wbr>Stream</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
<li class="tsd-signature tsd-kind-icon">bind<wbr>Video<wbr>Stream<span class="tsd-signature-symbol">(</span>attendeeId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, localTile<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span>, mediaStream<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">MediaStream</span>, contentWidth<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, contentHeight<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, streamId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, externalUserId<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
<li class="tsd-signature tsd-kind-icon">bind<wbr>Video<wbr>Stream<span class="tsd-signature-symbol">(</span>attendeeId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, localTile<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span>, mediaStream<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">MediaStream</span>, contentWidth<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, contentHeight<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, streamId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, externalUserId<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span>, groupId<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
Expand Down Expand Up @@ -187,6 +187,9 @@ <h5>streamId: <span class="tsd-signature-type">number</span></h5>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> externalUserId: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> groupId: <span class="tsd-signature-type">number</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
Expand All @@ -202,7 +205,7 @@ <h3>capture</h3>
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L91">src/videotile/VideoTile.ts:91</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L92">src/videotile/VideoTile.ts:92</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand All @@ -225,7 +228,7 @@ <h3>destroy</h3>
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L85">src/videotile/VideoTile.ts:85</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L86">src/videotile/VideoTile.ts:86</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand Down Expand Up @@ -270,7 +273,7 @@ <h3>mark<wbr>Poor<wbr>Connection</h3>
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L72">src/videotile/VideoTile.ts:72</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L73">src/videotile/VideoTile.ts:73</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand All @@ -294,7 +297,7 @@ <h3>pause</h3>
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L56">src/videotile/VideoTile.ts:56</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L57">src/videotile/VideoTile.ts:57</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand All @@ -320,7 +323,7 @@ <h3><span class="tsd-flag ts-flagOptional">Optional</span> set<wbr>Stream<wbr>Id
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L97">src/videotile/VideoTile.ts:97</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L98">src/videotile/VideoTile.ts:98</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand Down Expand Up @@ -393,7 +396,7 @@ <h3>unmark<wbr>Poor<wbr>Connection</h3>
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L79">src/videotile/VideoTile.ts:79</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L80">src/videotile/VideoTile.ts:80</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand All @@ -417,7 +420,7 @@ <h3>unpause</h3>
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L65">src/videotile/VideoTile.ts:65</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/main/src/videotile/VideoTile.ts#L66">src/videotile/VideoTile.ts:66</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
Expand Down
18 changes: 15 additions & 3 deletions src/task/CreatePeerConnectionTask.ts
Original file line number Diff line number Diff line change
Expand Up @@ -159,12 +159,15 @@ export default class CreatePeerConnectionTask extends BaseTask implements Remova
tile = this.context.videoTileController.addVideoTile();
this.logger.info(`Created video tile ${tile.id()}`);
}

let streamId: number | null = this.context.videoStreamIndex.streamIdForTrack(trackId);
if (typeof streamId === 'undefined') {
this.logger.warn(`stream not found for tile=${tile.id()} track=${trackId}`);
streamId = null;
}
let groupId = this.context.videoStreamIndex.groupIdForStreamId(streamId);
if (groupId === undefined) {
groupId = null;
}

for (let i = 0; i < this.trackEvents.length; i++) {
const trackEvent: string = this.trackEvents[i];
Expand Down Expand Up @@ -203,9 +206,18 @@ export default class CreatePeerConnectionTask extends BaseTask implements Remova
height = cap.height as number;
}
const externalUserId = this.context.videoStreamIndex.externalUserIdForTrack(trackId);
tile.bindVideoStream(attendeeId, false, stream, width, height, streamId, externalUserId);
tile.bindVideoStream(
attendeeId,
false,
stream,
width,
height,
streamId,
externalUserId,
groupId
);
this.logger.info(
`video track added, use tile=${tile.id()} track=${trackId} streamId=${streamId}`
`video track added, use tile=${tile.id()} track=${trackId} streamId=${streamId} groupId=${groupId}`
);

const endEvent = 'removetrack';
Expand Down
Loading

0 comments on commit a180b62

Please sign in to comment.