dash.js

Open Source Media Player

Seamless and reliable DASH streaming on any browser-based device

View onGitHub
5270
1707

Sponsors

Trusted by the industry leaders

Latest updates from GitHub

Preserve Last Used Pathway Order in Content Steering _DASH_pathway Query ParameterI believe this falls in between a fix and a feature request. **Is your feature request related to a problem? Please describe.** In Content Steering, the player reports the last used pathway(s) via the `_DASH_pathway` query parameter in the format `"path1, path2,..."`. These pathway values can originate from different media types (e.g., video, audio, ads, manifest, etc.). The player sometimes reports multiple pathways from the same media type (e.g., video), which is expected behavior when multiple service locations are used between two Content Steering requests. However, while constructing the Content Steering URL, due to the sorting operation before appending pathways to the `_DASH_pathway` query parameter, we lose track of the last-used pathway order, which was one of the primary purposes of reporting `_DASH_pathway`. The sorting logic currently applied in the player: https://github.com/Dash-Industry-Forum/dash.js/blob/0b89d5f48d70218b8668a69306399bec7d133ccb/src/dash/controllers/ContentSteeringController.js#L298-L301 As indicated, the sorting operation ensures that pathways without a throughput value are moved to the end of the list. However, this causes a loss of temporal information about the last-used pathways. For example, given the following data before sorting: ``` [ { "serviceLocation": "path2", "throughput": null }, { "serviceLocation": "path1", "throughput": 10 }, { "serviceLocation": "path3", "throughput": 15 } // assuming this is the last used pathway ] ``` The current approach results in: `_DASH_pathway="path3,path1,path2"&_DASH_throughput=15,10` **Describe the solution you'd like** Rather than altering the order of `_DASH_pathway` by sorting pathways based on throughput, I propose an alternative approach: - Maintain the original order of pathways based on usage. - Introduce an empty value in `_DASH_throughput` for pathways without throughput. This approach results in: `_DASH_pathway="path2,path1,path3"&_DASH_throughput=",10,15"` It preserves the order of pathway usage while still associating the correct throughput values per pathway. We can extract both the usage order and the per pathway throughput measurement. Possible modification on the code: - Remove https://github.com/Dash-Industry-Forum/dash.js/blob/0b89d5f48d70218b8668a69306399bec7d133ccb/src/dash/controllers/ContentSteeringController.js#L298-L301 - Modify https://github.com/Dash-Industry-Forum/dash.js/blob/0b89d5f48d70218b8668a69306399bec7d133ccb/src/dash/controllers/ContentSteeringController.js#L306-L317 to ``` data.forEach((entry, index) => { if (index !== 0) { pathwayString += ','; throughputString += ','; } pathwayString += entry.serviceLocation; throughputString += entry.throughput > -1 ? entry.throughput : ''; }); ``` **Describe alternatives you've considered** Using a separate query parameter to indicate the original order or shifting the pathways without a throughput value to end but keeping the rest in the same order. However, both approaches introduce additional complexity and refactoring. Also, the second one still may modify the order of usage in certain cases. **Additional context** - This change aligns with the intent mentioned in the code comment: shifting pathways without throughput to the end. Instead of sorting, explicitly keeping empty values in` _DASH_throughput` achieves the same intent without losing order information. Opened by burak-kara12 hours ago
a lot of rebuffering with low latencyHello @dsilhavy We started implementing low latency as you suggested on [GitHub issue #4695](https://github.com/Dash-Industry-Forum/dash.js/issues/4695), but we observed frequent rebuffering on Smart TVs. Please find attached the logs and mpd content [logs_low_latency-dashjs_5.0.log](https://github.com/user-attachments/files/19126779/logs_low_latency-dashjs_5.0.log) [manifest_996_.txt](https://github.com/user-attachments/files/19126877/manifest_996_.txt) . Could you please help us?Opened by testeur-9904 days ago
task/cml-segement-template-utilReplace the individual segment template utilities with CML's `processUriTemplate` utility. Resolves streaming-video-technology-alliance/common-media-library#139Opened by littlespex5 days ago

More news on

Contributors