Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
7a9cff6
feat: implement CMCD v2 functionality
cotid-qualabs Jan 14, 2026
4a03341
event mode with body transmission mode only
cotid-qualabs Jan 16, 2026
9e85839
remove url encode from body transmission mode
cotid-qualabs Jan 22, 2026
b0d7b5b
add editable configs to cmcd sample page
cotid-qualabs Jan 22, 2026
1c21946
add src input to cmcd v2 sample page
cotid-qualabs Jan 22, 2026
59fa0ba
create provider for CMCDParameters lazy loading
cotid-qualabs Jan 23, 2026
59e3263
changing media asset location (#4928)
stschr Jan 30, 2026
e49fb7e
chore: CMCDv2 migration to CMCD Reporter (#159)
cotid-qualabs Feb 2, 2026
b98750f
Cmcdv2: keys compliance check (#160)
cotid-qualabs Feb 2, 2026
c0ee7ec
feat: update CML dependencies
littlespex Feb 3, 2026
62f99af
fix race condition on cmcd contrller for cmcd parameters
cotid-qualabs Feb 3, 2026
e99a3a5
Fix downloads of WebVTT segments in multiperiod MPD (#4925)
dsilhavy Feb 10, 2026
72787f9
Feature/cmcdv2 update (#162)
littlespex Feb 10, 2026
0ab5eab
Fix/l3d livesim2 (#4927)
dsilhavy Feb 12, 2026
f88f161
perf: reduce Object.keys allocations in hot paths (#4937)
PascalThuet Feb 12, 2026
78d7ef8
perf(gaps): optimize GapController interval and reduce allocations (#…
PascalThuet Feb 12, 2026
ef59e9a
fix(steering): fix incorrect splice/indexOf arguments in blacklist ti…
PascalThuet Feb 12, 2026
fdddee0
fix(mss): prevent crash when all DVR segments are removed (#4947)
PascalThuet Feb 12, 2026
3a7c4c9
fix: Fix oldRepresentation retrieval during Period switch (#4949)
stschr Feb 12, 2026
f7bdd7b
Add a limitBitrateByPortalMinimum setting to prevent limiting too muc…
robertbryer Feb 12, 2026
be41edb
Adds missing NEW_TRACK_SELECTED to Typescript file. Fixes #4940 (#4952)
dsilhavy Feb 13, 2026
ea8b702
feat: update 608 library to support H.265/H.266 payloads (#4954)
littlespex Feb 17, 2026
6774bc7
Change StreamProcessor bandwidth check for scalable LCEVC (#4951)
v-nova-romas Feb 17, 2026
a982924
Fix/nullpointer accessibility (#4955)
dsilhavy Feb 17, 2026
3eb75e4
fix(streaming): add LRU cache limit to InitCache (#4935)
PascalThuet Feb 18, 2026
f60c4df
Allow preload to work even when the setting cacheInitSegments is fals…
robertbryer Feb 19, 2026
1067ff1
Feature/filter message (#4961)
dsilhavy Feb 19, 2026
904443d
Feature/return unfiltered representations (#4963)
dsilhavy Feb 23, 2026
1679fa9
Add Agents.md with information for AI agents (#4965)
dsilhavy Feb 23, 2026
bf63f40
Add support for Certurl element (#4876)
gorkemg Feb 24, 2026
08d391c
improve track equality check (#4966)
stschr Feb 25, 2026
0891516
Low Latency Improvements (#4916)
ryanmccartney Feb 26, 2026
b736f73
Add Apple FairPlay Streaming (FPS) DRM support (#4941)
tobbee Feb 27, 2026
a9bce85
fix(core): prevent memory leaks in EventBus and XHRLoader (#4934)
PascalThuet Feb 28, 2026
67bcf2f
Replace Edgeware with Eyevinn in reference player contributors (#4968)
tobbee Mar 1, 2026
0e721b3
Feature/cert url additions (#4973)
dsilhavy Mar 2, 2026
6b7924b
Feature/reference UI (#4974)
dsilhavy Mar 2, 2026
84eb542
Feature/GitHub actions improvements (#4975)
dsilhavy Mar 3, 2026
0f4d94e
Remove known_hosts (#4976)
dsilhavy Mar 3, 2026
27c0dee
Add notification pane in reference UI (#4977)
dsilhavy Mar 3, 2026
5ceaacb
feat/cmcd-v2-request-validation (#163)
littlespex Mar 4, 2026
00a296a
jsdoc fix + verbose logger (#4980)
stschr Mar 7, 2026
e91f2a1
Merge branch 'development' into feature/cmcdv2
littlespex Mar 10, 2026
20b8441
refactor: replace bcp-47-normalize with lightweight BCP-47 normalizat…
PascalThuet Mar 16, 2026
1668e97
fix: make MediaPlayerFactory SSR-safe to prevent "window is not defin…
PascalThuet Mar 16, 2026
4985f76
fix(dvb): correct off-by-one in DVBSelector weighted BaseURL selectio…
PascalThuet Mar 16, 2026
a53208b
fix(ttml): use endTimeSegment as fallback for last cue end time (#4986)
PascalThuet Mar 16, 2026
a517690
Fix a bug that causes selection of the wrong certificate server url (…
dsilhavy Mar 17, 2026
32e7489
Add toLowerCase when comparing scheme ID URIs
dsilhavy Mar 17, 2026
d90a681
Add persistentState and distinctiveIdentifier to new UI (#4991)
dsilhavy Mar 18, 2026
98d2e9f
Feature/audit fix (#4994)
dsilhavy Mar 23, 2026
ee423ab
docs: rewrite AGENTS.md — gotchas-only, DRY, verifiable (#4996)
PascalThuet Mar 24, 2026
9429315
refactor: replace ua-parser-js with lightweight browser detection (-2…
PascalThuet Mar 24, 2026
9ab99e8
Dynamically read out request timeout in case settings are updated dur…
dsilhavy Mar 25, 2026
d4afee5
Property mapping while MPD parsing (#4901)
stschr Mar 25, 2026
ef0f384
Merge branch 'development' into feature/cmcdv2
littlespex Apr 14, 2026
5d72690
chore: update CMCD version
littlespex Apr 15, 2026
79bfd8c
chore: remove ua-parser-js — use core Utils.parseUserAgent instead (#…
PascalThuet Apr 26, 2026
ac9e3d1
fix/audit-fix (#5023)
dsilhavy Apr 26, 2026
889a0a8
Merge branch 'development' into feature/cmcdv2
dsilhavy Apr 27, 2026
0a80def
Dedicated sample section for CMCD
dsilhavy Apr 27, 2026
6e10b59
Use headers transmission mode string from CML
dsilhavy Apr 27, 2026
2b8cd33
Align CMCD v2 config naming with CML spec
littlespex Apr 29, 2026
0a37f91
chore: update cml versions
littlespex Apr 30, 2026
ed87b36
Catch errors in recordResponseReceived
dsilhavy Apr 27, 2026
1878bca
Fix wrong URLs in CMCD demos
dsilhavy Apr 27, 2026
46178e2
Small refactoring in DashManifestModel.js
dsilhavy Apr 27, 2026
cfb9d75
Minor refactoring
dsilhavy Apr 28, 2026
3ffe160
Cleanup all events in CmcdController.js when resetting
dsilhavy Apr 28, 2026
c4892e4
Refactor CustomParametersModel.js
dsilhavy Apr 28, 2026
75c968a
Add CMCD version to reference UI
dsilhavy Apr 28, 2026
ad7c194
Small refactoring in CmcdModel.js
dsilhavy Apr 28, 2026
278b302
Use responseStart for resourceTiming.responseStart (#5024)
dsilhavy May 6, 2026
551cfd1
Fix a bug in the refrence UI causing loop for multiperiod content bef…
dsilhavy May 11, 2026
530a02a
Merge branch 'development' into feature/cmcdv2
dsilhavy May 12, 2026
1290912
Add link to sample setion in reference UI
dsilhavy May 12, 2026
5c19699
Add missing CMCD fields to JSDoc in Settings.js
dsilhavy May 12, 2026
ffee182
Add include in requests CMCD field to reference UI
dsilhavy May 12, 2026
3d9126d
Add a warning when catching an error in the CmcdController.js
dsilhavy May 12, 2026
ebc64b7
Add a simple express.js server that the local CMCD demos can report a…
dsilhavy May 12, 2026
0f350f5
Refactoring of CMCD demo and classes
dsilhavy May 12, 2026
21f0e9a
Additional CMCD refactoring
dsilhavy May 12, 2026
ffcedfa
fix: update CML dependencies to address missing CMCD nor values
littlespex May 13, 2026
7bcce8b
Abort retrieveManifest requests after reset (#5027)
robertbryer May 14, 2026
93f6aec
Fix unreachable code warning in MediaController and update eslint con…
davemevans May 14, 2026
6c5d21e
Check for CMCD enabled directly for each request
dsilhavy May 12, 2026
59aceec
Function renaming for CMCD
dsilhavy May 14, 2026
f1156f5
Rework the CMCD samples
dsilhavy May 14, 2026
b227c58
Fix unit tests
dsilhavy May 19, 2026
859a628
Adjust samples
dsilhavy May 19, 2026
5f5ab70
Fix linting issues
dsilhavy May 19, 2026
2b0b84d
Rename context to dataContext for clarity
dsilhavy May 19, 2026
bf0c39f
Fix wrong use of this instead of instance
dsilhavy May 19, 2026
aac0879
Reset _isSeeking and remove wrong payload for getGenericCmcdData
dsilhavy May 19, 2026
11d216d
Remove duplicate entries in HTTPRequest.js
dsilhavy May 19, 2026
d253d68
Do not execute CMCD tests when no init segment was identified
dsilhavy May 19, 2026
8e7c42b
Avoid error when representationController is not defined in _onDataUp…
dsilhavy May 19, 2026
61d6502
Add a setting blacklistExpiryTime to expire blacklisted service locat…
robertbryer May 19, 2026
1b481ce
Merge remote-tracking branch 'origin/development' into feature/cmcdv2
dsilhavy May 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/actions/setup-dashjs/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: 'Setup dash.js'
description: 'Setup Node.js, cache and install dependencies'

runs:
using: 'composite'
steps:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Cache node modules
id: cache-npm
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-build-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install dependencies
if: steps.cache-npm.outputs.cache-hit != 'true'
shell: bash
run: npm install
47 changes: 35 additions & 12 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ on:
deploy_path:
required: true
type: string
deploy_type:
required: true
type: string
description: 'Type of deployment: "samples" (reference player + samples) or "build" (dist artifacts + JSDoc)'
secrets:
host:
required: true
Expand All @@ -23,23 +27,21 @@ jobs:

steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "20.x"
- name: Install dependencies
run: npm install
- name: Setup dash.js
uses: ./.github/actions/setup-dashjs
- name: Run build
run: npm run build
- name: Find and Replace
if: inputs.deploy_type == 'samples'
uses: jacobtomlinson/gha-find-replace@v2
env:
replacement_string: ${{ format('{0} - commit <a href="https://github.com/Dash-Industry-Forum/dash.js/commit/{1}">{2}</a>', github.ref_name, github.sha, github.sha)}}
with:
find: "<!-- commit-info -->"
replace: ${{env.replacement_string}}
include: "samples/dash-if-reference-player/index.html"
include: "samples/dash-if-reference-player*/index.html"
- name: Build all samples
if: inputs.deploy_type == 'samples'
run: |
for sample in "network-interceptor"; do
echo "Building sample: $sample"
Expand All @@ -48,16 +50,37 @@ jobs:
npm run build
rm -rf node_modules
done
- name: Copy to deploy directory for deployment
- name: Build JSDoc
if: inputs.deploy_type == 'build'
run: npm run doc
continue-on-error: true
- name: Copy samples to deploy directory
if: inputs.deploy_type == 'samples'
env:
ENVNAME: ${{ inputs.envname }}
run: |
mkdir -p ${{inputs.envname}}
cp -R contrib dist samples ${{inputs.envname}}
mkdir -p "$ENVNAME"
cp -R contrib dist samples "$ENVNAME"
- name: Copy build artifacts to deploy directory
if: inputs.deploy_type == 'build'
env:
ENVNAME: ${{ inputs.envname }}
run: |
mkdir -p "$ENVNAME"
cp -R docs/jsdoc "$ENVNAME/jsdoc" && cp -R dist/modern/umd/* "$ENVNAME" && cp -R dist/* index.d.ts "$ENVNAME"
- name: Install SSH Key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.private_key }}
known_hosts: unnecessary
- name: Fetch host keys
run: ssh-keyscan -H ${{ secrets.host }} >> ~/.ssh/known_hosts
- name: Deploy with scp
env:
DEPLOY_USER: ${{ secrets.user }}
DEPLOY_HOST: ${{ secrets.host }}
DEPLOY_PATH: ${{ inputs.deploy_path }}
ENVNAME: ${{ inputs.envname }}
run: |
ssh -o StrictHostKeyChecking=no -oHostKeyAlgorithms=+ssh-dss ${{ secrets.USER }}@${{ secrets.HOST }} "mkdir -p ${{ inputs.deploy_path }}/${{inputs.envname}}"
scp -r -o StrictHostKeyChecking=no -oHostKeyAlgorithms=+ssh-dss ${{inputs.envname}} ${{ secrets.user }}@${{ secrets.host }}:${{ inputs.deploy_path }}
ssh "$DEPLOY_USER@$DEPLOY_HOST" "mkdir -p \"$DEPLOY_PATH/$ENVNAME\""
scp -r "$ENVNAME" "$DEPLOY_USER@$DEPLOY_HOST:$DEPLOY_PATH"
49 changes: 0 additions & 49 deletions .github/workflows/deploy_build.yml

This file was deleted.

5 changes: 3 additions & 2 deletions .github/workflows/deploy_build_latest.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: deploy_latest
name: deploy_build_latest

on:
push:
Expand All @@ -8,10 +8,11 @@ on:
jobs:
deploy_latest:
if: github.repository == 'Dash-Industry-Forum/dash.js'
uses: ./.github/workflows/deploy_build.yml
uses: ./.github/workflows/deploy.yml
with:
envname: latest
deploy_path: '/377335'
deploy_type: build
secrets:
host: ${{secrets.HOST}}
user: ${{secrets.USER}}
Expand Down
28 changes: 18 additions & 10 deletions .github/workflows/deploy_build_latest_as_version_folder.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: deploy_build_latest_as_version_folder
name: deploy_latest_as_version_folder

on:
push:
Expand All @@ -14,25 +14,33 @@ jobs:
steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Read version from package.json
id: set_version
run: |
echo "version=$(jq -r .version package.json)" >> $GITHUB_OUTPUT
run: echo "version=$(jq -r .version package.json)" >> $GITHUB_OUTPUT
shell: bash

- name: Print version
run: |
echo "Version: ${{ steps.set_version.outputs.version }}"
deploy_samples:
if: github.repository == 'Dash-Industry-Forum/dash.js'
needs: get_version_number
uses: ./.github/workflows/deploy.yml
with:
envname: v${{ needs.get_version_number.outputs.version }}
deploy_path: '/377335/dash.js'
deploy_type: samples
secrets:
host: ${{ secrets.HOST }}
user: ${{ secrets.USER }}
private_key: ${{ secrets.PRIVATE_KEY }}

deploy:
deploy_build:
if: github.repository == 'Dash-Industry-Forum/dash.js'
needs: get_version_number
uses: ./.github/workflows/deploy_build.yml
uses: ./.github/workflows/deploy.yml
with:
envname: v${{ needs.get_version_number.outputs.version }}
deploy_path: '/377335'
deploy_type: build
secrets:
host: ${{ secrets.HOST }}
user: ${{ secrets.USER }}
private_key: ${{ secrets.PRIVATE_KEY }}
private_key: ${{ secrets.PRIVATE_KEY }}
1 change: 1 addition & 0 deletions .github/workflows/deploy_latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ jobs:
with:
envname: latest
deploy_path: '/377335/dash.js'
deploy_type: samples
secrets:
host: ${{secrets.HOST}}
user: ${{secrets.USER}}
Expand Down
38 changes: 0 additions & 38 deletions .github/workflows/deploy_latest_as_version_folder.yml

This file was deleted.

1 change: 1 addition & 0 deletions .github/workflows/deploy_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ jobs:
with:
envname: nightly
deploy_path: '/377335/dash.js'
deploy_type: samples
secrets:
host: ${{secrets.HOST}}
user: ${{secrets.USER}}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/deploy_v4_latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ jobs:
with:
envname: v4_latest
deploy_path: '/377335/dash.js'
deploy_type: samples
secrets:
host: ${{secrets.HOST}}
user: ${{secrets.USER}}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/deploy_v4_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ jobs:
with:
envname: v4_nightly
deploy_path: '/377335/dash.js'
deploy_type: samples
secrets:
host: ${{secrets.HOST}}
user: ${{secrets.USER}}
Expand Down
33 changes: 12 additions & 21 deletions .github/workflows/verify_branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,20 @@ name: verify_branch
on:
push:
branches:
- '**' # Triggers on push to any branch
- '**'
- '!master'
- '!development'
- '!v4_main'
- '!v4_development'

jobs:
build_and_unit_test:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
steps:
# On push events, actions/checkout checks out the branch directly (no merge with a target branch).
# This only verifies the branch in isolation, unlike pull_request events which test a merge commit.
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Cache node modules
id: cache-npm
uses: actions/cache@v3
with:
path: node_modules
key: ${{ runner.os }}-build-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-
${{ runner.os }}-
- if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }}
name: List the state of node modules
continue-on-error: true
run: npm list
- run: npm install
- run: npm run build
- name: Setup dash.js
uses: ./.github/actions/setup-dashjs
- name: Build and run unit tests
run: npm run build
Loading
Loading