]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Fix embed api
authorChocobozzz <me@florianbigard.com>
Fri, 10 Sep 2021 13:43:15 +0000 (15:43 +0200)
committerChocobozzz <me@florianbigard.com>
Fri, 10 Sep 2021 13:53:33 +0000 (15:53 +0200)
client/src/assets/player/webtorrent/webtorrent-plugin.ts
client/src/standalone/videos/embed-api.ts
client/src/standalone/videos/test-embed.ts
server/tools/peertube.ts

index a464f02d5fde39164f5d8284fc67b78fe5d9bf42..1a1cd7f1a62762c1faec271123361b511332f3cf 100644 (file)
@@ -178,7 +178,7 @@ class WebTorrentPlugin extends Plugin {
     this.selectAppropriateResolution(true)
   }
 
-  updateResolution (resolutionId: number, delay = 0) {
+  updateEngineResolution (resolutionId: number, delay = 0) {
     // Remember player state
     const currentTime = this.player.currentTime()
     const isPaused = this.player.paused()
@@ -236,6 +236,22 @@ class WebTorrentPlugin extends Plugin {
     return this.currentVideoFile
   }
 
+  changeQuality (id: number) {
+    if (id === -1) {
+      if (this.autoResolutionPossible === true) {
+        this.autoResolution = true
+
+        this.selectAppropriateResolution(false)
+      }
+
+      return
+    }
+
+    this.autoResolution = false
+    this.updateEngineResolution(id)
+    this.selectAppropriateResolution(false)
+  }
+
   private addTorrent (
     magnetOrTorrentUrl: string,
     previousVideoFile: VideoFile,
@@ -458,7 +474,7 @@ class WebTorrentPlugin extends Plugin {
       }
 
       if (changeResolution === true) {
-        this.updateResolution(file.resolution.id, changeResolutionDelay)
+        this.updateEngineResolution(file.resolution.id, changeResolutionDelay)
 
         // Wait some seconds in observation of our new resolution
         this.isAutoResolutionObservation = true
@@ -598,14 +614,14 @@ class WebTorrentPlugin extends Plugin {
       label: this.buildQualityLabel(file),
       height: file.resolution.id,
       selected: false,
-      selectCallback: () => this.qualitySwitchCallback(file.resolution.id)
+      selectCallback: () => this.changeQuality(file.resolution.id)
     }))
 
     resolutions.push({
       id: -1,
       label: this.player.localize('Auto'),
       selected: true,
-      selectCallback: () => this.qualitySwitchCallback(-1)
+      selectCallback: () => this.changeQuality(-1)
     })
 
     this.player.peertubeResolutions().add(resolutions)
@@ -621,22 +637,6 @@ class WebTorrentPlugin extends Plugin {
     return label
   }
 
-  private qualitySwitchCallback (id: number) {
-    if (id === -1) {
-      if (this.autoResolutionPossible === true) {
-        this.autoResolution = true
-
-        this.selectAppropriateResolution(false)
-      }
-
-      return
-    }
-
-    this.autoResolution = false
-    this.updateResolution(id)
-    this.selectAppropriateResolution(false)
-  }
-
   private selectAppropriateResolution (byEngine: boolean) {
     const resolution = this.autoResolution
       ? -1
index 8443cb7e9dfb1ff2177aeb3ed0f8da2629bba86e..a28aeeaefd4cbec06ec74ce291b2894a2a93c6cc 100644 (file)
@@ -64,19 +64,12 @@ export class PeerTubeEmbedApi {
     if (this.isWebtorrent()) {
       if (resolutionId === -1 && this.embed.player.webtorrent().isAutoResolutionPossible() === false) return
 
-      // Auto resolution
-      if (resolutionId === -1) {
-        this.embed.player.webtorrent().enableAutoResolution()
-        return
-      }
-
-      this.embed.player.webtorrent().disableAutoResolution()
-      this.embed.player.webtorrent().updateResolution(resolutionId)
+      this.embed.player.webtorrent().changeQuality(resolutionId)
 
       return
     }
 
-    this.embed.player.p2pMediaLoader().getHLSJS().nextLevel = resolutionId
+    this.embed.player.p2pMediaLoader().getHLSJS().currentLevel = resolutionId
   }
 
   private getCaptions (): PeerTubeTextTrack[] {
@@ -142,6 +135,8 @@ export class PeerTubeEmbedApi {
     this.embed.player.peertubeResolutions().on('resolutionsAdded', () => this.loadResolutions())
     this.embed.player.peertubeResolutions().on('resolutionChanged', () => this.loadResolutions())
 
+    this.loadResolutions()
+
     this.embed.player.on('volumechange', () => {
       this.channel.notify({
         method: 'volumeChange',
@@ -150,37 +145,11 @@ export class PeerTubeEmbedApi {
     })
   }
 
-  private loadWebTorrentResolutions () {
-    this.resolutions = []
-
-    const currentResolutionId = this.embed.player.webtorrent().getCurrentResolutionId()
-
-    for (const videoFile of this.embed.player.webtorrent().videoFiles) {
-      let label = videoFile.resolution.label
-      if (videoFile.fps && videoFile.fps >= 50) {
-        label += videoFile.fps
-      }
-
-      this.resolutions.push({
-        id: videoFile.resolution.id,
-        label,
-        src: videoFile.magnetUri,
-        active: videoFile.resolution.id === currentResolutionId,
-        height: videoFile.resolution.id
-      })
-    }
-
-    this.channel.notify({
-      method: 'resolutionUpdate',
-      params: this.resolutions
-    })
-  }
-
   private loadResolutions () {
     this.resolutions = this.embed.player.peertubeResolutions().getResolutions()
       .map(r => ({
         id: r.id,
-        label: r.height + 'p',
+        label: r.label,
         active: r.selected,
         width: r.width,
         height: r.height
index 301c95d7b56b1dd2347a6a8fcf762de33ace9517..7213cbf8b21d8e116851d290982c5f61ee3e1600 100644 (file)
@@ -84,8 +84,6 @@ window.addEventListener('load', async () => {
     captionEl.innerHTML = ''
 
     captions.forEach(c => {
-      console.log(c)
-
       if (c.mode === 'showing') {
         const itemEl = document.createElement('strong')
         itemEl.innerText = `${c.label} (active)`
index 34152bd138ca415a633aba7915ec61fc8d2c1f0c..9e07640f05af88a6187d76a0a470fb47a163c853 100644 (file)
@@ -43,7 +43,7 @@ if (!process.argv.slice(2).length) {
      /   /                -" _/"/
     /   |    ._\\\\ |\\  |_.".-"  /
    /    |   __\\)|)|),/|_." _,."
-  /     \_."   " ") | ).-""---''--
+  /     \\_."   " ") | ).-""---''--
  (                  "/.""7__-""''
  |                   " ."._--._
  \\       \\ (_    __   ""   ".,_