************************************************** * 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