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

Add feature support for Common Media Server Data #4095

Merged
merged 29 commits into from
Feb 6, 2023
Merged

Conversation

bbert
Copy link
Contributor

@bbert bbert commented Dec 2, 2022

This PR adds support for CMSD (Common Media Server Data) parsing from response headers.
See #4071

At this stage, what has been implemented:

  • CMSD response headers parsing
  • Add settings to:
    • enable/disable CMSD parsing
    • enable/disable use of "mb" maximum suggested bitrate (mb) as an upper-bound for the ABR algorithm
    • set the weight ratio to be applied on etp regarding measured bandwidth to determine throughput to be used by ABR throughput rule
  • Update reference sample to add CMSD settings configuration and to display bandwidth (measured, etp) metrics

Also, some test streams providing some CMSD response header fields (etp, rtt) have been added in reference sample application.

It is also possible to test by using some browser plugin to manually add response headers.
As an example, the chrome plugin ModHeader (https://chrome.google.com/webstore/detail/modheader-modify-http-hea/idgpnmonknjnojddfkpgkljpfnnfcklj?hl=fr) can be used, in which we can add specific response headers, including the header "Access-Control-Expose-Headers: CMSD-Static, CMSD-Dynamic" to get around CORS issues:

image

src/core/Settings.js Show resolved Hide resolved
src/streaming/models/CmsdModel.js Outdated Show resolved Hide resolved
src/streaming/controllers/AbrController.js Show resolved Hide resolved
@dsilhavy dsilhavy modified the milestones: 4.5.2, 4.6.0 Dec 8, 2022
- add CMSD response header in HTTPRequest metrics
- apply a weight ratio on etp for throughput calculation
- add setting parameter for ABR using CMSD response headers
- update index.d.ts
- rename setting parameter streaming.cmsd.abr.useMb to streaming.cmsd.abr.applyMb
- apply (if enabled) CMSD maximum bitrate in ABR logic
- complete CMSD settings
- add metrics ans charts for measured bandwidth and etp
samples/dash-if-reference-player/app/main.js Outdated Show resolved Hide resolved
src/core/Settings.js Outdated Show resolved Hide resolved
src/dash/DashMetrics.js Outdated Show resolved Hide resolved
src/streaming/controllers/AbrController.js Outdated Show resolved Hide resolved
src/streaming/models/CmsdModel.js Outdated Show resolved Hide resolved
src/streaming/models/MetricsModel.js Outdated Show resolved Hide resolved
src/streaming/rules/ThroughputHistory.js Outdated Show resolved Hide resolved
@dsilhavy dsilhavy merged commit 63ec15d into development Feb 6, 2023
@dsilhavy dsilhavy deleted the feature/cmsd branch May 5, 2023 11:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants