Last active
October 14, 2015 00:54
-
-
Save Tuxdude/3bdc8a178fc95d6953e1 to your computer and use it in GitHub Desktop.
RTSP message info taken from https://github.com/01org/wds/blob/master/rtsp-message-exchanges.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
************************************************** | |
* 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment