Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
bdd038b
Move directories around
peaBerberian Jan 25, 2024
303487c
Rename "Portal" into "Main" in core
peaBerberian Jan 26, 2024
40b7b20
Add linting rule for type imports
peaBerberian Jan 25, 2024
ca4ad90
Rename SegmentBuffers to SegmentSinks
peaBerberian Jan 25, 2024
9033e11
Move MediaSourceDurationUpdater and endOfStream management to an mse/…
peaBerberian Jan 25, 2024
869b7b9
Enforce eqeqeq linting rule
peaBerberian Jan 26, 2024
dfbe33f
Move MainThreadTextInterface to main_thread
peaBerberian Jan 26, 2024
272f40d
Move getBufferedDataPerMediaBuffer into src/core/main/utils
peaBerberian Jan 26, 2024
22366ce
Prefer relying on types directory
peaBerberian Jan 26, 2024
2100aa0
Rename src/core/main/utils to src/core/main/common
peaBerberian Jan 26, 2024
28965c8
[Proposal] Solution 1: PlaybackObserver is moved in `src`
peaBerberian Jan 26, 2024
467e2c5
Update FILES.md
peaBerberian Jan 26, 2024
74117f0
Add prettier and set it up
peaBerberian Jan 26, 2024
7103342
Add rustfmt and check to CI
peaBerberian Jan 26, 2024
214ddec
Remove unneeded prettier rule
peaBerberian Jan 26, 2024
5aa27a0
Minor documentation update
peaBerberian Jan 29, 2024
0d2cff4
Allow width limit on markdown files with prettier
peaBerberian Jan 29, 2024
e6f5f13
Remove compat/index.js file
peaBerberian Jan 29, 2024
e6f3eb5
Update .npmignore
peaBerberian Jan 29, 2024
7dfb9e0
Fix JSDoc and naming in tracksstore
peaBerberian Jan 29, 2024
c51ed6e
Forbid nested ternary operators through eslint
peaBerberian Jan 29, 2024
a927483
Add more architecture schemas in src/readme.md
peaBerberian Feb 5, 2024
bc88687
update .gitignore
peaBerberian Feb 5, 2024
fdd3138
Don't re-load a Manifest's optional external resource each time if in…
peaBerberian Jan 31, 2024
e28fb46
Re-run prettier on markdown files
peaBerberian Feb 5, 2024
a86347e
refactor: create a fn getRetryDelay and test it
Florent-Bouisset Feb 1, 2024
66fe30f
fix(test): fix flaky test by changing timeout according to the
Florent-Bouisset Feb 1, 2024
2a61911
test: move test related to RetryPromiseWithBackoff in its own file
Florent-Bouisset Feb 5, 2024
8bb1656
fix(types): remove IIFE to correctly export Player class type
Florent-Bouisset Feb 5, 2024
d06a946
fix(demo): text for limit video resolution update when selecting anot…
Florent-Bouisset Feb 9, 2024
f8ffadf
fix circular dependencies issues.
Florent-Bouisset Feb 13, 2024
824698a
Fix canal-release.patch post-prettier
peaBerberian Feb 20, 2024
7274be4
Fix update-version script post file reorg
peaBerberian Feb 20, 2024
9c571e2
Run prettier again after rebase
peaBerberian Feb 20, 2024
20e076f
Fix update-version script as prettier broke our ugly sed trick
peaBerberian Feb 20, 2024
73c2504
Make some integration tests' timeout higher as they sometimes break i…
peaBerberian Feb 21, 2024
b4f8bd0
fix apply patch correctly for ps5
Florent-Bouisset Feb 21, 2024
4580010
[POC]: Experiment with "txml" parser, to get rid of the DOMParser
peaBerberian Feb 13, 2024
a01ac6b
Parse xml entities
peaBerberian Feb 15, 2024
c34c925
DASH: Begin translating unit tests
peaBerberian Feb 15, 2024
26e70da
Move files around and fix parseFromDocument tests
peaBerberian Feb 15, 2024
1edda25
DASH: rewrite unit tests
peaBerberian Feb 15, 2024
d711865
Handle EventStream events
peaBerberian Feb 15, 2024
1382642
Add both DOM and fastjs parser
peaBerberian Feb 16, 2024
bbd3bef
Parse xml inside fast js parser
peaBerberian Feb 16, 2024
c4b75a8
Rely on JS parser in multithread mode by default
peaBerberian Feb 16, 2024
09e62aa
Fix failing integration test
peaBerberian Feb 19, 2024
2530987
Add unit test for xml parser
peaBerberian Feb 19, 2024
034e675
Fix code style after review
peaBerberian Feb 20, 2024
69cd181
Remove DASH js feature from features/list for now
peaBerberian Feb 20, 2024
cb86f14
doc: update Multithreading documentation as embedded wasm isnt a requ…
peaBerberian Feb 20, 2024
5a329b9
Do not fallback if WebAssembly initialization fails
peaBerberian Feb 20, 2024
2cc1217
Update nodejs version
peaBerberian Feb 23, 2024
c315603
Separate steps for memory and integration tests
peaBerberian Feb 23, 2024
df8829e
tests: perform exponential backoff in integration tests
peaBerberian Feb 22, 2024
fcaca6a
fix commit patch after prettier
Florent-Bouisset Feb 26, 2024
2d9ec3b
fix(directfile): media with autoplay:false is infinitly in loading state
Florent-Bouisset Feb 27, 2024
f3ca8d8
Fix some JSDoc about the MediaSourceInterface
peaBerberian Mar 5, 2024
a91e904
Fix end of Arraybuffer wrongly being considered as remaining for low-…
peaBerberian Mar 7, 2024
f906185
Remove `isSafariMobile` mention from `main_thread` code.
peaBerberian Mar 4, 2024
9694079
api: throw an error if an application use a video element in multiple…
Florent-Bouisset Mar 11, 2024
f36aef0
DRM: Cleaner implementation for setMediaKeys
peaBerberian Jan 15, 2024
02d8347
Throw CREATE_MEDIA_KEYS_ERROR when MediaKeys attachment fails
peaBerberian Feb 28, 2024
feff157
Add MEDIA_KEYS_ATTACHMENT_ERROR
peaBerberian Mar 4, 2024
98b8a5e
Do not rely on performance.now if unavailable
peaBerberian Mar 8, 2024
437e29b
Fix Worker usage on PS4 browser
peaBerberian Mar 5, 2024
ecb5072
Update changelog
peaBerberian Mar 11, 2024
1005b2e
On the playstation 5, reload ASAP if a key become unusable
peaBerberian Mar 8, 2024
f79488f
Add ps5 fix to the CHANGELOG file
peaBerberian Mar 11, 2024
5980414
Provide ES5 version of the worker file
peaBerberian Mar 8, 2024
90d845c
Fix typo in changelog and run prettier on it
peaBerberian Mar 11, 2024
2fe8164
fix(safari): autoplay was not working on Safari
Florent-Bouisset Mar 13, 2024
3797de8
fix(safari): no longer stuck in buffering on safari iOS when video ha…
Florent-Bouisset Mar 14, 2024
3bef810
refactor: factorize keyId comparison for blacklisting
Florent-Bouisset Mar 20, 2024
bc5173a
misc: changed a misleading log that falsely suggests receiving the ke…
Florent-Bouisset Mar 29, 2024
e859f3b
When listing segments needed, stop filtering the current range
peaBerberian Apr 2, 2024
eae47ee
test: add unit test for subtitles insertion logic
Mar 25, 2024
c1c2588
fix bug subtitles blinking in low-latency
Mar 25, 2024
af0cd23
fix: correctly parse subtitles on a fragmented media in low latency
Florent-Bouisset Mar 25, 2024
8064879
PR feedback
Florent-Bouisset Mar 27, 2024
f3cc973
PR feedback
Florent-Bouisset Mar 27, 2024
1fc9cd3
remove abs and add a test case
Florent-Bouisset Apr 9, 2024
aa8ea6a
Fix duplicate segment requests for low-latency contents
peaBerberian Apr 3, 2024
bacd723
Update how MINIMUM_SEGMENT_SIZE is used in the SegmentInventory
peaBerberian Apr 3, 2024
98da069
Fix logic issue in segmentinventory ambiguous range determination
peaBerberian Apr 9, 2024
0a4c072
Fix minor dependency issues
peaBerberian Apr 9, 2024
afb7e09
refactor: create a function getReusableSegments to simplify code
Florent-Bouisset Apr 4, 2024
97d46f6
review: change function name
Florent-Bouisset Apr 11, 2024
cec0a98
fix: safari support audio lang "und" in audioTrack
Florent-Bouisset Apr 5, 2024
ff26ef6
fix
Florent-Bouisset Apr 9, 2024
74d30e7
update Unit tests
Florent-Bouisset Apr 9, 2024
a810a68
typo
Florent-Bouisset Apr 11, 2024
4a59aaa
Generate TypeScript declaration maps
steve-taylor Mar 20, 2024
f026ee0
Update .npmignore to ignore rust build artifcat
Florent-Bouisset May 2, 2024
12f4588
Fix integration tests
peaBerberian May 6, 2024
a08e350
Fix max position in speed integration test
peaBerberian May 6, 2024
61562ea
WIP
Florent-Bouisset Apr 26, 2024
970db2d
create an utils to generate playready init data
Florent-Bouisset Apr 29, 2024
77ac4e4
use generate init Data instead of having a raw uint8Array
Florent-Bouisset Apr 29, 2024
ced5a76
PR feedback
Florent-Bouisset Apr 30, 2024
2d2721a
update file path
Florent-Bouisset Apr 30, 2024
12f0ee8
PR review
Florent-Bouisset May 2, 2024
6ab9c9d
Begin to fix memory tests on Chrome 124+ (#1436)
peaBerberian Jun 4, 2024
1acb763
Add more logs relative to DRM to associate key ids and qualities
peaBerberian Jun 5, 2024
78c9f42
feature: support absolute path in URL resolution with RFC 3986 implem…
Florent-Bouisset Jun 11, 2024
424ff17
Update CHANGELOG.md with upcoming features
peaBerberian Jun 11, 2024
1e21b04
Begin implementation for ContentProtection references
peaBerberian May 15, 2024
06c4606
DASH: Also parse ContentProtection at the MPD and Period level
peaBerberian May 15, 2024
bd2fefa
DASH: ContentProtection at the Period and MPD level are only here for…
peaBerberian May 16, 2024
8e3575b
DASH: Remove old ContentProtection reference implementation
peaBerberian May 16, 2024
c829f23
DASH: update comments for the ContentProtectionParser
peaBerberian May 16, 2024
6be1683
use vitest for integration tests (#1444)
Florent-Bouisset Jun 14, 2024
5794201
Switch unit tests to use vitest (#1445)
peaBerberian Jun 17, 2024
491d73b
Merge pull request #1439 from canalplus/feat/contentprotref
peaBerberian Jun 17, 2024
65d557e
feat:(worker) debug element display buffer in worker mode (#1438)
Florent-Bouisset Jun 17, 2024
061588a
Proposal: remove the need to rely on webpack for es5 worker generation
peaBerberian Apr 3, 2024
bb0e7f5
Proposal: Stop relying on webpack for legacy bundles generation
peaBerberian Apr 4, 2024
4cf92c7
Stop transpiling some builds to ES5
peaBerberian Apr 30, 2024
1e80e04
Remove generate_test_webpack_config.js
peaBerberian Jun 17, 2024
2b8dcfd
Merge pull request #1435 from canalplus/misc/stop-transpiling-to-es5
peaBerberian Jun 17, 2024
fa98ce4
Actually rely on `connectionTimeout` on DASH low-latency contents
peaBerberian Jun 18, 2024
2491ba7
use 'for of' instead of 'for' for readability
Florent-Bouisset Jun 18, 2024
492b02f
Merge pull request #1465 from canalplus/refactor/use-for-of-insteadof…
peaBerberian Jun 19, 2024
f2ee89d
Merge pull request #1463 from canalplus/fix/low-latency-connection-ti…
peaBerberian Jun 19, 2024
bcf8c91
fix types and lint on demo
Florent-Bouisset Jun 18, 2024
6c3c819
Merge pull request #1462 from canalplus/fix/types-and-lint-on-demo
peaBerberian Jun 20, 2024
d43c6df
Add more logs for requests
peaBerberian Jun 20, 2024
38364da
Fix some of sonarcloud issues
peaBerberian Jun 13, 2024
0d396ae
Audit dependencies
peaBerberian Jun 13, 2024
0b753b8
Remove the need for the express dependency
peaBerberian Jun 17, 2024
74dc3e2
Fix bundling scripts by adding output options
peaBerberian Jun 17, 2024
c170d48
fix(isobmff): exclude zero-filled keyId from the init segment parsing
Jun 20, 2024
1ee4799
fix(isobmff): fix zero-filled keyId predicate
Jun 20, 2024
d80465a
fix(isobmff): minor code style change
Jun 21, 2024
a9c6b54
Merge pull request #1466 from el-gringo/fix/drm-isobmff-zero-keyid
peaBerberian Jun 24, 2024
3d990e7
fix: on chrome display correctly the error message in the console wh…
Florent-Bouisset Jun 28, 2024
aec9101
add error code to error msg in integration test
Florent-Bouisset Jun 28, 2024
946f3f0
remove redundent set the error message, already performed by the erro…
Florent-Bouisset Jun 28, 2024
b27d3b8
Merge pull request #1474 from canalplus/fix/chrome-display-correctly-…
peaBerberian Jun 28, 2024
0ae9539
Set version in CHANGELOG.md
peaBerberian Jun 13, 2024
538c8d0
Update version to v4.1.0
peaBerberian Jun 13, 2024
30d301c
Remove now unneeded dependencies (webpack, babel, terser)
peaBerberian Jun 24, 2024
b572dbc
Add last minute features to CHANGELOG.md
peaBerberian Jun 24, 2024
3bc00cd
Add comment to `ObservationPosition`
peaBerberian Jul 2, 2024
9f2bab0
Remove conflict from release markdown
peaBerberian Jul 8, 2024
b6bb30d
Add date to CHANGELOG
peaBerberian Jul 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
381 changes: 135 additions & 246 deletions .eslintrc.js

Large diffs are not rendered by default.

118 changes: 82 additions & 36 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,70 +5,116 @@ name: RxPlayer Tests

on:
push:
branches: [ stable, dev, legacy-v3 ]
branches: [stable, dev, legacy-v3]
pull_request:
types: [opened, synchronize, reopened]

jobs:
typechecking_and_linting:
format_check:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
- uses: actions-rs/toolchain@v1
with:
toolchain: stable

- run: npm install
- run: rustup target add wasm32-unknown-unknown
- run: npm run fmt:prettier:check
- run: npm run fmt:rust:check

typechecking_and_linting:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [16.x]
node-version: [20.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm install
- run: npm run check
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
- run: npm install
- run: npm run check

unit_tests:

runs-on: ubuntu-latest

strategy:
matrix:
node-version: [16.x]
node-version: [20.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm install
- run: npm run test:unit
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
- run: npm install
- run: npm run test:unit

integration_linux:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
# needed for integration & memory tests codecs support
- run:
sudo add-apt-repository multiverse && sudo apt update && sudo apt install -y
ubuntu-restricted-extras
- run: npm install
- run: npm run build
# Firefox seems to have issue with integration tests on GitHub actions only
# TODO to check
- run: npm run test:integration

memory_linux:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [16.x]
node-version: [20.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
# needed for integration & memory tests codecs support
- run: sudo add-apt-repository multiverse && sudo apt update && sudo apt install -y ubuntu-restricted-extras
- run: npm install
- run: npm run build
# Firefox seems to have issue with integration tests on GitHub actions only
# TODO to check
- run: node tests/integration/run.mjs --bchromehl
- run: npm run test:memory
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
# needed for integration & memory tests codecs support
- run:
sudo add-apt-repository multiverse && sudo apt update && sudo apt install -y
ubuntu-restricted-extras
- run: npm install
# Firefox seems to have issue with integration tests on GitHub actions only
# TODO to check
- run: npm run test:memory
36 changes: 19 additions & 17 deletions .github/workflows/perfs.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
name: Performance tests
on:
pull_request:
types: [ labeled ]
types: [labeled]

jobs:
perf-tests:
if: ${{ github.event.label.name == 'Performance checks' }}
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
# needed for integration & memory tests codecs support
- run: sudo add-apt-repository multiverse && sudo apt update && sudo apt install -y ubuntu-restricted-extras
- run: npm install
- run: export DISPLAY=:99
- run: sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & # optional
- run: node tests/performance/run.mjs
perf-tests:
if: ${{ github.event.label.name == 'Performance checks' }}
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
# needed for integration & memory tests codecs support
- run:
sudo add-apt-repository multiverse && sudo apt update && sudo apt install -y
ubuntu-restricted-extras
- run: npm install
- run: export DISPLAY=:99
- run: sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & # optional
- run: node tests/performance/run.mjs
4 changes: 2 additions & 2 deletions .github/workflows/sonarcloud_analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ jobs:
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
11 changes: 0 additions & 11 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,22 +1,11 @@
/tmp
/*.keys
/*.log
/.scannerwork
/localhost.crt
/localhost.key
/node_modules
/test-output.xml

/demo/full/bundle.js
/demo/full/worker.js
/demo/full/lib.js
/demo/full/bundle.js.LICENSE.txt
/demo/full/lib.js.LICENSE.txt
/demo/standalone/lib.js
/demo/bundle.js

/tests/integration/coverage
/coverage

/tests/performance/node_modules
/tests/performance/bundle1.js
Expand Down
13 changes: 3 additions & 10 deletions .npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,18 @@
/sonar-project.properties
/localhost.crt
/localhost.key
/.travis.yml
/node_modules
/test-output.xml
/tslint.json
/webpack-demo.config.js
/webpack-tests.config.js
/webpack.config.js
/webpack-demo.config.mjs

/demo

/tests
/coverage

/dist/_esm5.raw

/doc
/src
/.github
/scripts
# rust build artifacts
/src/parsers/manifest/dash/wasm-parser/target

/FILES.md
/CONTRIBUTING.md
Expand Down
4 changes: 4 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"printWidth": 90,
"proseWrap": "always"
}
Loading