[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-server-cvs
Subject:    [Server-cvs] protocol/transport/common transport.cpp,1.11,1.12
From:       jgordon () helixcommunity ! org
Date:       2009-10-18 22:29:18
Message-ID: 200910182339.n9INdoI4020488 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/server/protocol/transport/common
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv18889/transport/common

Modified Files:
	transport.cpp 
Log Message:
Synopsis
========
Updates PLAYNOW handling to Rel 7 channel switching

Branches: HEAD (SERVER_CURRENT)
Reviewer: chytanya


Description
===========
Numerous updates for updated semantics.

1. Request is an overloaded PLAY request and meaning of PLAY while in
Playing state is changed.

Most of existing OnPlayRequest method is moved into new method
OnNormalPlayRequest. The initial state handling at the beginning of
OnPlayRequest is updated for new semantics and to determine which
type of PLAY request we have and call an appropriate method (or
handle as keep-alive or fail). Normal channel switch case calls
OnPlaynowRequest and stream switch (new switch type) calls new method
OnSwitchStreamRequest.

2. Regular (non-aggregate) transport parameters are re-used.

Old code stored aggregate transport parameter info only for re-use. It
also used existence of aggregate transport as indication of whether the
transport parameters can be re-used, etc.

Updated to have the new session re-use the old session's
RTSPTransportInstantiator rather than just the one transport params.
RTSPTransportInstantiator is updated to maintain selected transports
in a separate list from available transports (rather than current
behavior where the list changes from available to selected when you
setup) so we can differentiate when switching.

3. Client can select streams to setup (via switch-stream header) if it
already has the SDP; and can specify specific old-stream to new-stream
switches.

Since the request makes individual setups by stream URLs, much of the
existing code needs to be moved to occur *after* we have gotten response
back from the file object with stream header info. Since the
switch-stream header references old session stream-IDs and new session
stream-IDs, we need both around when we parse it. The old session is
now maintained until the new session is totally set up.

Various new methods in RTSPTransportInstantiator to handle switching
transports and stuff. Code moved around between the selectTransport and
canUseTransport methods so that I can reuse appropriately in switching.

4. RTP-Info needs ssrc

This actually should have been added before, not sure why it wasn't
there. It is now.


Not complete with this checkin:
- individual stream switching, starting, or stopping
- switching between content with different number of streams
- aggregate transport
- multi-rate switching

Files Affected
==============
server/protocol/rtsp/crtspbase.cpp
server/protocol/rtsp/rtspsession.cpp
server/protocol/rtsp/transportparams.cpp
server/protocol/rtsp/pub/crtspbase.h
server/protocol/rtsp/pub/rtspsession.h
server/protocol/rtsp/pub/transportparams.h
server/protocol/transport/common/transport.cpp
server/protocol/transport/common/pub/transport.h
server/protocol/transport/rdt/rdt_base.cpp
server/protocol/transport/rtp/rtp_udp.cpp


Testing Performed
=================
Unit Tests:
Manual RTSP verification (telnet):
Fast start up
Switching
Switching with SDP

Integration Tests:
Normal playback RDT/UDP
Normal playback RDT/TCP
Normal playback RTP/UDP
Switching with test client

Leak Tests:
None

Performance Tests:
None

Platforms Tested: win32-i386-vc7, linux-rhel5-i686
Build verified: win32-i386-vc7, linux-rhel5-i686


QA Hints
===============

Demo tests



Index: transport.cpp
===================================================================
RCS file: /cvsroot/server/protocol/transport/common/transport.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- transport.cpp	15 Oct 2007 04:35:34 -0000	1.11
+++ transport.cpp	18 Oct 2009 22:29:16 -0000	1.12
@@ -353,7 +353,7 @@
 #ifdef RDT_MESSAGE_DEBUG
     , m_bRDTMessageDebug(FALSE)
 #endif 
-    , m_bIsAggregate(FALSE)
+    , m_bReuseSocket(FALSE)
     , m_ulRefCount(0UL)
     , m_eTransType(RTSP_TR_NONE)
 {


_______________________________________________
Server-cvs mailing list
Server-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/server-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic