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

List:       helix-protocol-cvs
Subject:    [Protocol-cvs] transport/rtp/pub rtptran.h, 1.41.2.6.6.2,
From:       srao () helixcommunity ! org
Date:       2007-01-29 13:08:55
Message-ID: 200701291309.l0TD9spA008933 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/protocol/transport/rtp/pub
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv20630/pub

Modified Files:
      Tag: SERVER_11_1
	rtptran.h 
Log Message:
Hi,

Synopsis
========
Fixes PR 173113 VFKK: "RTP Timestamp Computation Selection" does not function with \
HMS/HMG11.1.

Branches: SERVER_11_1_RN, HEAD
Suggested Reviewer: Sujeet, Anyone


Description
===========
This is propagation of PR-147309. Vodaphone wants old RTP time stamp calculation for \
configured handsets.  The handsets which only understands old timestams are giving \
poor quality for streams with new RTP time stamps.  New RTP timestamps follow wall \
clock, but old RTP timestamps  does not follow wall clock, seeking backward causes \
rtp time to go backward.



Fix:
===============
In RTSPServerProtocol() based on the configuration \
"LegacyRTPTimestampComputationUserAgentStrings" , enabling flag m_bOldRTPTS.  This \
flag m_bOldRTPTS will get passed to Transport RTPBaseTransport() on creation. Based \
on this flag RTPBaseTransport::SetFirstTSStatic() sets the time stamp appropriately.


Note: In old fix RTSPServerProtocol::HandleOldRtpFlag() checks for UserAgent and if \
UserAgent is ,"RealMedia" (or) "RealOnePlayer" always setting flag m_bOldRTPTS to  \
TRUE with out checking config entries. This will force Old RTP timestamps to Real \
Players. That is the reason I removed this if condition and setting flag m_bOldRTPTS \
to  TRUE only if its configured in config file.


Files Affected
==============
/server/protocol/transport/rtp/rtp_tcp.cpp
/server/protocol/transport/rtp/rtp_udp.cpp
/server/protocol/transport/rtp/pub/rtp_tcp.h
/server/protocol/transport/rtp/pub/rtp_udp.h
/server/protocol/rtsp/rtspserv.cpp
/server/protocol/rtsp/pub/rtspserv.h
/protocol/transport/rtp/rtptran.cpp
/protocol/transport/rtp/pub/rtptran.h



Testing Performed
=================
Verified that the rtp time reported in the rtp-info header is legacy style, for the \
clients specified in the config  file. Basically rtp time does not follow wall clock, \
seeking backward causes rtp time to go backward.


Build verified: win32-i386-vc6, linux-rhel4-i686, 


QA Hints
===============
1) Configure any player (ex: QuickTime) as Legacy user agent and verify that seeking \
backward causes rtp time to go backward.

<List Name="LegacyRTPTimestampComputationUserAgentStrings">
    <Var Item_18="QuickTime/7.1.3"/>
</List>

2) Configure proxy and verify the same.


Thanks/Srinivas




Index: rtptran.h
===================================================================
RCS file: /cvsroot/protocol/transport/rtp/pub/rtptran.h,v
retrieving revision 1.41.2.6.6.2
retrieving revision 1.41.2.6.6.3
diff -u -d -r1.41.2.6.6.2 -r1.41.2.6.6.3
--- rtptran.h	4 Mar 2006 02:22:55 -0000	1.41.2.6.6.2
+++ rtptran.h	29 Jan 2007 13:08:53 -0000	1.41.2.6.6.3
@@ -127,7 +127,7 @@
 class RTPBaseTransport: public RTSPTransport, public IHXSourceBandwidthInfo
 {
 public:
-    RTPBaseTransport                    (BOOL bIsSource);
+    RTPBaseTransport                    (BOOL bIsSource, BOOL bOldTS = FALSE);
     ~RTPBaseTransport                   (void);
 
     // IUnknown
@@ -274,7 +274,7 @@
 
     UINT32                              m_ulAvgPktSz;
     CReflectionHandler*                m_pReflectionHandler;
-
+    BOOL                                m_bOldTSStatic;
     /*
      * RTP-Info:  According to RFC2326, it is possible not to have one of them,
      * so if it is missing, take care of it right here in transport
@@ -375,7 +375,7 @@
 class RTPUDPTransport : public RTPBaseTransport
 {
 public:
-    RTPUDPTransport                     (BOOL bIsSource);
+    RTPUDPTransport                     (BOOL bIsSource, BOOL bOldTS = FALSE);
     virtual ~RTPUDPTransport            (void);
 
     STDMETHOD(QueryInterface)           (THIS_
@@ -455,7 +455,7 @@
 class RTPTCPTransport: public RTPBaseTransport
 {
 public:
-    RTPTCPTransport                     (BOOL bIsSource);
+    RTPTCPTransport                     (BOOL bIsSource, BOOL bOldTS = FALSE);
     ~RTPTCPTransport                    (void);
     void Done                           (void);
 


_______________________________________________
Protocol-cvs mailing list
Protocol-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/protocol-cvs


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

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