diff options
Diffstat (limited to 'client/src')
3 files changed, 9 insertions, 12 deletions
diff --git a/client/src/app/+videos/+video-edit/shared/video-edit.component.html b/client/src/app/+videos/+video-edit/shared/video-edit.component.html index fa816fd9e..fdd6b2311 100644 --- a/client/src/app/+videos/+video-edit/shared/video-edit.component.html +++ b/client/src/app/+videos/+video-edit/shared/video-edit.component.html | |||
@@ -45,9 +45,11 @@ | |||
45 | 45 | ||
46 | <my-help helpType="markdownText"> | 46 | <my-help helpType="markdownText"> |
47 | <ng-template ptTemplate="preHtml"> | 47 | <ng-template ptTemplate="preHtml"> |
48 | <ng-container i18n> | 48 | <ng-container i18n>Video descriptions are truncated by default and require manual action to expand them.</ng-container> |
49 | Video descriptions are truncated by default and require manual action to expand them. | 49 | |
50 | </ng-container> | 50 | <br /> |
51 | |||
52 | <ng-container i18n>A timestamp (<i>00:05</i> for example) is automatically converted into a link to a part of the video.</ng-container> | ||
51 | </ng-template> | 53 | </ng-template> |
52 | </my-help> | 54 | </my-help> |
53 | 55 | ||
diff --git a/client/src/assets/player/shared/manager-options/hls-options-builder.ts b/client/src/assets/player/shared/manager-options/hls-options-builder.ts index 63e9fa8c8..194991fa4 100644 --- a/client/src/assets/player/shared/manager-options/hls-options-builder.ts +++ b/client/src/assets/player/shared/manager-options/hls-options-builder.ts | |||
@@ -96,7 +96,6 @@ export class HLSOptionsBuilder { | |||
96 | 96 | ||
97 | segmentValidator: segmentValidatorFactory({ | 97 | segmentValidator: segmentValidatorFactory({ |
98 | segmentsSha256Url: this.options.p2pMediaLoader.segmentsSha256Url, | 98 | segmentsSha256Url: this.options.p2pMediaLoader.segmentsSha256Url, |
99 | isLive: this.options.common.isLive, | ||
100 | authorizationHeader: this.options.common.authorizationHeader, | 99 | authorizationHeader: this.options.common.authorizationHeader, |
101 | requiresAuth: this.options.common.requiresAuth, | 100 | requiresAuth: this.options.common.requiresAuth, |
102 | serverUrl: this.options.common.serverUrl | 101 | serverUrl: this.options.common.serverUrl |
@@ -129,7 +128,7 @@ export class HLSOptionsBuilder { | |||
129 | ...base, | 128 | ...base, |
130 | 129 | ||
131 | useP2P: false, | 130 | useP2P: false, |
132 | httpDownloadProbability: 1 | 131 | requiredSegmentsPriority: 10 |
133 | } | 132 | } |
134 | 133 | ||
135 | case LiveVideoLatencyMode.HIGH_LATENCY: | 134 | case LiveVideoLatencyMode.HIGH_LATENCY: |
diff --git a/client/src/assets/player/shared/p2p-media-loader/segment-validator.ts b/client/src/assets/player/shared/p2p-media-loader/segment-validator.ts index 3c76d63f7..6e9bcf103 100644 --- a/client/src/assets/player/shared/p2p-media-loader/segment-validator.ts +++ b/client/src/assets/player/shared/p2p-media-loader/segment-validator.ts | |||
@@ -7,24 +7,20 @@ import { isSameOrigin } from '../common' | |||
7 | 7 | ||
8 | type SegmentsJSON = { [filename: string]: string | { [byterange: string]: string } } | 8 | type SegmentsJSON = { [filename: string]: string | { [byterange: string]: string } } |
9 | 9 | ||
10 | const maxRetries = 3 | 10 | const maxRetries = 10 |
11 | 11 | ||
12 | function segmentValidatorFactory (options: { | 12 | function segmentValidatorFactory (options: { |
13 | serverUrl: string | 13 | serverUrl: string |
14 | segmentsSha256Url: string | 14 | segmentsSha256Url: string |
15 | isLive: boolean | ||
16 | authorizationHeader: () => string | 15 | authorizationHeader: () => string |
17 | requiresAuth: boolean | 16 | requiresAuth: boolean |
18 | }) { | 17 | }) { |
19 | const { serverUrl, segmentsSha256Url, isLive, authorizationHeader, requiresAuth } = options | 18 | const { serverUrl, segmentsSha256Url, authorizationHeader, requiresAuth } = options |
20 | 19 | ||
21 | let segmentsJSON = fetchSha256Segments({ serverUrl, segmentsSha256Url, authorizationHeader, requiresAuth }) | 20 | let segmentsJSON = fetchSha256Segments({ serverUrl, segmentsSha256Url, authorizationHeader, requiresAuth }) |
22 | const regex = /bytes=(\d+)-(\d+)/ | 21 | const regex = /bytes=(\d+)-(\d+)/ |
23 | 22 | ||
24 | return async function segmentValidator (segment: Segment, _method: string, _peerId: string, retry = 1) { | 23 | return async function segmentValidator (segment: Segment, _method: string, _peerId: string, retry = 1) { |
25 | // Wait for hash generation from the server | ||
26 | if (isLive) await wait(1000) | ||
27 | |||
28 | const filename = basename(removeQueryParams(segment.url)) | 24 | const filename = basename(removeQueryParams(segment.url)) |
29 | 25 | ||
30 | const segmentValue = (await segmentsJSON)[filename] | 26 | const segmentValue = (await segmentsJSON)[filename] |
@@ -36,7 +32,7 @@ function segmentValidatorFactory (options: { | |||
36 | if (!segmentValue) { | 32 | if (!segmentValue) { |
37 | logger.info(`Refetching sha segments for ${filename}`) | 33 | logger.info(`Refetching sha segments for ${filename}`) |
38 | 34 | ||
39 | await wait(1000) | 35 | await wait(500) |
40 | 36 | ||
41 | segmentsJSON = fetchSha256Segments({ serverUrl, segmentsSha256Url, authorizationHeader, requiresAuth }) | 37 | segmentsJSON = fetchSha256Segments({ serverUrl, segmentsSha256Url, authorizationHeader, requiresAuth }) |
42 | await segmentValidator(segment, _method, _peerId, retry + 1) | 38 | await segmentValidator(segment, _method, _peerId, retry + 1) |