aboutsummaryrefslogtreecommitdiffhomepage
path: root/shared
diff options
context:
space:
mode:
Diffstat (limited to 'shared')
-rw-r--r--shared/server-commands/videos/live-command.ts43
1 files changed, 27 insertions, 16 deletions
diff --git a/shared/server-commands/videos/live-command.ts b/shared/server-commands/videos/live-command.ts
index 84d127db2..a0e0c7c8f 100644
--- a/shared/server-commands/videos/live-command.ts
+++ b/shared/server-commands/videos/live-command.ts
@@ -15,7 +15,7 @@ import {
15 VideoState 15 VideoState
16} from '@shared/models' 16} from '@shared/models'
17import { unwrapBody } from '../requests' 17import { unwrapBody } from '../requests'
18import { ObjectStorageCommand } from '../server' 18import { ObjectStorageCommand, PeerTubeServer } from '../server'
19import { AbstractCommand, OverrideCommandOptions } from '../shared' 19import { AbstractCommand, OverrideCommandOptions } from '../shared'
20import { sendRTMPStream, testFfmpegStreamError } from './live' 20import { sendRTMPStream, testFfmpegStreamError } from './live'
21 21
@@ -160,27 +160,38 @@ export class LiveCommand extends AbstractCommand {
160 return this.waitUntilState({ videoId, state: VideoState.LIVE_ENDED }) 160 return this.waitUntilState({ videoId, state: VideoState.LIVE_ENDED })
161 } 161 }
162 162
163 waitUntilSegmentGeneration (options: OverrideCommandOptions & { 163 async waitUntilSegmentGeneration (options: OverrideCommandOptions & {
164 server: PeerTubeServer
164 videoUUID: string 165 videoUUID: string
165 playlistNumber: number 166 playlistNumber: number
166 segment: number 167 segment: number
167 totalSessions?: number 168 objectStorage: boolean
168 }) { 169 }) {
169 const { playlistNumber, segment, videoUUID, totalSessions = 1 } = options 170 const { server, objectStorage, playlistNumber, segment, videoUUID } = options
170 const segmentName = `${playlistNumber}-00000${segment}.ts`
171
172 return this.server.servers.waitUntilLog(`${videoUUID}/${segmentName}`, totalSessions * 2, false)
173 }
174 171
175 waitUntilSegmentUpload (options: OverrideCommandOptions & {
176 playlistNumber: number
177 segment: number
178 totalSessions?: number
179 }) {
180 const { playlistNumber, segment, totalSessions = 1 } = options
181 const segmentName = `${playlistNumber}-00000${segment}.ts` 172 const segmentName = `${playlistNumber}-00000${segment}.ts`
182 173 const baseUrl = objectStorage
183 return this.server.servers.waitUntilLog(`${segmentName} in bucket `, totalSessions * 2, false) 174 ? ObjectStorageCommand.getPlaylistBaseUrl() + 'hls'
175 : server.url + '/static/streaming-playlists/hls'
176
177 let error = true
178
179 while (error) {
180 try {
181 await this.getRawRequest({
182 ...options,
183
184 url: `${baseUrl}/${videoUUID}/${segmentName}`,
185 implicitToken: false,
186 defaultExpectedStatus: HttpStatusCode.OK_200
187 })
188
189 error = false
190 } catch {
191 error = true
192 await wait(100)
193 }
194 }
184 } 195 }
185 196
186 async waitUntilReplacedByReplay (options: OverrideCommandOptions & { 197 async waitUntilReplacedByReplay (options: OverrideCommandOptions & {