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(metrics): Add client.media.render.start event #3555

Merged
merged 5 commits into from
Apr 23, 2024

Conversation

johnsoter13
Copy link
Contributor

COMPLETES #<https://jira-eng-gpk2.cisco.com/jira/browse/SPARK-518038>

This pull request addresses

< DESCRIBE THE CONTEXT OF THE ISSUE >

  • There was a missing event that caused 100% receiver side failures for CA analysis of share flow

by making the following changes

< DESCRIBE YOUR CHANGES >

  • Added missing receiver event for share client.media.render.start, without it, CA marks all receiver flows as failures

Change Type

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Tooling change
  • Internal code refactor

The following scenarios where tested

< ENUMERATE TESTS PERFORMED, WHETHER MANUAL OR AUTOMATED >

I certified that

  • I have read and followed contributing guidelines

  • I discussed changes with code owners prior to submitting this pull request

  • I have not skipped any automated checks

  • All existing and new tests passed

  • I have updated the documentation accordingly


Make sure to have followed the contributing guidelines before submitting.

@johnsoter13 johnsoter13 requested a review from a team as a code owner April 22, 2024 14:03
@@ -7702,6 +7702,18 @@ export default class Meeting extends StatelessWebexPlugin {
) {
layoutInfo.content = {width: contentWidth, height: contentHeight};
}

// @ts-ignore
this.webex.internal.newMetrics.submitClientEvent({
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This place here is only applicable to transcoded meetings. For multistream meetings, the layout is changed via RemoteMediaManager.setLayout() method. Also it doesn't feel right to be sending "client.media.render.start" at the point when we switch layout. Probably at this point we should be sending "client.share.layout.displayed" and "client.media.render.start" should I guess be sent when first frame is decoded and displayed. This will be tricky for SDK to know, because it doesn't have a reference to the video element that renders the stream and it only polls getStats() API every 5s so it can't immediately detect when frames are decoded - it may detect it up to 5s later. So maybe as a compromise we could send it when the share ReceiveSlot's sourceState changes to "live", but it still poses some challenges:

  • in theory there can be many share receive slots, which one should send it? the first one or all of them?
  • ReceiveSlots are not used for transcoded meetings/calls

@@ -8630,34 +8652,6 @@ describe('plugin-meetings', () => {

checkParseMeetingInfo(expectedInfoToParse);
});

it('should parse meeting info, set values, and return null when permissionToken is not present', () => {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this unrelated test being removed as part of this PR? is this some merge gone wrong?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't remove this? I'll see what happened here

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok I must've command + z'd this test out of the file. Good catch!

@arun3528 arun3528 changed the title Add client.media.render.start event feat(metrics): Add client.media.render.start event Apr 22, 2024
@johnsoter13 johnsoter13 merged commit bde0e6e into webex:beta Apr 23, 2024
1 check passed
Shreyas281299 pushed a commit to Shreyas281299/webex-js-sdk that referenced this pull request Apr 26, 2024
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.

None yet

3 participants