Skip to content

Commit

Permalink
Merge branch 'release/v3.10.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
peaBerberian committed Jan 3, 2019
2 parents c70f932 + 8414682 commit ec0e29a
Show file tree
Hide file tree
Showing 375 changed files with 27,709 additions and 20,430 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,6 @@

/localhost.key
/localhost.crt

/tests/integration/coverage
/tests/unit/coverage
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Changelog

## v3.10.1 (2019/01/03)

### Bug fixes

- abr: always consider the last quality estimation
- drm: work-arround Edge bug where the browser does not accept a valid CENC PSSH (DRM-related information in an ISOBMFF)
- dash: handle `S` nodes (segments) with an @r attribute at `-1` in an MPD
- dash: handle `SegmentTimeline` which have as a first `S` node (segment) an undefined @t attribute in an MPD
- dash: Representation.index.getLastPosition() for SegmentBase-based DASH Representations now returns the end of the last segment (it returned the start of the last segment before)
- dash/smooth: throw better error (`MANIFEST_PARSE_ERROR`) if none of the audio or video tracks of a content can be played (e.g. none have supported codecs)

### Other improvements

- manifest: better infer the minimum time of a Manifest
- code: refresh code architecture (rename and move modules, remove some dependencies...)
- tests: add coverage reports for both unit and "integration" tests, to check where tests are lacking and better pin down our hot-spots
- tests: add appveyor countinous integration service for unit tests


## v3.10.0 (2018/12/11)

### Features
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -187,11 +187,11 @@ We found that we could profit a lot more from adding a reactive-programming
approach, with most notably the help of [the RxJS
library](https://github.com/ReactiveX/rxjs).

RxJS provides gracious interfaces and operators to compose asynchronous tasks
together by representating changing states as observable stream of values.
RxJS provides interfaces and operators to compose asynchronous tasks together
by representating changing states as observable stream of values.
It also comes with a **cancelation** contract so that every asynchronous
side-effect can be properly disposed when discarded by the system.
This change of paradigm answers gracefully to most of our needs.
This change of paradigm answers to most of our needs.

Moreover, writing the RxPlayer in TypeScript instead of plain JavaScript gives
us more tools and confidence in our codebase.
Expand All @@ -217,5 +217,5 @@ Here is a basic list of supported platforms:
[2] Android version >= 4.2

And more. A good way to know if the browser should be supported by our player is
to go on the page https://www.youtube.com/html5 and check support for MSE and
H.264.
to go on the page https://www.youtube.com/html5 and check support for MSE
support.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.10.0
3.10.1
24 changes: 24 additions & 0 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Test against the latest version of this Node.js version
environment:
nodejs_version: "8"

branches:
only:
- master
- /^release\/.*$/

# Install scripts. (runs after repo cloning)
install:
- choco install firefox
- choco install googlechrome
- ps: Install-Product node $env:nodejs_version
- npm install

# Post-install test scripts.
test_script:
- node --version
- npm --version
- npm run check:appveyor

# Don't actually build.
build: off
1 change: 0 additions & 1 deletion demo/full/scripts/controllers/ContentList.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ const HAS_EME_APIs = (
typeof HTMLVideoElement.prototype.webkitGenerateKeyRequest === "function"
);


const IS_HTTPS = window.location.protocol.startsWith("https");
const TRANSPORT_TYPES = ["DASH", "Smooth", "DirectFile"];
const DRM_TYPES = ["Widevine", "Playready", "Clearkey"];
Expand Down
6 changes: 3 additions & 3 deletions demo/full/scripts/controllers/ProgressBar.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ class Progressbar extends React.Component {
}

showTimeIndicator(wallClockTime, clientX, isLive) {
let hours,
minutes,
seconds;
let hours;
let minutes;
let seconds;
if (isLive) {
const date = new Date(wallClockTime * 1000);
hours = date.getHours();
Expand Down
21 changes: 21 additions & 0 deletions demo/full/scripts/lib/bytes.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,22 @@
/**
* construct string from the code units given
* @param {Uint16Array|Uint8Array} bytes
* @returns {string}
*/
export function bytesToStr(bytes) {
return String.fromCharCode.apply(null, bytes);
}

/**
* Convert a simple string to an Uint8Array containing the corresponding
* UTF-8 code units.
* /!\ its implementation favors simplicity and performance over accuracy.
* Each character having a code unit higher than 255 in UTF-16 will be
* truncated (real value % 256).
* Please take that into consideration when calling this function.
* @param {string} str
* @returns {Uint8Array}
*/
export function strToBytes(str) {
const len = str.length;
const arr = new Uint8Array(len);
Expand All @@ -11,6 +26,12 @@ export function strToBytes(str) {
return arr;
}

/**
* construct string from the code units given.
* Only use every other byte for each UTF-16 character.
* @param {Uint8Array} bytes
* @returns {string}
*/
export function bytesToUTF16Str(bytes) {
let str = "";
const len = bytes.length;
Expand Down
4 changes: 2 additions & 2 deletions demo/full/scripts/lib/parseDRMConfigurations.js
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ function generateGetLicense(licenseServerUrl, drmType) {
}
};
if (isPlayready) {
xhr.setRequestHeader("content-type", "text/xml; charset=utf-8")
xhr.setRequestHeader("content-type", "text/xml; charset=utf-8");
} else {
xhr.responseType = "arraybuffer";
}
Expand All @@ -84,4 +84,4 @@ function generateGetLicense(licenseServerUrl, drmType) {
isPlayready && typeof license === "string" ? strToBytes(license) : license
);
};
}
}
Loading

0 comments on commit ec0e29a

Please sign in to comment.