forked from intel/wds
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rtsp-message-exchanges.txt
148 lines (94 loc) · 3.9 KB
/
rtsp-message-exchanges.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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
**************************************************
* RTSP messages during WFD session establishment *
**************************************************
There are five different states:
1. capability negotiation A
2. capability negotiation B
3. RTSP session establishment
4. WFD session establishment
5. WFD session
I'm listing the possible exchanges below, per state (except for the
last state: that's a lot more work and mostly not required for POC).
* = message
*** = message, valid start point for a message exchange in this state
SOURCE SINK
MESSAGES MESSAGES
-------------------------------------------------------------
STATE 1 capability negotiation A
-------------------------------------------------------------
*** M1 OPTIONS -------->
if M1 response == 200
send M2
<-------- * M2 OPTIONS
if M2 response = 200
send M3
* M3 GET_PARAMETER -------->
if M3 response == 200
move to state 2, send M4
STATE 2 capability negotiation B
-------------------------------------------------------------
*** M3 GET_PARAMETER -------->
* M4 SET_PARAMETER -------->
(mandatory and optional parameters below)
if M4 response == 200
send M5
STATE 3 RTSP session establishment
-------------------------------------------------------------
*** M3 GET_PARAMETER -------->
*** M4 SET_PARAMETER -------->
* M5 SET_PARAMETER -------->
(trigger SETUP) if M5 response == 200
send M6
<-------- * M6 SETUP
if M6 response == 200
move to state 4, send M7
STATE 4 WFD session establishment
-------------------------------------------------------------
*** M3 GET_PARAMETER -------->
*** M5 SET_PARAMETER -------->
(trigger TEARDOWN) if M5 response = 200
send M8
*** M5 SET_PARAMETER -------->
(trigger PLAY) if M5 response == 200
send M7
<-------- * M7 PLAY
if M7 response == 200
move to state 5, start streaming
*** M8 TEARDOWN
if M8 response == 200
move to state 1
STATE 5 WFD Session
---------------------------------------------------------------
TODO ...
*****************************
* GET/SET Method parameters *
*****************************
M = mandatory
O = optional
These rules apply _before_ the WFD sessions is established
(in other words states 1-4):
request reply
* M3 GET_PARAMETER
-----------------------------------------------------------------
audio-codecs M M
video-formats M M
3d-video-formats O M (if in request)
content-protection O M (if in request)
display-edid O M (if in request)
coupled-sink O M (if in request)
client-rtp-ports M M
I2C O M (if in request)
uibc-capability O M (if in request)
connector-type O M (if in request)
standby-resume-- O M (if in request)
* M4 SET_PARAMETER
audio-codecs M (if stream contains audio)
video-formats M (if no preferred-display and stream contains video)
3d-video-formats M (if no preferred-display and stream includes 3d)
presentation-url M
client-rtp-ports M
preferred-display-- O (spec error on p 111?)
uibc-capability O
uibc-setting O
* M5 SET_PARAMETER
trigger-method M