Skip to content

Master#1

Open
dstohr wants to merge 4157 commits intodstohr:nikos_testfrom
Dash-Industry-Forum:master
Open

Master#1
dstohr wants to merge 4157 commits intodstohr:nikos_testfrom
Dash-Industry-Forum:master

Conversation

@dstohr
Copy link
Owner

@dstohr dstohr commented Jan 18, 2017

No description provided.

dstohr pushed a commit that referenced this pull request Feb 1, 2017
Merge recent changes from Dash-Industry-Forum.
dstohr pushed a commit that referenced this pull request Feb 1, 2017
Merge dashjs latest into my dev fork
stschr and others added 26 commits March 14, 2024 11:12
* add capability to pre-define supported essentialProperty scheme+value pairs in addition to scheme-only settings, value may use RegExp; added SDR-settings (Rec.601) as known properties.

* move essential property descriptor definition

* rename constants

* rename constants (also in comment)

* changing constants to DescriptorType
* Add basic support for the Common Access Token

* Add unit tests for CommonAccessTokenController
* Fix HTTPLoader onerror handler

* Fix HTTPLoader in order to apply response interceptors in all uses cases (errors)

* Complete onloadend callback replacing onerror callback

* FetchLoader: fix reader error handling

* Fix unit tests

* HTTLoader: separate request timing info update function from resourceTiming update function

* HTTPLoader: fix ontimeout handler

* Fix FetchLoader in case aborted request

* Fix FetchLoader in case aborted request
* WiP: Adjust the Github CI actions to build network interceptor demo

* Adjust the Github actions to build the dist files for the samples
* Translate XML Entities in tXml.js

XML entities are special character sequences such as "&" (&).

* Rename entity to entityReference

and add link to the appropriate XML specifications

* Translate character references too

* Add "predefined" to function descriptor comment
)

`KeyErrorEvent` is triggered with `error` (`DashJSError`) instead of `data`.

`KeySystemSelectedEvent` has incorrect `error` type:  it's `DashJSError`
as well instead of `string`.

As a result, `KeyError` type becomes redundant and can be removed.
* Refactor unit tests

* Remove ll build test, should be added again as functional test

* Add Junit output to unit tests and fix Firefox tests

* Refactor functional testsuite structure

* Refactor functional testsuite structure

* Configure target testsuite via commandline in JSON

* Include testcase category in test definitions

* WiP: Adjust CI/CD jobs

* Add Livesim ECCP stream

* Fix wrong path in streaming.utils.Capabilities.jsn

* Update path to test results in .gitignore

* Initial work on Selenium integration for functional tests

* Add changes to enable new functional tests via CircleCI

* Install karma-cli in CircleCI action

* Install karma-cli in CircleCI action

* Run karma from node_modules folder

* WiP: Cleanup functional tests

* WiP: Refactor functional tests

* First working version of refactored functional testsuite

* Additional bugfixes for the functional tests

* Restructure files for functional tests

* WiP: Browserstack integration

* Change config to run on browserstack

* Adjust browserstack config

* Chrome blocks popups try Firefox

* Use iframe setting to avoid popup

* Refactor test execution on browserstack

* Adjust CircleCI job

* Adjust CircleCI job

* Adjust list of browserstack smoke vectors

* Adjust Browserstack timeout

* Adjust Browserstack timeout

* Fix buffer-cleanup test

* Change Browserstack config

* Change Browserstack config

* Change Browserstack config

* Add tests for CMCD, preload, initial audio and initial text
* Fix a bug that causes period ID to be set to default when the ID is parsed as a date.

* Account for null representation in ThroughputRule.js
* WiP: Minor fixes to the functional tests

* Restructure functional test execution

* Fix some functional tests

* Add broadpeak to contributors in reference UI

* Add progress reporter for browserstack tests

* Use mocha in functional tests as reporter

* Change multiperiod stream in smoke vectors
* change customCapabilitiesFilter to accept async function
* Add required changes to enable MPD patching with new XML parser
* Add functional test for MPD patching

* Add sample for MPD patching

* Add new function to Typescript file and revert changes in package.json

* Return right type in JSDoc

* Change single teststream

* Run tests on Chrome
* parsing ClientDataResporting from MDP

* add applyCMCDParameters

* Using the CMCDParameters configuration under ClientDataReporting in the MDP file

* Check if cmcd is enabled by checking mdp and player settings. Using mdp over the player settings but when applyCMCDParameters is false, player settings will be used

* apply serviceLocation filter to data reporting

* Send cmcd data to content steering server

* add adapter set filter

* improve apply filters

* improve apply filters

* delete unnecessary atribute in client data reporting

* add client data reporting model

* refactor client data reporting model

* implemented include in request filter

* add none include request case

* change segment type into filter

* Add test to check if cmcd data from manifest is correct

* delete comments

* Update tests with latest changes for cmcd reporting data

* add test for getQueryParameter

* delete comment in streaming.models.CmcdModel.js

* add test to get correctly cmcd data from getHeadersParameters()

* Adding tests for ClientDataReportingModel

* add test to get correctly cmcd data from getHeadersParameters()

* add funcionality to service description controller mock

* reset serviceDescriptionControllerMock after tests run

* More tests added for ClientDataReportingModel

* Add tests for applyCMCDParameters setting

* Add includeInRequests attribute to player settings

* Send latest video cmcd to content steering server

* fix edge case

* - add logger
- add edge cases to defined if cmcd should be enable or not
- improve whitelist functions based on new changes

* improve edge cases checks

* fix a detail

* fix parsing

* fix parsing keys

* improve error messages

* add support for audio only files

* remove unnecessary spaces

* improve lastMediaTypeRequest logic

* remove unnecessary spaces

* improve _lastMediaTypeRequest behaviour

* Fix tests after merging development into feature/cmcd-settings-from-mpd-and-steering-report

* Added new test cases for ClientDataReportingModel.js

* Fix isIncludedFilters

* Check if element parsed for ContentSteering from mpd is an array or an object

* Update AUTHORS.md

* Update AUTHORS.md

* Refactors from PR review: change applyCMCDParameters name to applyParametersFromMpd, fix typos, change variable names and create a vo model for CMCDParameters

* Fix import

* Move ClientDataReportingModel to controllers folder and change the name to ClientDataReportingController

* Update _canBeEnabled function and create a dedicated private function in HTTPLoader for updating url and headers according to CMCD

* Update includeInRequest default value to segment and update the tests

* Implement schemeIdUri for CMCDParameters using urn:mpeg:dash:cta-5004:2023 scheme

* Remove console.log

* Add sample page for CMCD triggered via the MPD

---------

Co-authored-by: santiagomintegui <105082491+santiagomintegui@users.noreply.github.com>
Co-authored-by: santi <santiagomintegui@gmail.com>
Co-authored-by: Nicolás Caballero <nicolasc@qualabs.com>
Co-authored-by: Nicolás Caballero <nicolascaballero.v@gmail.com>
Co-authored-by: Matias Rodriguez <matias@192.168.1.12>
Co-authored-by: matias@qualabs.com <matias@Matiass-MacBook-Pro.local>
dsilhavy and others added 30 commits October 22, 2025 15:47
* Initial changes for L3D

* Minor refactoring

* WiP: Refactoring TimelineSegmentsGetter.js

* WiP: Support for partial segments

* First working playback

* Requesting all subnumbers now

* Working refactored SSR playback for SegmentTimeline

* Working SSR SegmentTemplate playback

* Add additional unit tests and fix existing ones

* Remove console.log output

* Remove samples

* Remove unit test

* Revert change in Settings.js

* Do not use Fetch API when requesting partial segments

* Move scheduleTimeout calculation to MediaPlayerModel.js

* Return schedule timeout

* Fix rate adaptation with SSR for SegmentTemplate

* Working SegmentTimeline playback for SSR

* Revert lowLatencyTimeout setting

* Fix bug in DashHandler

* Fixed unit tests

* Refactor creation of Representation object and add parsing of SegmentSequenceProperties

* Refactor some functions in ScheduleController.js and StreamProcessor.js

* Refactor StreamProcessor.js

* Refactor AbrController.js

* Refactor AbrController.js and ScheduleController.js

* Refactor StreamProcessor.js

* Only allow rules based ABR switches at partial segment boundaries

* Add switch history entry even if no quality switch occured

* Refactor startup logic in StreamController.js

* Small refactoring in StreamController.js

* Delay manual quality switches for partial segments

* Parse SegmentSequenceProperties as array

* Add support for SegmentSequenceProperties

* Select the track that provides the lowest startup time at playback start

* Fix a bug in the Reference UI

* If AS switching is allowed then only switch at segment boundaries

* Change comment in AbrController.js

* Rename to lowestStartupDelay

* Fix a regression in MediaController.js and add additional unit tests

* Revert unit test config changes

* Add missing "mediaRange" to SegmentUtils.getIndexBasedSegment

* Disable fast quality switches for L3D

* Add additional unit tests for manualQualitySwitches
Replace all usages of the global `dashjs.FactoryMaker` with proper ES6 module imports across 6 core files. This harmonizes the import pattern with the rest of the codebase and improves module compatibility when dash.js is used as an ES6 module in modern build tools.

This prevents issues when:

- Importing modules directly without the main entry point
- Using tree-shaking in modern bundlers
- Integrating dash.js in codebases with strict ES6 module requirements
- Fix broken links
- Move from grunt to npm build, from JSlint to ESlint
- Point to web version of documentation guide
* Fix a regression when using priorities for MSS

* Fix a bug when applying the AbandonRequestsRule
* Fix axccessing a null value

* Fix styling in ll sample
…ettings change (#4894)

Remove enhancement codecs from tested configurations so that they can be re-tested if the enhancement settings change. This PR aims to fix a minor issue that we are seeing in the Reference Player, if a stream is loaded, and afterwards the Enhancement Layer is enabled, enhancement codecs would still be filtered out due to them being in the testedCodecConfigurations. This PR removes them out from testedCodecConfigurations so they can be re-tested on next stream load.
This pull request updates the MPEG-5 Part 2 LCEVC sample pages to use DASH terminology and provide clearer context about scalable delivery.
…ntroller (#4885)

* add unit test for ContentSteeringController, CatchupController, GapController

* add test for non empty array

* add non empty array test for getSynthesizedLocationElements

* extend tests for controllers
* Minor refactoring

* Resort core events

* Add resize observer for the video element to trigger reinitialization of the BOLA rule check of the playback quality in case limitBitrateByPortal is enabled

* Fix unit tests
Updated the custom funding link to point to the specified URL.
* Allow the channels to be query by MediaCapabilities.

* From feedback to preserve the existing behaviour to ignore the LFE channels., specify whether lfe should be considered in channel count.

# Conflicts:
#	src/streaming/utils/AudioChannelConfiguration.js

* Fixed botched merge

* Add tests for filtering on number of channels.

* Add debug symbols.

* add sampling rate to test query

* Fix filter of Preselections.

* Support AudioChannelConfiguration on Preselections.  Add tests.

* Fix lint failures.

* rename variable for better readability

* process HDR properties from CommonRepresentation with Preselections

* Fix merge conflicts.

* Fix incorrect test for missing AudioChannelConfiguration on Preselection

* Remove test for component-based preselections

* Add generic preselection test.  Add additional test if AudioChannelConfiguration is missing from both Preselection and AdapatationSet.

* proposed fixes to unit test #1

* proposed fixes to unit test #2

* proposed new unit test #3, where a supported Preselectionrefers to an unsupported AdaptationSet

* enhancing new unit test #3, Preselection now gets removed if it refers to non-existing AdaptationSet

* bugfixes as identified by new test case #3

---------

Co-authored-by: Schreiner, Stephan <stephan.schreiner@dolby.com>
…hanged in the Settings.js and defaults to 0. (#4907)
* fix: Improve scalable buffering behaviour

dash.js has two default settings for buffering:

bufferTimeAtTopQuality: 30,
bufferTimeDefault: 18,

All representations will be buffered 18 seconds ahead.

Top (highest pixels per second) representation will be buffered 30 seconds ahead.

Say we are playing back 1080p (ie. top quality representation), then in scalable mode we have two StreamProcessors running (video and enhancement).

The StreamProcessor=enhancement is considered as top quality and buffered 30 seconds ahead. The StreamProcessor=video is not considered as top quality (even though we are playing back the top quality) and buffered only 18 seconds ahead.

This PR aims to streamline the buffering behaviour, so when the top quality is being played back (e.g. 1080p scalable), both representations (enhancement and video) are buffered the same amount of time as bufferTimeAtTopQuality.

* Only apply logic if enhancement is enabled
…t in case it has been removed by an MPD update (#4911)
* chore: update cml packages to v1.0.1

* chore: update cml packages to v1.0.1

* revert: whitespace formatting in tsconfig
# Conflicts:
#	package-lock.json
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.