From 0067a77d23c8d4afa2649b62b5251665e35b8b3d Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 14 Oct 2021 16:20:36 +0200 Subject: [PATCH] Improve playback with bad redundancies --- client/package.json | 4 ++-- .../p2p-media-loader/segment-url-builder.ts | 5 ++++- .../assets/player/peertube-player-manager.ts | 2 +- client/yarn.lock | 17 ++++++++--------- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/client/package.json b/client/package.json index ac85366c3..ede26a3f7 100644 --- a/client/package.json +++ b/client/package.json @@ -55,8 +55,8 @@ "@ngx-loading-bar/core": "^5.0.0", "@ngx-loading-bar/http-client": "^5.0.0", "@ngx-loading-bar/router": "^5.0.0", - "@peertube/p2p-media-loader-core": "^1.0.2", - "@peertube/p2p-media-loader-hlsjs": "^1.0.4", + "@peertube/p2p-media-loader-core": "^1.0.4", + "@peertube/p2p-media-loader-hlsjs": "^1.0.6", "@types/chart.js": "^2.9.16", "@types/core-js": "^2.5.2", "@types/debug": "^4.1.5", diff --git a/client/src/assets/player/p2p-media-loader/segment-url-builder.ts b/client/src/assets/player/p2p-media-loader/segment-url-builder.ts index ad0e460ae..5ddc81ff6 100644 --- a/client/src/assets/player/p2p-media-loader/segment-url-builder.ts +++ b/client/src/assets/player/p2p-media-loader/segment-url-builder.ts @@ -1,8 +1,11 @@ import { Segment } from '@peertube/p2p-media-loader-core' import { RedundancyUrlManager } from './redundancy-url-manager' -function segmentUrlBuilderFactory (redundancyUrlManager: RedundancyUrlManager) { +function segmentUrlBuilderFactory (redundancyUrlManager: RedundancyUrlManager, requiredSegmentsPriority: number) { return function segmentBuilder (segment: Segment) { + // Don't use redundancy for high priority segments + if (segment.priority <= requiredSegmentsPriority) return segment.url + return redundancyUrlManager.buildUrl(segment.url) } } diff --git a/client/src/assets/player/peertube-player-manager.ts b/client/src/assets/player/peertube-player-manager.ts index 230d6298b..73b5bc01c 100644 --- a/client/src/assets/player/peertube-player-manager.ts +++ b/client/src/assets/player/peertube-player-manager.ts @@ -374,7 +374,7 @@ export class PeertubePlayerManager { rtcConfig: getRtcConfig(), requiredSegmentsPriority: 1, simultaneousHttpDownloads: 1, - segmentUrlBuilder: segmentUrlBuilderFactory(redundancyUrlManager), + segmentUrlBuilder: segmentUrlBuilderFactory(redundancyUrlManager, 1), useP2P: getStoredP2PEnabled(), consumeOnly }, diff --git a/client/yarn.lock b/client/yarn.lock index 44ec1bfe6..20941258e 100644 --- a/client/yarn.lock +++ b/client/yarn.lock @@ -1701,10 +1701,10 @@ tslib "^2.0.0" yargs-parser "20.0.0" -"@peertube/p2p-media-loader-core@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@peertube/p2p-media-loader-core/-/p2p-media-loader-core-1.0.2.tgz#ef36a23df5a5393cc5d180a45dfb70d2c3ecff87" - integrity sha512-2F6Cx2ncXe+ySaaGiAWf7jJ8snJpyd7WNCxYbJ5Zadst1mNSQlxUqH4/qEl/bai4DiuzzhudlzXS8U3SX9c9Jw== +"@peertube/p2p-media-loader-core@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@peertube/p2p-media-loader-core/-/p2p-media-loader-core-1.0.4.tgz#61ef559e57b582c334790f0dc0230ee038703614" + integrity sha512-JuWMTMTkyQRUf3VbGElQ6VlbKCiFUu5ioMEPNwYx75rE+BPnIXQf6jMUyAEpPoHhGSlcef546Z3mxcDHKJtZ6g== dependencies: bittorrent-tracker "^9.16.1" debug "^4.3.1" @@ -1712,12 +1712,11 @@ sha.js "^2.4.11" simple-peer "^9.10.0" -"@peertube/p2p-media-loader-hlsjs@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@peertube/p2p-media-loader-hlsjs/-/p2p-media-loader-hlsjs-1.0.4.tgz#849809067886e41bf2ba7e71a2da33478863bc66" - integrity sha512-FFFlYPFwTGxB3CPChqlzPqJw65ajIjCCxCn4IQRNuagYpo0fdaxrgepMHNPW3Zl5DmvEppv+ohUfYyr98U1wiw== +"@peertube/p2p-media-loader-hlsjs@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@peertube/p2p-media-loader-hlsjs/-/p2p-media-loader-hlsjs-1.0.6.tgz#d7f6ee786d756e20953428322bdffec80691b78e" + integrity sha512-nCV+mgpLL+XVJg5zv5m0oiVxsS/V/+NfJ0HtmVEXSU0EP5S32zPGMQpSWRNwGT6o+VZnyvKOtiqZDIK1vpabyA== dependencies: - "@peertube/p2p-media-loader-core" "^1.0.2" events "^3.3.0" m3u8-parser "^4.6.0"