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

Merge 4.7.4 into 4.7.0-as2 #4425

Draft
wants to merge 247 commits into
base: feature/adaptation-set-switching
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
247 commits
Select commit Hold shift + click to select a range
b272b18
Merge pull request #588 from AkamaiDASH/master
Jun 12, 2015
b1d08a3
Merge branch 'refs/heads/development'
Sep 8, 2015
042ea1d
Building min files for master release
Sep 8, 2015
ba275e6
merging release 1.5.1
Oct 14, 2015
4a168d7
adding dist files.
Oct 14, 2015
38490a1
Merge branch 'refs/heads/development'
Feb 12, 2016
3f1c80c
Pushing dist files to master
Feb 12, 2016
f8a1e50
Merge branch 'refs/heads/development'
Feb 12, 2016
aa5a7db
"here" links are evil
smedegaard Mar 21, 2016
8683028
removed extra space. Added period.
smedegaard Mar 23, 2016
d5ff90b
Merge pull request #1263 from smedegaard/patch-1
Mar 25, 2016
beacd65
Merge branch 'refs/heads/development'
Apr 15, 2016
df783ac
Merge branch 'master' of https://github.com/Dash-Industry-Forum/dash.js
Apr 15, 2016
4278a76
pushing dist files to master
Apr 15, 2016
b1d8ed7
Merge branch 'refs/heads/development'
Apr 21, 2016
c5793a6
Adding dist files to release.
Apr 21, 2016
00bd677
Merge branch 'refs/heads/development'
Jul 6, 2016
990c67c
adding dist files to master
Jul 6, 2016
71d7f5a
Merge branch 'refs/heads/development'
Sep 2, 2016
fcc98d4
dist files for release
Sep 2, 2016
223335b
Merge branch 'refs/heads/development'
Dec 21, 2016
28952ed
dist files for master release
Dec 21, 2016
581663c
dist files
Dec 21, 2016
5107f3f
Merge branch 'refs/heads/development'
Feb 1, 2017
77835b8
addind dist files for release
Feb 1, 2017
d389aed
Merge branch 'refs/heads/development'
Apr 27, 2017
a114c87
dist files for v2.5.0 release
Apr 27, 2017
6d79235
Merge branch 'refs/heads/development'
Sep 1, 2017
abe338d
adding dist files to master for release v2.6.0
Sep 1, 2017
0914c64
Merge branch 'development'
jeoliva Oct 11, 2017
e9d834a
Add dist files to master for release v2.6.1
jeoliva Oct 11, 2017
6c8d61d
Merge branch 'development'
jeoliva Oct 12, 2017
d91aca5
Add v2.6.2 dist files
jeoliva Oct 12, 2017
b1aad9f
Update version to 2.6.2
jeoliva Oct 12, 2017
81458cf
Merge branch 'development'
jeoliva Oct 16, 2017
2af44f8
Merge branch 'development'
jeoliva Nov 8, 2017
857720d
Add v2.6.3 dist files
jeoliva Nov 8, 2017
a337075
Merge branch 'development'
jeoliva Dec 6, 2017
de27d6d
Add v2.6.4 dist files
jeoliva Dec 6, 2017
650035d
Merge branch 'development'
jeoliva Jan 11, 2018
923c5b5
Add v2.6.5 dist files
jeoliva Jan 11, 2018
363caf5
Merge branch 'development'
jeoliva Feb 14, 2018
e863848
Update dist files to v2.6.6
jeoliva Feb 14, 2018
1f21e4d
Merge branch 'development'
jeoliva Mar 14, 2018
e2394a6
Add v2.6.7 dist files
jeoliva Mar 14, 2018
466bfe1
Merge branch 'development'
jeoliva Apr 30, 2018
888cdcc
Add v2.6.8 dist files
jeoliva Apr 30, 2018
4cf8733
Merge branch 'development'
jeoliva May 30, 2018
89f738a
Add v2.7.0 dist files
jeoliva May 30, 2018
e6da1f0
Merge branch 'development'
jeoliva Jul 3, 2018
a9e4ba9
Add v2.8.0 dist files
jeoliva Jul 3, 2018
a7f0942
Merge branch 'development'
jeoliva Aug 1, 2018
0420f9c
Add v2.9.0 dist files
jeoliva Aug 1, 2018
b65f4c8
Merge branch 'development'
jeoliva Oct 1, 2018
0c68888
Add v2.9.1 dist files
jeoliva Oct 1, 2018
bb3b888
Merge branch 'development'
jeoliva Oct 29, 2018
a77e526
Add v2.9.2 dist files
jeoliva Oct 29, 2018
45fdf42
Merge branch 'development'
jeoliva Feb 12, 2019
acda4c4
Add v2.9.3 dist files
jeoliva Feb 12, 2019
b0f46e8
Merge branch 'development'
jeoliva Jun 29, 2019
b90898e
Add v3.0.0 dist files
jeoliva Jun 29, 2019
6bcb89a
Merge branch 'development'
jeoliva Dec 4, 2019
3ff323e
Add v3.0.1 dist files
jeoliva Dec 4, 2019
ad7dd9e
Merge pull request #3174 from Dash-Industry-Forum/development
dsilhavy Feb 3, 2020
7981d20
Add v3.0.2 dist files
dsilhavy Feb 3, 2020
9fa1d36
Merge remote-tracking branch 'remotes/origin/development'
dsilhavy Mar 12, 2020
1c41129
Add dist files
dsilhavy Mar 12, 2020
f6ad4a2
Merge remote-tracking branch 'remotes/origin/development'
dsilhavy Apr 14, 2020
9167c97
Add dist files for version 3.1.0
dsilhavy Apr 14, 2020
ee7e378
Merge remote-tracking branch 'remotes/origin/development'
dsilhavy May 22, 2020
db496cb
Add dist files for version 3.1.1
dsilhavy May 22, 2020
ea1362f
Merge remote-tracking branch 'remotes/origin/development'
dsilhavy Jul 24, 2020
0054d7e
Add dist files for version 3.1.2
dsilhavy Jul 24, 2020
e17bc4e
Merge remote-tracking branch 'remotes/origin/development'
dsilhavy Sep 8, 2020
00732a7
Add dist files for 3.1.3
dsilhavy Sep 8, 2020
dce59b0
Merge branch 'development'
dsilhavy Dec 11, 2020
03ae3c8
Add dist files for version 3.2.0
dsilhavy Dec 11, 2020
07d0a87
Merge branch 'development' of https://github.com/Dash-Industry-Forum/…
dsilhavy Feb 22, 2021
a2315f4
Add dist files for v3.2.1
dsilhavy Feb 22, 2021
61fffca
Merge branch 'development' of https://github.com/Dash-Industry-Forum/…
dsilhavy Apr 13, 2021
27f4eb3
Add dist files for version 3.2.2
dsilhavy Apr 13, 2021
8969a3e
Merge branch 'development' of https://github.com/Dash-Industry-Forum/…
dsilhavy Jun 25, 2021
d216bd6
Build dist files for 4.0
dsilhavy Jun 25, 2021
2606972
Add dist files for 4.0
dsilhavy Jun 25, 2021
f401e25
Merge branch 'development' of https://github.com/Dash-Industry-Forum/…
dsilhavy Jul 30, 2021
48406ce
Add dist files for 4.0.1
dsilhavy Jul 30, 2021
b4b86d9
Merge branch 'development' of https://github.com/Dash-Industry-Forum/…
dsilhavy Sep 24, 2021
797d50b
Merge branch 'development' of https://github.com/Dash-Industry-Forum/…
dsilhavy Sep 24, 2021
9a2cd8b
Add version 4.1.0 dist files
dsilhavy Sep 24, 2021
4723070
Merge branch 'development'
dsilhavy Nov 29, 2021
6b64a61
Add dist files for 4.2.0
dsilhavy Nov 29, 2021
3d6cc6b
Merge branch 'development' of https://github.com/Dash-Industry-Forum/…
dsilhavy Dec 23, 2021
5dbc06a
Add dist files for release 4.2.1
dsilhavy Dec 23, 2021
6c191a7
Merge branch 'development' of https://github.com/Dash-Industry-Forum/…
dsilhavy Feb 25, 2022
99ea09e
Version 4.3.0 dist files
dsilhavy Feb 25, 2022
c203885
Merge branch 'development' of https://github.com/Dash-Industry-Forum/…
dsilhavy May 4, 2022
826aa71
Add dist files for version 4.4.0
dsilhavy May 4, 2022
a621b4a
Merge branch 'development' of https://github.com/Dash-Industry-Forum/…
dsilhavy Jul 25, 2022
3d2b826
Add dist files for release 4.4.1
dsilhavy Jul 25, 2022
7c4cd7a
Merge branch 'development'
dsilhavy Sep 28, 2022
cff34a8
Add dist files for version 4.5.0
dsilhavy Sep 28, 2022
c4fe795
Merge remote-tracking branch 'origin/development'
dsilhavy Nov 11, 2022
df045d6
Add dist files for 4.5.1
dsilhavy Nov 11, 2022
00a172d
Merge remote-tracking branch 'origin/development'
dsilhavy Dec 14, 2022
4e8de8e
Add dist files for release 4.5.2
dsilhavy Dec 14, 2022
60bdc76
Merge remote-tracking branch 'origin/development'
dsilhavy Feb 20, 2023
3fdda7f
Add dist files for release v.4.6.0
dsilhavy Feb 20, 2023
e2f0586
chore: Update IMSC.js version to 1.1.3 (#4138)
vodlogic Mar 20, 2023
6e640ae
Fix drm checking for single representation in adaptation (#4140)
minhui-foxtel Mar 20, 2023
935b20d
Fix/rerequest quality switch (#4144)
dsilhavy Mar 21, 2023
a3c6bab
Initialize box processors when MSS content is actually being played (…
dsilhavy Mar 21, 2023
1bda677
Add teststream for SegmentTimeline with $number
dsilhavy Mar 24, 2023
533b074
Update getMatroskaUint to handle larger integer values (#4136)
kv-bh Mar 27, 2023
e070372
Fix styling of embedded WebVTT cues by adding support for sttg box. R…
dsilhavy Mar 28, 2023
389c145
Fix: changeType() is Not Fully Implemented on Sony PS5 (#4149)
agajassi Mar 29, 2023
27017ac
Fix bug which causes multiperiod stream to stall after internal seek …
dsilhavy Mar 30, 2023
9cf6029
fix: wrong MediaInfo.labels type definition (#4165)
bwallberg Apr 3, 2023
93462ad
Add missing event to ProtectionEvents.js
dsilhavy Apr 4, 2023
36af412
Fix blinking cues when segmented over multiple segments or chunks (co…
bbert Apr 5, 2023
9a8f765
Feature/preload with start time (#4169)
dsilhavy Apr 13, 2023
c8ba161
fix: VTT line styling failing, invalid snapToLines value (#4167)
bwallberg Apr 13, 2023
2643952
MediaInfo: introduce DescriptorType (#4158)
stschr Apr 24, 2023
50604db
enabling ObjectIron to process EssentialProperty_asArray as well (#4172)
stschr Apr 24, 2023
698b5e7
Feature/content steering optimizations (#4173)
dsilhavy Apr 24, 2023
eb91e6b
Fix linting errors for "no-multi-space" (#4177)
dsilhavy Apr 24, 2023
377d60a
Fix: Allow the playback whenever the t attribute is missing in the Se…
dario-fiore Apr 25, 2023
7b1f064
Fix nullpointer if video element is set to null (#4178)
dsilhavy Apr 25, 2023
eaf4d46
Fix error in playFromTime.js test that causes CircleCI report upload …
dsilhavy Apr 26, 2023
1ea3188
Link new sample stream in content steering sample
dsilhavy Apr 28, 2023
410777b
Use https test stream in content steering demo
dsilhavy Apr 28, 2023
23c9e81
Remove Axinom streams that return a license error
dsilhavy May 3, 2023
bd871c6
Merge remote-tracking branch 'origin/development'
dsilhavy May 5, 2023
39b8aa7
Add dist files for release 4.7.0
dsilhavy May 5, 2023
c915a5e
Fix JSDoc errors
dsilhavy May 5, 2023
0533ffc
Merge remote-tracking branch 'origin/development'
dsilhavy May 5, 2023
9e497c4
Push updated build files for v4.7.0
dsilhavy May 5, 2023
0982920
Increase version number to 4.7.1
dsilhavy May 5, 2023
fb5fb74
Fix reporting of CMCD for SegmentBase range requests (#4189)
dsilhavy May 18, 2023
9a07e50
Do not close key session if key is usable in getLicense.html demo (#4…
dsilhavy May 26, 2023
26962b4
Initial, fixed FragmentRequest 'type' typing (#4191)
ShikiSeiren May 26, 2023
c238e6f
Fix handling of MPDs containing SegmentList with SegmentTimeline (#4185)
tea May 30, 2023
4078894
Add postbuild command to copy index.d.ts to dash.d.ts
dsilhavy May 30, 2023
6994e34
Add Axinom teststreams with new license server URL
dsilhavy May 30, 2023
cfb0af7
Add autoLoad flag to start playback in reference client once page is …
dsilhavy May 31, 2023
8c3675a
Fix wrong unregister event listener for PLAYBACK_SEEKED in CatchupCon…
dsilhavy May 31, 2023
f18da5a
Add option to mute playback in reference UI via query parameters (#4196)
dsilhavy May 31, 2023
bd0081d
Fix throughput on abort (#4201)
bbert Jun 6, 2023
59542d3
Fix throughput on abort (#4203)
bbert Jun 6, 2023
4b0b16d
Fix a regression for subtitle playback. We need the segment duration …
dsilhavy Jun 9, 2023
ed9d083
Fix a bug introduced with the latest changes in updateData of the Rep…
dsilhavy Jun 16, 2023
62ea37b
Fix/content steering host (#4213)
dsilhavy Jun 16, 2023
fe8f82c
Fix JSDoc in Settings.js (#4214)
dsilhavy Jun 16, 2023
8cceecf
L2A fixes (#4195)
piersoh Jun 19, 2023
8cad591
Merge remote-tracking branch 'origin/development'
dsilhavy Jun 21, 2023
88f92cb
Push dist files for version 4.7.1
dsilhavy Jun 21, 2023
143a070
Update version number to 4.7.2
dsilhavy Jul 11, 2023
3a1cfc2
Update content steering reference stream
dsilhavy Jul 11, 2023
56b33ca
fix(types): TextRequest url property (#4211)
ondreian Jul 12, 2023
520cfe5
Fix wrong Typescript definition of updateSource (#4223)
dsilhavy Jul 12, 2023
e56b669
Fix a bug for VTT.js based rendering that causes cues not to be remov…
dsilhavy Jul 12, 2023
ff6884e
Define target "web" and "es5" for webpack to make build files ES5 com…
dsilhavy Jul 12, 2023
3e1356f
Fix init value for storeLastSettings (#4221)
minhui-foxtel Jul 14, 2023
123747f
Upgrade browser-tools CircleCI orb to 1.4.2 to solve Chromedriver issue
dsilhavy Jul 19, 2023
4b4a8b1
Remove unusable key sessions when ProtectionController is stopped wit…
dsilhavy Jul 26, 2023
23941f8
bugfix/reset-race-conditions (#4246)
littlespex Aug 4, 2023
e959ec4
Compare indices of mediaInfo objects when checking if a track change …
dsilhavy Aug 5, 2023
dbfe4da
Fix wrong attribute in L2A rule (#4252)
dsilhavy Aug 7, 2023
3bdcc2a
Fix error in ProtectionModel_21Jan2015.js when closing key session (#…
dsilhavy Aug 7, 2023
da4a7b5
Fix accessing undefined value in _closeKeySessionInternal
dsilhavy Aug 7, 2023
30441c6
Check for "text/vtt" in catch block of SourceBufferSink.js (#4265)
dsilhavy Aug 21, 2023
ec1af1c
Upgrade CircleCI browser-tools dependency
dsilhavy Aug 31, 2023
67f2f6f
Prevent redundant subtitle parser restarts during low latency streams…
m-buczek Aug 31, 2023
8f75266
Added getTargetLiveDelay method to type definitions (#4268)
matvp91 Aug 31, 2023
14d9e96
Remove `babel-preset-env` (#4272)
ShiningTrapez Sep 4, 2023
1c8312a
Use fixed version of Chrome driver as latest one is unavailable (#4273)
dsilhavy Sep 4, 2023
39efb18
add setting to change mediasource duration from infinity to math.pow(…
bwallberg Sep 5, 2023
455796d
Reset MSE when switching codec if changeType is unstable or unavailab…
matvp91 Sep 11, 2023
e9f7778
Add support for replacing a text node via MPD patching (#4278)
dsilhavy Sep 11, 2023
b9b5159
Do not execute multiple setCurrentTime via waitForReadyState to avoid…
dsilhavy Sep 12, 2023
78c438e
Adds a functional testsuite based on the Karma framework. (#4281)
dsilhavy Sep 13, 2023
77ae5f0
Change content steering sample stream URL
dsilhavy Sep 21, 2023
9dbd569
Use license that doesnt expire in the Widevine sample
dsilhavy Sep 21, 2023
798b07b
Change MSS sample streams
dsilhavy Sep 28, 2023
d41a71a
Merge remote-tracking branch 'origin/development'
dsilhavy Sep 28, 2023
b5a9ce1
Add dist files for version 4.7.2
dsilhavy Sep 28, 2023
edf89c4
Fix/scheduling (#4296)
dsilhavy Oct 9, 2023
9bc5f2e
Js docs menu blocks (#4280)
abdulaziz-bd Oct 11, 2023
536371a
Minor changes to the JSDoc config
dsilhavy Oct 11, 2023
425fa72
Fix/segment abandon (#4297)
dsilhavy Oct 11, 2023
3f66a52
Adds settings parameters to configure the AbandonRequestsRule.js (#4298)
dsilhavy Oct 11, 2023
ee8d5f0
Update all URLs to Livesim. Use Livesim2 instead of Livesim1 (#4267)
dsilhavy Oct 12, 2023
66d0785
Remove outdated cues from track when adding a new cue. (#4305)
dsilhavy Nov 1, 2023
7320c8f
Add new BBC R&D Test Streams to Reference Player (#4310)
mattjuggins Nov 8, 2023
cb75b77
Fix/control bar (#4314)
ShikiSeiren Nov 13, 2023
2b957f8
Feature/managed media source (#4319)
dsilhavy Nov 22, 2023
01117ab
enable pass-through of UTF-8 chars when provided via lang-attribute (…
stschr Nov 30, 2023
7025589
for lldash use min/max playbackRate when the buffer is safe in mode: …
bwallberg Dec 5, 2023
697f86a
Fix a bug in the OfflineStreamProcessor.js (#4323)
dsilhavy Dec 6, 2023
fcb89e1
Use imscJS v1.1.4 (#4324)
nigelmegitt Dec 8, 2023
8a1b7c0
Merge remote-tracking branch 'origin/development'
dsilhavy Dec 8, 2023
bda552d
Add dist files for version 4.7.3
dsilhavy Dec 8, 2023
3116846
Add MediaPlayer capability to refresh manifest (#4330)
eirikbjornr Jan 8, 2024
73c408e
Include HTTP request range in data that is passed to the modifyReques…
dsilhavy Jan 8, 2024
acafe2c
Remove PlaybackErrorEvent duplicate in index.d.ts (#4348)
kris-youview Jan 10, 2024
ff3afd1
Remove MediaPlayerEvents duplicate in index.d.ts (#4349)
kris-youview Jan 10, 2024
d3076e5
Fix invalid warning log in StreamProcessor.js (#4355)
dsilhavy Jan 10, 2024
fae2d21
Remove specific chrome version from circleci config (#4335)
dsilhavy Jan 10, 2024
81baa66
Remove unused dependency foodoc and move JDSdoc related dependencies …
dsilhavy Jan 10, 2024
427b2e7
Add text.imsc settings for rollUp and displayForcedOnly (#4336)
nigelmegitt Jan 11, 2024
b5f6135
Fix flickering/blinking IMSC Subtitles (#4359)
mattjuggins Jan 18, 2024
248ea30
Consistent use of camelCase for DVB extension properties (#4362)
mattjuggins Jan 18, 2024
49257d9
Fix PlaybackErrorEvent error TS typing (#4363)
kris-youview Jan 18, 2024
37c68da
DVB Font Downloads (#4338)
mattjuggins Jan 22, 2024
7453930
Add a try/catch around matchSettingsLang in case bcp47Normalize fails…
dsilhavy Jan 22, 2024
28d540b
Check for available representations in DVBFonts.js to avoid accessing…
dsilhavy Jan 23, 2024
68d82ce
Check for undefined in addHttpRequest (#4368)
dsilhavy Jan 23, 2024
db643ad
Added subtitle event handling for manual rendering the subtitles (#4360)
bitboxer Feb 6, 2024
9e3da3c
Added liveUpdateTimeThreshold to control time syncing during live str…
matvp91 Feb 6, 2024
1249205
Fix a bug when dispatching subtitle events that causes an error in th…
dsilhavy Feb 19, 2024
f57d86f
Merge remote-tracking branch 'origin/development'
dsilhavy Feb 20, 2024
fa13682
Add dist files for version 4.7.4
dsilhavy Feb 20, 2024
b86bb12
Trying to structure the required changes for AS switching with minima…
dsilhavy Mar 13, 2023
cc1aafe
Revert some unnecessary changes
dsilhavy Mar 13, 2023
14575e1
working "normal" playback again after refactoring. Issue checking for…
dsilhavy Mar 15, 2023
eb289d2
fix merging problem
KimmyWFox Mar 26, 2024
151c133
Adjustments to fix bugs in "normal" playback
dsilhavy Mar 15, 2023
5d4dbe9
Minor adjustments to unify quality switch
dsilhavy Mar 15, 2023
e2ef351
Fix a bug for texttrack playback
dsilhavy Mar 15, 2023
2de193e
Some changes to the control
dsilhavy Mar 15, 2023
eba5027
fix merging problem
KimmyWFox Mar 27, 2024
2ba5ff2
WiP: Trying to restructure UI calls for AS switching
dsilhavy Mar 20, 2023
419aa6b
Switching seems to work
dsilhavy Mar 20, 2023
5fbef6c
fix merging problem
KimmyWFox Mar 27, 2024
2a148a1
WiP: Change rules
dsilhavy Mar 20, 2023
ed4e40d
Fix Bola rule
dsilhavy Mar 22, 2023
1ae6a01
Fix remaining rules
dsilhavy Mar 22, 2023
4d7bf29
Fix fast quality switch
dsilhavy Mar 23, 2023
6c4f554
Chaange version name as we will not merge this back and implement dif…
dsilhavy Mar 23, 2023
102b1e6
emove unusable key sessions when ProtectionController is stopped with…
dsilhavy Jul 31, 2023
98263ad
Return absoluteIndex in getQualityFor and complete bitrateInfo in get…
dsilhavy Jul 31, 2023
7edada9
Fix access to sessionToken property
dsilhavy Jul 31, 2023
d3c726a
Increase version number to 4.7.0-as2
dsilhavy Aug 3, 2023
06571a6
Merge tag 'v4.7.1' into 4.7.1-as2
KimmyWFox Mar 28, 2024
94e801f
Merge tag 'v4.7.2' into 4.7.1-as2
KimmyWFox Mar 28, 2024
5efbdc5
Merge tag 'v4.7.3' into 4.7.1-as2
KimmyWFox Mar 29, 2024
380c348
Merge branch 'master' into 4.7.1-as2
KimmyWFox Mar 29, 2024
4eae0a9
fix merging problem
KimmyWFox Mar 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
260 changes: 136 additions & 124 deletions .circleci/config.yml
@@ -1,68 +1,86 @@
version: 2.1
orbs:
browser-tools: circleci/browser-tools@1.4.1
browser-tools: circleci/browser-tools@1.4.6

executors:
dashjs-executor:
working_directory: ~/repo
docker:
- image: cimg/node:16.18.1
dashjs-executor:
working_directory: ~/repo
docker:
- image: cimg/node:16.18.1

commands:
dependencies_setup:
steps:
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package.json" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run:
name: Install dependencies
command: npm install
- save_cache:
paths:
- node_modules
key: v1-dependencies-{{ checksum "package.json" }}
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package.json" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run:
name: Install dependencies
command: npm install
- save_cache:
paths:
- node_modules
key: v1-dependencies-{{ checksum "package.json" }}

functional_precondition:
steps:
- run:
name: Check if preconditions are met for functional tests
command: |
if [ -z "$BROWSERSTACK_ACCESS_KEY" ]; then
echo "BrowserStack not configured, functional tests will not be executed."
circleci-agent step halt
fi
- run:
name: Check if preconditions are met for functional tests
command: |
if [ -z "$BROWSERSTACK_ACCESS_KEY" ]; then
echo "BrowserStack not configured, functional tests will not be executed."
circleci-agent step halt
fi

functional_test_setup:
steps:
- run:
name: Download the browserstack binary file to create a tunnel
command: wget "https://www.browserstack.com/browserstack-local/BrowserStackLocal-linux-x64.zip"
- run:
name: Unzip the browserstack binary file
command: unzip BrowserStackLocal-linux-x64.zip
- run:
name: Run browserstack with provided access key
command: ./BrowserStackLocal $BROWSERSTACK_ACCESS_KEY
background: true
- run:
name: Download the browserstack binary file to create a tunnel
command: wget "https://www.browserstack.com/browserstack-local/BrowserStackLocal-linux-x64.zip"
- run:
name: Unzip the browserstack binary file
command: unzip BrowserStackLocal-linux-x64.zip
- run:
name: Run browserstack with provided access key
command: ./BrowserStackLocal $BROWSERSTACK_ACCESS_KEY
background: true

build_unit_test_steps:
steps:
- browser-tools/install-browser-tools
- run:
name: Build and run unit tests
command: |
npm run build
npm run test
- browser-tools/install-browser-tools:
chrome-version: "120.0.6099.224"
- run:
name: Build and run unit tests
command: |
npm run build
npm run test
process_test_results: # CircleCI can not handle NaN values so we replace them with 0
steps:
- run:
name: Install xmlstarlet
command: sudo apt-get -y update && sudo apt-get -y install xmlstarlet
- run:
name: Modify XML files recursively and copy to another folder
command: |
mkdir test/functional/reports/junit/adjusted
cd test/functional/reports/junit
for file in *.xml; do
[ -f "$file" ] || continue
xmlstarlet ed -L -u '//testcase[@time="NaN"]/@time' -v '0' "$file"
cp "$file" adjusted/$file
done
- store_test_results:
path: test/functional/reports/junit/adjusted

functional_steps:
steps:
- functional_precondition
- checkout
- dependencies_setup
- build_unit_test_steps
- functional_test_setup
steps:
- functional_precondition
- checkout
- dependencies_setup
- build_unit_test_steps
- functional_test_setup

run_test_suite:
parameters:
Expand All @@ -76,10 +94,10 @@ commands:
default: ""
type: string
steps:
- run:
name: Run functional tests (<<parameters.browser>> / <<parameters.protocol>>) <<parameters.groupname>>
command:
node test/functional/runTests.js --selenium=remote --reporters=junit --app=remote --browsers=<<parameters.browser>> --protocol=<<parameters.protocol>> --groupname="<<parameters.groupname>>"
- run:
name: Run functional tests (<<parameters.browser>> / <<parameters.protocol>>) <<parameters.groupname>>
command:
node test/functional/runTests.js --selenium=remote --reporters=junit --app=remote --browsers=<<parameters.browser>> --protocol=<<parameters.protocol>> --groupname="<<parameters.groupname>>"
jobs:
build-and-unit-test:
executor: dashjs-executor
Expand All @@ -92,13 +110,13 @@ jobs:
executor: dashjs-executor
steps:
- checkout
- run:
name: Merge into development virtually
command: |
git config --global user.email "circleci@example.com"
git config --global user.name "CircleCI"
git checkout development
git merge --no-edit --no-ff $CIRCLE_BRANCH
- run:
name: Merge into development virtually
command: |
git config --global user.email "circleci@example.com"
git config --global user.name "CircleCI"
git checkout development
git merge --no-edit --no-ff $CIRCLE_BRANCH
- dependencies_setup
- build_unit_test_steps

Expand All @@ -107,104 +125,98 @@ jobs:
steps:
- functional_precondition
- checkout
- run:
name: Virtual merge into development branch
command: |
if [ "${CIRCLE_BRANCH}" = "development" ]; then
echo "On development branch already, no merge needed"
else
git config --global user.email "circleci@example.com"
git config --global user.name "CircleCI"
git checkout development
git merge --no-edit --no-ff $CIRCLE_BRANCH
fi
- run:
name: Virtual merge into development branch
command: |
if [ "${CIRCLE_BRANCH}" = "development" ]; then
echo "On development branch already, no merge needed"
else
git config --global user.email "circleci@example.com"
git config --global user.name "CircleCI"
git checkout development
git merge --no-edit --no-ff $CIRCLE_BRANCH
fi
- dependencies_setup
- build_unit_test_steps
- functional_test_setup
- run:
name: Run functional tests for one vector (chrome / https)
command:
node test/functional/runTests.js --selenium=remote --reporters=junit --debug=true --app=remote --browsers=chrome --protocol=https --source=./test/functional/config/singleVector.json
- run:
name: Run functional tests for smoke vectors (chrome / https)
command:
node test/functional/runTests.js --selenium=remote --reporters=junit --debug=true --app=remote --browsers=chrome --protocol=https --source=./test/functional/config/smokeVectors.json
- store_test_results:
path: test/functional/reports

- run:
name: Run functional tests for one vector (chrome / https)
command:
node test/functional/runTests.js --selenium=remote --reporters=junit --debug=true --app=remote --browsers=chrome --protocol=https --source=./test/functional/config/singleVector.json
- run:
name: Run functional tests for smoke vectors (chrome / https)
command:
node test/functional/runTests.js --selenium=remote --reporters=junit --debug=true --app=remote --browsers=chrome --protocol=https --source=./test/functional/config/smokeVectors.json
- process_test_results

functional-tests-VOD_LIVE:
executor: dashjs-executor
steps:
- functional_steps
- run_test_suite:
groupname: VOD (Static MPD)
- run_test_suite:
groupname: LIVE (Dynamic MPD)
- run_test_suite:
groupname: Live Low Latency
- store_test_results:
path: test/functional/reports
- run_test_suite:
groupname: VOD (Static MPD)
- run_test_suite:
groupname: LIVE (Dynamic MPD)
- run_test_suite:
groupname: Live Low Latency
- process_test_results

functional-tests-DRM:
executor: dashjs-executor
steps:
- functional_steps
- run_test_suite:
groupname: DRM (modern)
- run_test_suite:
groupname: DRM Content (conservative/legacy)
- store_test_results:
path: test/functional/reports
- run_test_suite:
groupname: DRM (modern)
- run_test_suite:
groupname: DRM Content (conservative/legacy)
- process_test_results

functional-tests-Subtitles_Thumbnails_Audio_Smooth:
executor: dashjs-executor
steps:
- functional_steps
- run_test_suite:
groupname: Subtitles and Captions
- run_test_suite:
groupname: Thumbnails
- run_test_suite:
groupname: Audio-only
- run_test_suite:
groupname: Smooth Streaming

- store_test_results:
path: test/functional/reports
- run_test_suite:
groupname: Subtitles and Captions
- run_test_suite:
groupname: Thumbnails
- run_test_suite:
groupname: Audio-only
- run_test_suite:
groupname: Smooth Streaming
- process_test_results

functional-tests-only-http:
executor: dashjs-executor
steps:
- functional_steps
- run_test_suite:
protocol: http
- store_test_results:
path: test/functional/reports
- run_test_suite:
protocol: http
- process_test_results

workflows:
version: 2
commit-workflow:
jobs:
- build-and-unit-test # run unit tests on feature branch
- merge-build-and-unit-test: # run unit tests on virtually merged feature branch
filters:
branches:
ignore:
- development # skiping redundant job if already on development
- functional-tests-smoke:
filters:
branches:
ignore: # as creds are available only for non-forked branches
- /pull\/[0-9]+/
- merge-build-and-unit-test: # run unit tests on virtually merged feature branch
filters:
branches:
ignore:
- development # skiping redundant job if already on development
- functional-tests-smoke:
filters:
branches:
ignore: # as creds are available only for non-forked branches
- /pull\/[0-9]+/

scheduled-workflow:
triggers:
- schedule:
cron: "0 0 * * 0,3"
filters:
branches:
only:
- development
- schedule:
cron: "0 0 * * 0,3"
filters:
branches:
only:
- development
jobs:
- functional-tests-VOD_LIVE
- functional-tests-DRM
Expand Down
1 change: 1 addition & 0 deletions .eslintrc
Expand Up @@ -21,6 +21,7 @@
"no-use-before-define": 0,
"strict": 0,
"no-loop-func": 0,
"no-multi-spaces": "error",
"quotes": [
"error",
"single",
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Expand Up @@ -188,3 +188,7 @@ build/typings/

# Vim
.vimrc

#Karma Functional tests
test/functional-karma/coverage
test/functional-karma/results
1 change: 1 addition & 0 deletions AUTHORS.md
Expand Up @@ -48,3 +48,4 @@
* @epiclabsDASH [Jesus Oliva, Epic Labs]
* @adripanico [Adrian Caballero, Epic Labs]
* @ahfarmer [Andrew Farmer, Rhombus Systems]
* @matvp91 [Matthias Van Parijs]
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -184,7 +184,7 @@ When it is all done, it should look similar to this:
* ```npm run doc```

### Troubleshooting
* In case the build process is failing make sure to use an up-to-date node.js version. The build process was successfully tested with node.js version 14.16.1.
* In case the build process is failing make sure to use an up-to-date node.js version. The build process was successfully tested with node.js version 20.10.0.

### License
dash.js is released under [BSD license](https://github.com/Dash-Industry-Forum/dash.js/blob/development/LICENSE.md)
Expand Down