forked from grafov/hlsprobe
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sequence-diagram.plantuml
64 lines (50 loc) · 1.69 KB
/
sequence-diagram.plantuml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Проблемы:
1 нет ответа сервера (timeout)
2 есть ответ сервера - ресурс не найден или запрещён (40x)
3 вариантный плейлист пустой (некорректный smil)
4 плейлист битрейта пустой
5 чанк не проходит mediainfo
6 сбой (любая из ошибок выше) для всей группы ресурсов [определить группы]
7 mediainfo канала не совпадает с заданным
8 битрейты не совпадают с заданными
@startuml
title HLS Probe Workflow
participant FlowController
participant Source
participant Playlists <<queue>>
participant CupertinoProbe
participant Chunks <<queue>>
participant MediaProbe
participant Errors <<queue>>
participant ProblemAnalyzer
== Initialization ==
activate FlowController
FlowController-->Playlists: create queue
activate Playlists
FlowController-->Chunks: create queue
activate Chunks
FlowController-->Errors: create queue
activate Errors
FlowController-->Source: spawn process
activate Source
FlowController-->CupertinoProbe: spawn process
activate CupertinoProbe
FlowController-->MediaProbe: spawn process
activate MediaProbe
FlowController-->ProblemAnalyzer: spawn process
activate ProblemAnalyzer
== Main flow ==
Source->Source: choice (random or sequental) stream URI
Source->Playlists: put URI
CupertinoProbe<-Playlists: get URI
== End of work ==
deactivate Source
FlowController-->ProblemAnalyzer: end process
deactivate ProblemAnalyzer
deactivate CupertinoProbe
deactivate MediaProbe
deactivate Chunks
deactivate Playlists
deactivate Errors
deactivate FlowController
@enduml