X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fextra-utils%2Fvideos%2Flive.ts;h=cbcfc09e4d268ff5b42052f05bf5ba086673a081;hb=0d8de2756fdc43be61a82a96c17d12ee52ba0143;hp=4aa66622b3abb8e411d9299eaa62d53ea36f3815;hpb=e0fea785bf28966da09cdc16a274c9e750b488f4;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/extra-utils/videos/live.ts b/shared/extra-utils/videos/live.ts index 4aa66622b..cbcfc09e4 100644 --- a/shared/extra-utils/videos/live.ts +++ b/shared/extra-utils/videos/live.ts @@ -6,11 +6,11 @@ import { pathExists, readdir } from 'fs-extra' import { omit } from 'lodash' import { join } from 'path' import { LiveVideo, LiveVideoCreate, LiveVideoUpdate, VideoDetails, VideoState } from '@shared/models' +import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes' import { buildAbsoluteFixturePath, buildServerDirectory, wait } from '../miscs/miscs' import { makeGetRequest, makePutBodyRequest, makeUploadRequest } from '../requests/requests' -import { ServerInfo } from '../server/servers' +import { ServerInfo, waitUntilLog } from '../server/servers' import { getVideoWithToken } from './videos' -import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes' function getLive (url: string, token: string, videoId: number | string, statusCodeExpected = HttpStatusCode.OK_200) { const path = '/api/v1/videos/live' @@ -136,19 +136,20 @@ async function stopFfmpeg (command: ffmpeg.FfmpegCommand) { await wait(500) } -function waitUntilLiveStarts (url: string, token: string, videoId: number | string) { - return waitWhileLiveState(url, token, videoId, VideoState.WAITING_FOR_LIVE) -} - function waitUntilLivePublished (url: string, token: string, videoId: number | string) { - return waitWhileLiveState(url, token, videoId, VideoState.PUBLISHED) + return waitUntilLiveState(url, token, videoId, VideoState.PUBLISHED) } function waitUntilLiveEnded (url: string, token: string, videoId: number | string) { - return waitWhileLiveState(url, token, videoId, VideoState.LIVE_ENDED) + return waitUntilLiveState(url, token, videoId, VideoState.LIVE_ENDED) +} + +function waitUntilLiveSegmentGeneration (server: ServerInfo, videoUUID: string, resolutionNum: number, segmentNum: number) { + const segmentName = `${resolutionNum}-00000${segmentNum}.ts` + return waitUntilLog(server, `${videoUUID}/${segmentName}`, 2, false) } -async function waitWhileLiveState (url: string, token: string, videoId: number | string, state: VideoState) { +async function waitUntilLiveState (url: string, token: string, videoId: number | string, state: VideoState) { let video: VideoDetails do { @@ -156,7 +157,7 @@ async function waitWhileLiveState (url: string, token: string, videoId: number | video = res.body await wait(500) - } while (video.state.id === state) + } while (video.state.id !== state) } async function checkLiveCleanup (server: ServerInfo, videoUUID: string, resolutions: number[] = []) { @@ -200,10 +201,10 @@ export { getPlaylistsCount, waitUntilLivePublished, updateLive, - waitUntilLiveStarts, createLive, runAndTestFfmpegStreamError, checkLiveCleanup, + waitUntilLiveSegmentGeneration, stopFfmpeg, sendRTMPStreamInVideo, waitUntilLiveEnded,