====================================================== Notes on setting up the stream ====================================================== (nb. it seems the rtsptransportrequest is created for each type of stream supported, and actual transports are created and stored within it based on their stream number!!) It seems an RTSPTransportRequest object is created for each type of transport supported by the client (eg. RTSP_TR_RTP_UDP) and put into a list in RTSPClientProtocol::m_transportRequestList when we're building up to sending an RTSP Setup message to the server in RTSPClientProtocol::SendSetupRequest() When sendSetupRequestMessageExt() gets called for a particular stream, for each RTSPTransportRequest in m_transportRequestList a transport object of the appropriate type (eg. RTPUDPTransport) is created and bound to the sockets specified by the stream we're setting up for. Then, the member of the m_transportRequestList we're dealing with has addTransportInfo() called on it that sets various members to point to actual tranport objects, and the request message has appropriate values added to its 'Transport' header for each type of transport the client supports. The next point of contact re: the transport objects is presumably in RTSPClientProtocol::handleSetupResponseExt after the message has been sent to the server, where we suck out the 'Transport' header, where the server will have selected one of the clients transports and added its own port information. The first value (eg. RTP/AVP) determines the transport object selected by the server (?) [RTSPTransportRequest* pRequest = getTransportRequest(pValue);] Then, we get the transportinfo for a particular stream number RTSPTransportInfo* pTransInfo = pRequest->getTransportInfo(streamNumber);. From the transport info we get the actual transport object, and its associated rtcp transport object, and set it into m_pTransportStreamMap, and index it by the correct udp ports into m_pTransportPortMap. Not quite clear what cleans up the m_transportRequestList? (ie. if theres transports that have been created but are not being used).