commit ed8f026d576a27ef7bb9fcf3d3c44fa0ec0e1a23
parent ee6d25cccd3d7493044f8271710f12159643d649
Author: Marcel <marcel@radzio-sh.de>
Date: Mon, 25 Sep 2017 16:13:34 +0200
CasualCommit
Diffstat:
7 files changed, 271 insertions(+), 24 deletions(-)
diff --git a/package.json b/package.json
@@ -19,6 +19,7 @@
"classnames": "^2.2.5",
"cookie-parser": "^1.4.3",
"core-js": "^2.4.1",
+ "css-loader": "^0.26.4",
"express": "^4.14.1",
"express-graphql": "^0.6.3",
"express-jwt": "^5.1.0",
@@ -38,7 +39,11 @@
"sequelize": "^3.30.1",
"source-map-support": "^0.4.11",
"sqlite3": "^3.1.8",
+ "style-loader": "^0.16.1",
"universal-router": "^2.0.0",
+ "videojs-chromecast": "^2.0.8",
+ "videojs-contrib-hls": "^5.4.0",
+ "videojs-qualityselector": "^0.0.1",
"whatwg-fetch": "^2.0.2"
},
"devDependencies": {
diff --git a/src/components/Html.js b/src/components/Html.js
@@ -8,6 +8,10 @@
*/
import React, { PropTypes } from 'react';
+import videojsQualityselector from 'videojs-qualityselector/dist/videojs-qualityselector.js';
+import videojsQualityselectorCss from 'videojs-qualityselector/dist/videojs-qualityselector.css';
+import videojs from 'video.js/dist/video.min.js';
+import videojsCss from 'video.js/dist/video-js.min.css';
import { analytics } from '../config';
class Html extends React.Component {
@@ -38,6 +42,11 @@ class Html extends React.Component {
<meta name="description" content={description} />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
+ <script src="//cdn.sc.gl/videojs-hotkeys/latest/videojs.hotkeys.min.js" />
+ <script src={videojsQualityselector} />
+ <script src={videojs} />
+ <link href={videojsCss} rel="stylesheet" />
+ <link href={videojsQualityselectorCss} rel="stylesheet" />
{styles.map(style =>
<style
key={style.id}
diff --git a/src/components/VideoJs/VideoJs.js b/src/components/VideoJs/VideoJs.js
@@ -0,0 +1,59 @@
+import React from 'react';
+import videojsHls from 'videojs-contrib-hls';
+
+export default class VideoPlayer extends React.Component {
+ componentDidMount() {
+ // instantiate video.js
+ this.player = videojs(this.videoNode, this.props, () => {
+ console.log('ready');
+ });
+ this.player.qualityselector({
+ sources: [
+ { format: 'highres', src: 'http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4', type: 'video/mp4' },
+ { format: 'hd1080', src: 'http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4', type: 'video/mp4' },
+ { format: 'hd720', src: 'http://www.sample-videos.com/video/mp4/480/big_buck_bunny_480p_1mb.mp4', type: 'video/mp4' },
+ { format: 'large', src: '//vjs.zencdn.net/v/oceans.mp4', type: 'video/mp4' },
+ { format: 'medium', src: 'http://www.sample-videos.com/video/mp4/480/big_buck_bunny_480p_1mb.mp4', type: 'video/mp4' },
+ { format: 'small', src: 'http://www.sample-videos.com/video/mp4/480/big_buck_bunny_480p_1mb.mp4', type: 'video/mp4' },
+ { format: 'auto', src: 'http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4', type: 'video/mp4' },
+ ],
+ formats: [
+ { code: 'highres', name: 'High' },
+ { code: 'hd1080', name: '1080p' },
+ { code: 'hd720', name: '720p' },
+ { code: 'large', name: '480p' },
+ { code: 'medium', name: '360p' },
+ { code: 'small', name: '240p' },
+ { code: 'auto', name: 'Auto' },
+ ],
+
+ onFormatSelected: (format) => {
+ console.log(format);
+ },
+ });
+ this.player.ready(() => {
+ this.hotkeys({
+ volumeStep: 0.1,
+ seekStep: 5,
+ });
+ });
+ }
+
+ // destroy player on unmount
+ componentWillUnmount() {
+ if (this.player) {
+ this.player.dispose();
+ }
+ }
+
+ // wrap the player in a div with a `data-vjs-player` attribute
+ // so videojs won't create additional wrapper in the DOM
+ // see https://github.com/videojs/video.js/pull/3856
+ render() {
+ return (
+ <div data-vjs-player>
+ <video ref={node => this.videoNode = node} className="video-js vjs-default-skin" controls />
+ </div>
+ );
+ }
+}
diff --git a/src/routes/home/Home.js b/src/routes/home/Home.js
@@ -10,6 +10,7 @@
import React, { PropTypes } from 'react';
import withStyles from 'isomorphic-style-loader/lib/withStyles';
import s from './Home.css';
+import VideoPlayer from '../../components/VideoJs/VideoJs';
class Home extends React.Component {
static propTypes = {
@@ -21,20 +22,24 @@ class Home extends React.Component {
};
render() {
+ const videoJsOptions = {
+ autoplay: false,
+ controls: true,
+ sources: [{
+ src: 'http://vjs.zencdn.net/v/oceans.mp4',
+ type: 'video/mp4',
+ },
+ {
+ src: 'https://d2zihajmogu5jn.cloudfront.net/bipbop-advanced/bipbop_16x9_variant.m3u8',
+ type: 'application/x-mpegURL',
+ },
+ ],
+ };
return (
<div className={s.root}>
<div className={s.container}>
- <h1>React.js News</h1>
- {this.props.news.map(item => (
- <article key={item.link} className={s.newsItem}>
- <h1 className={s.newsTitle}><a href={item.link}>{item.title}</a></h1>
- <div
- className={s.newsDesc}
- // eslint-disable-next-line react/no-danger
- dangerouslySetInnerHTML={{ __html: item.content }}
- />
- </article>
- ))}
+ <h1>Live Streams</h1>
+ <VideoPlayer {...videoJsOptions} />
</div>
</div>
);
diff --git a/src/routes/home/index.js b/src/routes/home/index.js
@@ -31,7 +31,7 @@ export default {
const { data } = await resp.json();
if (!data || !data.news) throw new Error('Failed to load the news feed.');
return {
- title: 'React Starter Kit',
+ title: 'Freifunk Streaming',
component: <Layout><Home news={data.news} /></Layout>,
};
},
diff --git a/src/routes/index.js b/src/routes/index.js
@@ -33,7 +33,7 @@ export default {
const route = await next();
// Provide default values for title, description etc.
- route.title = `${route.title || 'Untitled Page'} - www.reactstarterkit.com`;
+ route.title = `${route.title || 'Untitled Page'}`;
route.description = route.description || '';
return route;
diff --git a/yarn.lock b/yarn.lock
@@ -54,6 +54,12 @@ acorn@^4.0.4:
version "4.0.10"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.10.tgz#598ed8bdd4de8b5a7a7fa2f6d2188ebbf9b1f12c"
+aes-decrypter@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/aes-decrypter/-/aes-decrypter-1.0.3.tgz#9c06b8a5435a5ad09db933f8a014afcf184cc34e"
+ dependencies:
+ pkcs7 "^0.2.3"
+
after@0.8.1:
version "0.8.1"
resolved "https://registry.yarnpkg.com/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627"
@@ -942,7 +948,7 @@ babel-register@^6.22.0:
mkdirp "^0.5.1"
source-map-support "^0.4.2"
-babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.22.0:
+babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.9.2:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.22.0.tgz#1cf8b4ac67c77a4ddb0db2ae1f74de52ac4ca611"
dependencies:
@@ -1766,14 +1772,14 @@ css-color-names@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
-css-loader@^0.26.1:
- version "0.26.1"
- resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.26.1.tgz#2ba7f20131b93597496b3e9bb500785a49cd29ea"
+css-loader@^0.26.4:
+ version "0.26.4"
+ resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.26.4.tgz#b61e9e30db94303e6ffc892f10ecd09ad025a1fd"
dependencies:
babel-code-frame "^6.11.0"
css-selector-tokenizer "^0.7.0"
cssnano ">=2.6.1 <4"
- loader-utils "~0.2.2"
+ loader-utils "^1.0.2"
lodash.camelcase "^4.3.0"
object-assign "^4.0.1"
postcss "^5.0.6"
@@ -1781,7 +1787,7 @@ css-loader@^0.26.1:
postcss-modules-local-by-default "^1.0.1"
postcss-modules-scope "^1.0.0"
postcss-modules-values "^1.1.0"
- source-list-map "^0.1.4"
+ source-list-map "^0.1.7"
css-rule-stream@^1.1.0:
version "1.1.0"
@@ -2321,6 +2327,10 @@ es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.
es6-iterator "2"
es6-symbol "~3.1"
+es5-shim@^4.5.1:
+ version "4.5.9"
+ resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.5.9.tgz#2a1e2b9e583ff5fed0c20a3ee2cbf3f75230a5c0"
+
es6-iterator@2:
version "2.0.0"
resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac"
@@ -2784,6 +2794,12 @@ fobject@0.0.3:
semver "^4.1.0"
when "^3.0.1"
+for-each@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4"
+ dependencies:
+ is-function "~1.0.0"
+
for-in@^0.1.5:
version "0.1.6"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8"
@@ -2975,7 +2991,14 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1:
once "^1.3.0"
path-is-absolute "^1.0.0"
-global@^4.3.0:
+global@4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/global/-/global-4.3.0.tgz#ef7ec4beead579b454f5ebd5e7f303db54f42a2b"
+ dependencies:
+ min-document "^2.6.1"
+ process "~0.5.1"
+
+global@^4.3.0, global@~4.3.0:
version "4.3.1"
resolved "https://registry.yarnpkg.com/global/-/global-4.3.1.tgz#5f757908c7cbabce54f386ae440e11e26b7916df"
dependencies:
@@ -3237,6 +3260,10 @@ indexof@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
+individual@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/individual/-/individual-2.0.0.tgz#833b097dad23294e76117a98fb38e0d9ad61bb97"
+
inflection@^1.6.0:
version "1.12.0"
resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416"
@@ -3366,6 +3393,10 @@ is-fullwidth-code-point@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+is-function@^1.0.1, is-function@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5"
+
is-glob@^2.0.0, is-glob@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
@@ -3797,7 +3828,7 @@ loader-runner@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2"
-loader-utils@0.2.x, loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.2.7, loader-utils@~0.2.2, loader-utils@~0.2.5:
+loader-utils@0.2.x, loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.2.7, loader-utils@~0.2.5:
version "0.2.16"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d"
dependencies:
@@ -3806,6 +3837,14 @@ loader-utils@0.2.x, loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.
json5 "^0.5.0"
object-assign "^4.0.1"
+loader-utils@^1.0.2:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
+ dependencies:
+ big.js "^3.1.3"
+ emojis-list "^2.0.0"
+ json5 "^0.5.0"
+
localtunnel@1.8.2:
version "1.8.2"
resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-1.8.2.tgz#913051e8328b51f75ad8a22ad1f5c5b8c599a359"
@@ -4087,6 +4126,10 @@ lru-cache@~2.0.0:
version "2.0.4"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.0.4.tgz#b8b61ae09848385ec6768760e39c123e7e39568a"
+m3u8-parser@2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/m3u8-parser/-/m3u8-parser-2.1.0.tgz#c8170329ec1cd515d0d58bb8b762da9896cb0368"
+
macaddress@^0.2.8:
version "0.2.8"
resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
@@ -4200,7 +4243,7 @@ mime@1.3.4, "mime@>= 0.0.1", mime@^1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
-min-document@^2.19.0:
+min-document@^2.19.0, min-document@^2.6.1:
version "2.19.0"
resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
dependencies:
@@ -4285,6 +4328,10 @@ mute-stream@0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
+mux.js@4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/mux.js/-/mux.js-4.1.1.tgz#8a211f614c974c4afdb5ee6588444626accc5774"
+
nan@^2.3.0, nan@~2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232"
@@ -4477,7 +4524,7 @@ object-path@^0.9.0:
version "0.9.2"
resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz#0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5"
-object.assign@^4.0.4:
+object.assign@^4.0.3, object.assign@^4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc"
dependencies:
@@ -4636,6 +4683,13 @@ parse-glob@^3.0.4:
is-extglob "^1.0.0"
is-glob "^2.0.0"
+parse-headers@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.1.tgz#6ae83a7aa25a9d9b700acc28698cd1f1ed7e9536"
+ dependencies:
+ for-each "^0.3.2"
+ trim "0.0.1"
+
parse-json@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
@@ -4769,6 +4823,10 @@ pixrem@^3.0.2:
postcss "^5.0.0"
reduce-css-calc "^1.2.7"
+pkcs7@^0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/pkcs7/-/pkcs7-0.2.3.tgz#22d60666d01065c5f24439098e4a4830452273be"
+
pkg-dir@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
@@ -5753,6 +5811,12 @@ run-async@^0.1.0:
dependencies:
once "^1.3.0"
+rust-result@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/rust-result/-/rust-result-1.0.0.tgz#34c75b2e6dc39fe5875e5bdec85b5e0f91536f72"
+ dependencies:
+ individual "^2.0.0"
+
rx-lite@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
@@ -5771,6 +5835,12 @@ safe-buffer@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
+safe-json-parse@4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-4.0.0.tgz#7c0f578cfccd12d33a71c0e05413e2eca171eaac"
+ dependencies:
+ rust-result "^1.0.0"
+
samsam@^1.1.3:
version "1.2.1"
resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.2.1.tgz#edd39093a3184370cb859243b2bdf255e7d8ea67"
@@ -6011,7 +6081,7 @@ sort-keys@^1.0.0:
dependencies:
is-plain-obj "^1.0.0"
-source-list-map@^0.1.4, source-list-map@~0.1.7:
+source-list-map@^0.1.7, source-list-map@~0.1.7:
version "0.1.8"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106"
@@ -6200,6 +6270,12 @@ strip-json-comments@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+style-loader@^0.16.1:
+ version "0.16.1"
+ resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.16.1.tgz#50e325258d4e78421dd9680636b41e8661595d10"
+ dependencies:
+ loader-utils "^1.0.2"
+
style-search@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902"
@@ -6453,10 +6529,18 @@ trim-newlines@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
+trim@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd"
+
tryit@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
+tsml@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/tsml/-/tsml-1.0.1.tgz#89f8218b9d9e257f47d7f6b56d01c5a4d2c68fc3"
+
tty-browserify@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
@@ -6567,6 +6651,10 @@ url-loader@^0.5.7:
loader-utils "0.2.x"
mime "1.2.x"
+url-toolkit@1.0.9:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/url-toolkit/-/url-toolkit-1.0.9.tgz#6647c84f931c54e1e61fa3b33e10ad34161ed4d9"
+
url@^0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
@@ -6649,6 +6737,74 @@ verror@1.3.6:
dependencies:
extsprintf "1.0.2"
+video.js@^5.0.0, video.js@^5.17.0, video.js@^5.19.1, video.js@^5.6.0:
+ version "5.19.1"
+ resolved "https://registry.yarnpkg.com/video.js/-/video.js-5.19.1.tgz#5d6407aebd078bf4c4f94183f840a53388c34f25"
+ dependencies:
+ babel-runtime "^6.9.2"
+ global "4.3.0"
+ safe-json-parse "4.0.0"
+ tsml "1.0.1"
+ videojs-font "2.0.0"
+ videojs-ie8 "1.1.2"
+ videojs-swf "5.3.0"
+ videojs-vtt.js "0.12.3"
+ xhr "2.2.2"
+
+videojs-chromecast@^2.0.8:
+ version "2.0.8"
+ resolved "https://registry.yarnpkg.com/videojs-chromecast/-/videojs-chromecast-2.0.8.tgz#55e2911cf5cc427974c1d8e80d4d22124d152ef9"
+ dependencies:
+ global "^4.3.0"
+ object.assign "^4.0.3"
+ video.js "^5.0.0"
+
+videojs-contrib-hls@^5.4.0:
+ version "5.4.0"
+ resolved "https://registry.yarnpkg.com/videojs-contrib-hls/-/videojs-contrib-hls-5.4.0.tgz#a90e2e7b1447693751e935c2e87cd75be31a7029"
+ dependencies:
+ aes-decrypter "1.0.3"
+ global "^4.3.0"
+ m3u8-parser "2.1.0"
+ mux.js "4.1.1"
+ url-toolkit "1.0.9"
+ video.js "^5.19.1"
+ videojs-contrib-media-sources "4.4.2"
+ webworkify "1.0.2"
+
+videojs-contrib-media-sources@4.4.2:
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/videojs-contrib-media-sources/-/videojs-contrib-media-sources-4.4.2.tgz#39c4fdaf278fd61e65d9b25513c9723dc3d2a160"
+ dependencies:
+ global "^4.3.0"
+ mux.js "4.1.1"
+ video.js "^5.17.0"
+ webworkify "1.0.2"
+
+videojs-font@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/videojs-font/-/videojs-font-2.0.0.tgz#af7461ef9d4b95e0334bffb78b2f2ff0364a9034"
+
+videojs-ie8@1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/videojs-ie8/-/videojs-ie8-1.1.2.tgz#a23d3d8608ad7192b69c6077fc4eb848998d35d9"
+ dependencies:
+ es5-shim "^4.5.1"
+
+videojs-qualityselector@^0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/videojs-qualityselector/-/videojs-qualityselector-0.0.1.tgz#c9cc0bf727cd89d6537002d7700afc5822fa5356"
+ dependencies:
+ video.js "^5.6.0"
+
+videojs-swf@5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/videojs-swf/-/videojs-swf-5.3.0.tgz#b79408ab4ad5dd8f6f20e8abfc33150b098aab57"
+
+videojs-vtt.js@0.12.3:
+ version "0.12.3"
+ resolved "https://registry.yarnpkg.com/videojs-vtt.js/-/videojs-vtt.js-0.12.3.tgz#5ec6606844544790a795e8e396e3f2ab3649a2d6"
+
vlq@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.1.tgz#14439d711891e682535467f8587c5630e4222a6c"
@@ -6738,6 +6894,10 @@ webpack@^2.2.1:
webpack-sources "^0.1.4"
yargs "^6.0.0"
+webworkify@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/webworkify/-/webworkify-1.0.2.tgz#b616a95a6225249bf25a91e96e0942c665155995"
+
weinre@^2.0.0-pre-I0Z7U9OV:
version "2.0.0-pre-I0Z7U9OV"
resolved "https://registry.yarnpkg.com/weinre/-/weinre-2.0.0-pre-I0Z7U9OV.tgz#fef8aa223921f7b40bbbbd4c3ed4302f6fd0a813"
@@ -6840,6 +7000,15 @@ wtf-8@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a"
+xhr@2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.2.2.tgz#2ee72571869f8686d41559a9ea286c18971435ff"
+ dependencies:
+ global "~4.3.0"
+ is-function "^1.0.1"
+ parse-headers "^2.0.0"
+ xtend "^4.0.0"
+
xmlhttprequest-ssl@1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d"