forked from philippe44/AirConnect
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdoc.txt
113 lines (93 loc) · 7.83 KB
/
doc.txt
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
a1/Steady mode
<--------------------------------- HTTP latency ------------------------------------->
<------------ RTP latency -------------->
| WR
|--------------------------------------------|---------------------------------------|
DAC now playtime
a2/holding frame
<----------------------------- HTTP latency -------------------------------->
<--------- RTP latency -------->
| H (held) W
|--------------------------------------------|------------------------------|--------|
DAC now playtime
a3/limit
<--------------- HTTP latency --------------->
< no RTP latency >
H/R (held) W
|--------------------------------------------|----------------------------------------|
DAC now/playtime
a4/insert silence <--------------- HTTP latency --------------->
S/R (sending) W
|--------------------------------------------|----------------------------------------|
DAC now/playtime
a5/catchup
<--------------------------------- HTTP latency ------------------------------------->
<------------ RTP latency -------------->
| WR
|--------------------------------------------|---------------------------------------|
DAC now playtime
b1/Steady mode
<--------------------------------- HTTP latency ------------------------------------->
<------------ RTP latency -------------->
| WR
|--------------------------------------------|---------------------------------------|
DAC now playtime
b2/starving RTP
<------------------------------ HTTP latency --------------------------------->
<---------- RTP latency --------->
| WR
|--------------------------------------------|--------------------------------|
DAC now playtime
b3.1/limit
<-------------- HTTP latency ---------------->
< no RTP latency >
WR
|--------------------------------------------|
DAC now/playtime
If nothing done, then when DAC reaches playtime, player stops
OPTION-1: wait for frames
b4/frame arrives
<---------------- HTTP latency -------------->
< no RTP latency >
H/R (to be recovered) W
|--------------------------------------------|----------------------------|
DAC now/playtime
b5/ frames arrive to catch-up wih real time
<--------------------------------- HTTP latency ------------------------------------->
<------------ RTP latency -------------->
| (all recovered) WR
|--------------------------------------------|---------------------------------------|
DAC now playtime
b6/ frame arrives too late
<--------------------------- HTTP latency ------------------------->
<------------ RTP latency -------------->
R (don't recover) | (to be recovered) W
|===========================|---------------------------------------|
playtime now
OPTIONS-2: insert silence
b3.2/limit, inserting silence on empty buffer
<-------------- HTTP latency ---------------->
< no RTP latency >
WR/S
|--------------------------------------------|
DAC now/playtime
b4/silence addition, no catchup
<-------------- HTTP latency ---------------->
< no RTP latency >
W R/S
|------------------------------------|-------|
DAC now/playtime
b5/finally a frame arrives in time
<-------------- HTTP latency ---------------->
< no RTP latency >
R/S (to be recovered) W
|--------------------------------------------|----------------------------|
DAC now/playtime
|------------------------------------|---------|----------------------------------------|
DAC now playtime
5/frame arrives too late
<-------------- HTTP latency ---------------->
< no RTP latency >
R/S (to be recovered) W
|--------------------------------------------|----------------------------|
DAC now/playtime