]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/assets/player/p2p-media-loader/segment-url-builder.ts
Fast forward on HLS decode error
[github/Chocobozzz/PeerTube.git] / client / src / assets / player / p2p-media-loader / segment-url-builder.ts
index 32e7ce4f2b6e3db81847cd37ae537e9fd67bb998..5ddc81ff6d55528987cc7ad7a086e2381dc5f5f4 100644 (file)
@@ -1,17 +1,12 @@
-import { basename } from 'path'
-import { Segment } from 'p2p-media-loader-core'
+import { Segment } from '@peertube/p2p-media-loader-core'
+import { RedundancyUrlManager } from './redundancy-url-manager'
 
-function segmentUrlBuilderFactory (baseUrls: string[]) {
+function segmentUrlBuilderFactory (redundancyUrlManager: RedundancyUrlManager, requiredSegmentsPriority: number) {
   return function segmentBuilder (segment: Segment) {
-    const max = baseUrls.length + 1
-    const i = getRandomInt(max)
+    // Don't use redundancy for high priority segments
+    if (segment.priority <= requiredSegmentsPriority) return segment.url
 
-    if (i === max - 1) return segment.url
-
-    let newBaseUrl = baseUrls[i]
-    let middlePart = newBaseUrl.endsWith('/') ? '' : '/'
-
-    return newBaseUrl + middlePart + basename(segment.url)
+    return redundancyUrlManager.buildUrl(segment.url)
   }
 }
 
@@ -20,9 +15,3 @@ function segmentUrlBuilderFactory (baseUrls: string[]) {
 export {
   segmentUrlBuilderFactory
 }
-
-// ---------------------------------------------------------------------------
-
-function getRandomInt (max: number) {
-  return Math.floor(Math.random() * Math.floor(max))
-}