]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/assets/player/shared/p2p-media-loader/segment-url-builder.ts
Reorganize player files
[github/Chocobozzz/PeerTube.git] / client / src / assets / player / shared / p2p-media-loader / segment-url-builder.ts
diff --git a/client/src/assets/player/shared/p2p-media-loader/segment-url-builder.ts b/client/src/assets/player/shared/p2p-media-loader/segment-url-builder.ts
new file mode 100644 (file)
index 0000000..9d32407
--- /dev/null
@@ -0,0 +1,17 @@
+import { Segment } from '@peertube/p2p-media-loader-core'
+import { RedundancyUrlManager } from './redundancy-url-manager'
+
+function segmentUrlBuilderFactory (redundancyUrlManager: RedundancyUrlManager, useOriginPriority: number) {
+  return function segmentBuilder (segment: Segment) {
+    // Don't use redundancy for high priority segments
+    if (segment.priority <= useOriginPriority) return segment.url
+
+    return redundancyUrlManager.buildUrl(segment.url)
+  }
+}
+
+// ---------------------------------------------------------------------------
+
+export {
+  segmentUrlBuilderFactory
+}