diff options
Diffstat (limited to 'shared')
-rw-r--r-- | shared/server-commands/videos/live-command.ts | 43 |
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' |
17 | import { unwrapBody } from '../requests' | 17 | import { unwrapBody } from '../requests' |
18 | import { ObjectStorageCommand } from '../server' | 18 | import { ObjectStorageCommand, PeerTubeServer } from '../server' |
19 | import { AbstractCommand, OverrideCommandOptions } from '../shared' | 19 | import { AbstractCommand, OverrideCommandOptions } from '../shared' |
20 | import { sendRTMPStream, testFfmpegStreamError } from './live' | 20 | import { 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 & { |