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

release/v3.24.0 #930

Merged
merged 84 commits into from
Apr 1, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
e28d49c
parsers: parse emsg boxes
grenault73 Feb 4, 2021
d7cf90e
api: emit event messages through an event
grenault73 Feb 11, 2021
34f8267
stream: support emsg manifest updates
grenault73 Feb 11, 2021
c8d6912
utils: renamed readNullTerminatedString into readTerminatedString
grenault73 Feb 12, 2021
f57ac4b
misc: renamed eventmessage into inbandevent
grenault73 Feb 12, 2021
a42830f
parsers: parse and exploit InbandEventStreams
grenault73 Feb 18, 2021
09b189c
tests: add _isInbandEventAllowed in fake reps
grenault73 Feb 18, 2021
62be204
parsers: simpler inbandeventstream combining
grenault73 Feb 18, 2021
399da94
parsers: add isInbandEventWhitelisted on segments
grenault73 Feb 19, 2021
5ec7cb3
tests: update tests
grenault73 Feb 19, 2021
67034dc
core: better support for manifest update through EMSG
grenault73 Feb 24, 2021
36fdec0
stream: consider several emsg manifest validity events
grenault73 Feb 25, 2021
d949a19
parsers: simpler getEMSG
grenault73 Feb 25, 2021
651ab99
parsers: create DASH privateInfos in getSegmentsFromTimeline
grenault73 Feb 25, 2021
fdf4d00
parsers: create DASH privateInfos in getInitSegment
grenault73 Feb 26, 2021
7a7af21
misc: handle emgs in segment parser
grenault73 Mar 2, 2021
f1c3f7a
transports: isolate into own function inband event generation for DASH
grenault73 Mar 3, 2021
0a41495
parsers: DASH base - add isEMSG... in init segment function
grenault73 Mar 9, 2021
a46fb9b
manifest: update publishTime when updating manifest
grenault73 Mar 9, 2021
1b08d13
stream: update manifest right after having received manifest validity…
grenault73 Mar 9, 2021
92f73aa
various fixes
grenault73 Mar 10, 2021
3541113
transports: manifest refresh event is know needsManifestRefresh
grenault73 Mar 16, 2021
dadf6a5
api: added event 'inbandEvents'
grenault73 Mar 16, 2021
b75365c
transports: import string parsing from utils
grenault73 Mar 22, 2021
8ec5098
parsers: break when no more emsgs instead of returning
grenault73 Mar 22, 2021
f56a308
stream: fixed no needsmanifestrefresh when no inband events
grenault73 Mar 23, 2021
252ef52
parsers: update isobmff utils jsdoc
grenault73 Mar 23, 2021
d0c1f73
doc: add inbandEvents doc
grenault73 Mar 23, 2021
0d58507
parsers: EMSG contains standard schemeIdUri
grenault73 Mar 25, 2021
6891c20
doc: add EMSG specific documentation
grenault73 Mar 25, 2021
c5c83c3
doc: minor fixes
grenault73 Mar 29, 2021
2dab388
Merge pull request #892 from canalplus/feat/emsg3
peaBerberian Mar 29, 2021
58306cc
Single license per content implementation
peaBerberian Feb 17, 2021
c11d349
eme: in singleLicensePerContent mode do not another request for key-i…
peaBerberian Feb 18, 2021
31b1307
EME: rename LoadedSessionsStore.moveOnTop to LoadedSessionsStore.reuse
peaBerberian Feb 18, 2021
6fa2c8a
eme: update outdated JSDoc in loaded_sessions_store.ts
peaBerberian Feb 18, 2021
3049c57
eme: add forgotten space in log in eme_manager.ts
peaBerberian Feb 24, 2021
7253e2e
eme: rename variable and add isEmpty method to improve readability
peaBerberian Mar 5, 2021
b3a2af2
eme: fix global eme tests by sending key updates after the update
peaBerberian Mar 12, 2021
640b89b
eme: only persist MediaKeySessions once its keys are known
peaBerberian Mar 19, 2021
d74bd61
tests: raise-up delay for a key update to work-around subtle test rac…
peaBerberian Mar 23, 2021
f9bff83
Merge pull request #926 from canalplus/misc/add-persistent-after-key-…
peaBerberian Mar 25, 2021
eb6f07e
eme: check that all keyIds for the current encrypted event are handle…
peaBerberian Mar 29, 2021
5a653e6
Mark decipherable Representation as decipherable even if they were un…
peaBerberian Feb 18, 2021
6a7e324
doc/eme: update JSDoc in EME-related code
peaBerberian Mar 30, 2021
55b1419
Fix Period.getPlayableAdaptations
peaBerberian Mar 23, 2021
24aafda
Merge pull request #904 from canalplus/feat/singleLicensePer
peaBerberian Mar 30, 2021
8340cca
Merge pull request #905 from canalplus/misc/decipherable-representations
peaBerberian Mar 30, 2021
efa7a44
update rxjs, typescript, and other dependencies
peaBerberian Mar 25, 2021
8d87a9d
add generated doc to .gitignore
peaBerberian Mar 25, 2021
cc4aaf4
doc: rename `loadVideo method` quick link to `loadVideo options`
peaBerberian Mar 25, 2021
fd2b8a6
tests: use new karma syntax for starting the test server
peaBerberian Mar 25, 2021
29ac7c8
add v3.24.0 to CHANGELOG.md
peaBerberian Mar 24, 2021
0fd5d65
update version to v3.24.0
peaBerberian Mar 30, 2021
c15ef2f
Revert "rename tryBeginningPlayback into emitLoadedEventWhenReady"
peaBerberian Mar 30, 2021
12e9ee2
Revert "stop forcing initial seek as better fix has been found"
peaBerberian Mar 30, 2021
fcacd68
Revert "Refacto initial seek and play logic to support Tizen"
peaBerberian Mar 30, 2021
20aa29b
init/compat: fix remaining errors after reverting what was done by th…
peaBerberian Mar 30, 2021
1e82443
Merge pull request #932 from canalplus/misc/revert-tizen-specific-branch
peaBerberian Mar 31, 2021
58f7e2a
update builds for v3.24.0
peaBerberian Mar 31, 2021
b19a447
demo: update NODE_ENV to development on webpack conf for the demo page
peaBerberian Mar 31, 2021
18f6601
build: disable size warning by rising authorized size
peaBerberian Mar 31, 2021
2aed98f
demo: minor updates responding to react warnings
peaBerberian Mar 31, 2021
6f78af7
drm: In a singleLicensePer content mode, blacklist the first kid if n…
peaBerberian Mar 31, 2021
735577c
stream: be more efficient by checking fallback with the type first
peaBerberian Mar 31, 2021
6aa7f81
stream: listen first to decipherabilityUpdate events, in cases where …
peaBerberian Mar 31, 2021
9a15441
Merge pull request #933 from canalplus/fix/blacklist-first-keyid-on-s…
peaBerberian Mar 31, 2021
d536d6b
update builds for v3.24.0
peaBerberian Mar 31, 2021
beb49e0
parsers: skip emsg parsing when version is not 0
grenault73 Mar 31, 2021
6a024c1
update webpack config so builds are usable with IE11
peaBerberian Mar 31, 2021
5a070e9
update builds for v3.24.0
peaBerberian Mar 31, 2021
13eddbe
Merge pull request #934 from canalplus/fix/do-not-handle-emsg-v1
peaBerberian Mar 31, 2021
7a65562
update builds for v3.24.0
peaBerberian Mar 31, 2021
0f6cee2
manifest: Rename Period.getPlayableAdaptations to getSupportedAdaptat…
peaBerberian Apr 1, 2021
7faad3f
Merge pull request #935 from canalplus/fix/playable-adaptations
peaBerberian Apr 1, 2021
c169d95
throw better NO_PLAYABLE_REPRESENTATIONS error message by adding type…
peaBerberian Apr 1, 2021
9cae2a1
update builds for v3.24.0
peaBerberian Apr 1, 2021
7479970
doc: add documentation for the singleLicensePer keySystems option
peaBerberian Apr 1, 2021
85188fd
doc: add documentation for keySystems.licenseStorage.disableRetroComp…
peaBerberian Apr 1, 2021
8b347d5
config: Lower the maximum size of the MediaKeySession cache from 50 t…
peaBerberian Apr 1, 2021
b32c92c
parsers: do not cancel emsg parsing when an emsg whose version is not…
grenault73 Apr 1, 2021
ef2ff8f
Merge pull request #936 from canalplus/fix/no-not-skip-subsequent-ems…
peaBerberian Apr 1, 2021
4f9fd42
better document the inband event structures
peaBerberian Apr 1, 2021
858a8b2
update builds for v3.24.0
peaBerberian Apr 1, 2021
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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
/dist/_esm5.processed
/dist/_esm5.raw

/doc/generated

/features
/logger
/minimal
Expand Down
41 changes: 41 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,46 @@
# Changelog

## v3.24.0 (2021/04/01)

### Features

- Add `inbandEvent` event for when an event is encountered in a media segment [#892]
- DRM: Add `singleLicensePer` `keySystems` option to be able to signal in advance that the current content has a single license, even if it has multiple encryption keys [#863, #904]
- DRM: Add `keySystems[].licenseStorage.disableRetroCompatibility` boolean to unlock optimizations when compatibility with EME sessions persisted in older RxPlayer versions is not important [#919]

### Bug fixes

- DASH: Fix rounding error that could cause infinite buffering issues when going from a DASH Period to the next [#897, #899]
- DRM: Always pass on server certificate before any challenge is generated. Contents with multiple licenses previously could lead to the latter being done before the former. [#895]
- DRM: Fix possible leaks of MediaKeySessions if closed at the wrong time [#920]
- Fix issue making sudden and acute fall in bandwidth not being considered soon enough [#906]
- On some devices when `maxBufferAhead` is set, avoid removing the initially loaded data if done before the initial seek could be performed [#907]
- Avoid cases of infinite rebuffering on Tizen 4 by avoiding pushing segments "on top of others" too close to the current position [#925]
- Avoid seeking issues on Tizen by not seeking over discontinuities that will be already handled by the browser [#922]
- Fix initial seek on Tizen (Samsung TVs) on live contents by setting a much lower duration (to work-around a Tizen overflow) [#914]
- DASH: Consider multiple defined `<Accessibility>` tags for a single AdaptationSet [#903]
- Fix error that could be thrown on Safari when calling the `getStatusForHDCP` method from the experimental `MediaCapabilitiesProber` tool [#927]

### Other improvements

- Avoid to push on top of the current position if there's already a segment there as it can provoke minor decoding issues on some devices [#925]
- Update video element's duration if the content duration changes [#917]
- DASH: Improve loading time with encrypted contents by only using the encrypted initialization data found in the Manifest when found in it [#911, #919]
- Record redirections made on a `manifestUpdateUrl` to request directly the right URL on next update. [#929]
- Improve loading time when a `serverCertificate` is given by calling the `setServerCertificate` API earlier [#895]
- Improve loading time when switching contents by fetching the Manifest at the same time the previous content is cleaned-up [#894]
- Improve loading time on some CPU-constrained devices by not running unnecessary playback checks on the "progress" HTMLMediaElement event anymore [#893]
- DASH: Consider DASH audio AdaptationSet with a "urn:mpeg:dash:role:2011" schemeIdUri and a "description" role as `audioDescription` tracks [#903]
- Warn through the logger when the autoplay attribute is enabled on the media element but not on RxPlayer [#924]
- Avoid switching to a SEEKING state if the seek operation was performed inside the RxPlayer's code [#872, #887]
- DRM: Wait up to 100 milliseconds after a persistent MediaKeySession has been loaded to wait for possibly late `keyStatuses` updates [#928]
- DRM: Only store persistent MediaKeySession once at least one key is known [#926]
- DRM: Reconsider Representations that have been fallbacked from if they become decipherable [#905]
- DRM: Lower the maximum size of the MediaKeySession cache from 50 to 15 to improve compatibility, even more now that license with multiple keys are properly handled
- Doc: Move architecture documentation closer to the code it documents [#764, #900]
- Doc: add "Quick links" to the top of the API documentation [#909]


## v3.23.1 (2021/02/01)

### Bug fixes
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.23.1
3.24.0
14 changes: 8 additions & 6 deletions demo/full/scripts/controllers/ContentList.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -598,12 +598,14 @@ class ContentList extends React.Component {

const generateDRMButtons = () => {
return DRM_TYPES.map(type =>
<Button
className={"choice-input-button drm-button" +
(chosenDRMType === type ? " selected" : "")}
onClick={() => onDRMTypeClick(type)}
value={type}
/>);
<span key={type}>
<Button
className={"choice-input-button drm-button" +
(chosenDRMType === type ? " selected" : "")}
onClick={() => onDRMTypeClick(type)}
value={type}
/>
</span>);
};

const onClickGenerateLink = () => {
Expand Down
2 changes: 1 addition & 1 deletion demo/full/scripts/controllers/Main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import Player from "./Player.jsx";
function MainComponent() {
return (
<div>
<div class="nav-header">
<div className="nav-header">
<section className="title-wrapper">
<h1 className="title">
<a href="https://github.com/canalplus/rx-player">
Expand Down
8 changes: 4 additions & 4 deletions demo/full/scripts/controllers/charts/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,15 @@ class ChartsManager extends React.Component {
<div className="player-box">
<div className="chart-checkbox" >
Buffer content chart
<label class="switch">
<label className="switch">
<input
name="displayBufferContentChart"
type="checkbox"
aria-label="Display/Hide chart about the buffer's content"
checked={this.state.displayBufferContentChart}
onChange={onBufferContentCheckBoxChange}
/>
<span class="slider round"></span>
<span className="slider round"></span>
</label>
</div>
{ displayBufferContentChart ?
Expand All @@ -70,15 +70,15 @@ class ChartsManager extends React.Component {
<div className="player-box">
<div className="chart-checkbox" >
Buffer size chart
<label class="switch">
<label className="switch">
<input
aria-label="Display/Hide chart about the buffer's size"
name="displayBufferSizeChart"
type="checkbox"
checked={this.state.displayBufferSizeChart}
onChange={onBufferSizeCheckBoxChange}
/>
<span class="slider round"></span>
<span className="slider round"></span>
</label>
</div>
{ displayBufferSizeChart ?
Expand Down
2 changes: 1 addition & 1 deletion demo/full/scripts/lib/withModulesState.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ const withModulesState = (modulesState) => (Comp) => {
});
}

componentWillReceiveProps(nextProps) {
UNSAFE_componentWillReceiveProps(nextProps) {
modulesProps.forEach(moduleProp => {
if (!nextProps[moduleProp]) {
if (modulesSubscriptions[moduleProp]) {
Expand Down
Loading