aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/assets/player/p2p-media-loader/p2p-media-loader-plugin.ts
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2020-01-31 11:39:50 +0100
committerChocobozzz <me@florianbigard.com>2020-01-31 14:13:00 +0100
commit83fcadac86da0bc6120a5b93850bb9a7fc069fba (patch)
treec05e52c22d27d24c84f00630ad58427cf092ed2c /client/src/assets/player/p2p-media-loader/p2p-media-loader-plugin.ts
parente40afb5bc486ff2ce1e5f0a21df7e4e32c344b47 (diff)
downloadPeerTube-83fcadac86da0bc6120a5b93850bb9a7fc069fba.tar.gz
PeerTube-83fcadac86da0bc6120a5b93850bb9a7fc069fba.tar.zst
PeerTube-83fcadac86da0bc6120a5b93850bb9a7fc069fba.zip
Move streamroot plugin in core project
To avoid an already bundled HLS.js library, and adapt some parts of the code
Diffstat (limited to 'client/src/assets/player/p2p-media-loader/p2p-media-loader-plugin.ts')
-rw-r--r--client/src/assets/player/p2p-media-loader/p2p-media-loader-plugin.ts13
1 files changed, 6 insertions, 7 deletions
diff --git a/client/src/assets/player/p2p-media-loader/p2p-media-loader-plugin.ts b/client/src/assets/player/p2p-media-loader/p2p-media-loader-plugin.ts
index 512054ae6..e86900faa 100644
--- a/client/src/assets/player/p2p-media-loader/p2p-media-loader-plugin.ts
+++ b/client/src/assets/player/p2p-media-loader/p2p-media-loader-plugin.ts
@@ -3,10 +3,11 @@ import { P2PMediaLoaderPluginOptions, PlayerNetworkInfo } from '../peertube-vide
3import { Engine, initHlsJsPlayer, initVideoJsContribHlsJsPlayer } from 'p2p-media-loader-hlsjs' 3import { Engine, initHlsJsPlayer, initVideoJsContribHlsJsPlayer } from 'p2p-media-loader-hlsjs'
4import { Events, Segment } from 'p2p-media-loader-core' 4import { Events, Segment } from 'p2p-media-loader-core'
5import { timeToInt } from '../utils' 5import { timeToInt } from '../utils'
6import { registerConfigPlugin, registerSourceHandler } from './hls-plugin'
7import * as Hlsjs from 'hls.js'
6 8
7// videojs-hlsjs-plugin needs videojs in window 9registerConfigPlugin(videojs)
8window['videojs'] = videojs 10registerSourceHandler(videojs)
9require('@streamroot/videojs-hlsjs-plugin')
10 11
11const Plugin = videojs.getPlugin('plugin') 12const Plugin = videojs.getPlugin('plugin')
12class P2pMediaLoaderPlugin extends Plugin { 13class P2pMediaLoaderPlugin extends Plugin {
@@ -16,7 +17,7 @@ class P2pMediaLoaderPlugin extends Plugin {
16 } 17 }
17 private readonly options: P2PMediaLoaderPluginOptions 18 private readonly options: P2PMediaLoaderPluginOptions
18 19
19 private hlsjs: any // Don't type hlsjs to not bundle the module 20 private hlsjs: Hlsjs
20 private p2pEngine: Engine 21 private p2pEngine: Engine
21 private statsP2PBytes = { 22 private statsP2PBytes = {
22 pendingDownload: [] as number[], 23 pendingDownload: [] as number[],
@@ -88,9 +89,7 @@ class P2pMediaLoaderPlugin extends Plugin {
88 const options = this.player.tech(true).options_ as any 89 const options = this.player.tech(true).options_ as any
89 this.p2pEngine = options.hlsjsConfig.loader.getEngine() 90 this.p2pEngine = options.hlsjsConfig.loader.getEngine()
90 91
91 // Avoid using constants to not import hls.hs 92 this.hlsjs.on(Hlsjs.Events.LEVEL_SWITCHING, (_: any, data: any) => {
92 // https://github.com/video-dev/hls.js/blob/master/src/events.js#L37
93 this.hlsjs.on('hlsLevelSwitching', (_: any, data: any) => {
94 this.trigger('resolutionChange', { auto: this.hlsjs.autoLevelEnabled, resolutionId: data.height }) 93 this.trigger('resolutionChange', { auto: this.hlsjs.autoLevelEnabled, resolutionId: data.height })
95 }) 94 })
96 95