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

List:       helix-server-cvs
Subject:    [Server-cvs] protocol/rtsp crtspbase.cpp,1.94,1.95
From:       skharkar () helixcommunity ! org
Date:       2011-06-15 19:09:17
Message-ID: 201106151909.p5FJ9KoW013635 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/server/protocol/rtsp
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv7555

Modified Files:
	crtspbase.cpp 
Log Message:
Synopsis
========
Bug 269546: MT: Low video bitrate won't play with all queryparameters filled in 

Reviewer: Chytanya
 
Branches: HEAD,SERVER_14_2
 
Description
===========
With QT player.
In ClientSession::Subscribe we were passing in stream number for method which expects \
a group number. For multiplex case stream number and group number would very likely \
be different and as a result wrong rule was getting subscribed.

With RealPlayer.
For multiplexer stream, we have to ignore set parameter requests or else Real Player \
will always subscribe to highest bitrate, irrespective   of vidbr or audbr parameter.
Fix was to check in CRTSPBaseProtocol::HandleSubscribe to see if it is multiplexed \
stream and if yes then ignore.

Files affected
===============
server/protocol/rtsp/crtspbase.cpp
server/engine/session/clientsession.cpp

Tested
======
Tested following with Real and QT player.
Tested with multiplexed video stream encoded @252kps, @122kbps & @76kps
and audio encoded @96kbps, 64kbps & 48 kbps.
Tested various combinationts of audio and video bitrate in playbacks.
Tested various combination of video only and audio only playback.
Tested default multiplexed stream with no vidbr and audbr and confirmed that it is \
lowest bitrate stream. Tested multi-rate 3GP and RM encode.

QA hints
=========
Test different combinations audio and video bitrate in multirate multiplexed stream.
Test normal live mult rate playback with PPM.

Index: crtspbase.cpp
===================================================================
RCS file: /cvsroot/server/protocol/rtsp/crtspbase.cpp,v
retrieving revision 1.94
retrieving revision 1.95
diff -u -d -r1.94 -r1.95
--- crtspbase.cpp	12 Apr 2011 22:37:25 -0000	1.94
+++ crtspbase.cpp	15 Jun 2011 19:09:15 -0000	1.95
@@ -386,6 +386,9 @@
     m_szPacketFormat(NULL),
     m_bSessionCreatedOnDesc(FALSE),
     bCanMakeSelection(FALSE)
+#ifdef HELIX_FEATURE_SERVER_MULTIPLEXER
+    ,m_bMultiplexedURL(FALSE)
+#endif
 {
 #ifndef HELIX_FEATURE_PLAYNOW3
     m_bPN3Enabled = FALSE;
@@ -5362,6 +5365,17 @@
 HX_RESULT
 CRTSPBaseProtocol::HandleSubscribe(CHXSimpleList* pSubList, const char* pSessionID)
 {
+#ifdef HELIX_FEATURE_SERVER_MULTIPLEXER
+    if (m_bMultiplexedURL)
+    {
+        /*
+        We want to ignore Set Parameter called by real player in case of multiplexed \
URL. +        Server will choose ASM rule selected.
+        */
+        return HXR_OK;
+    }
+#endif /*HELIX_FEATURE_SERVER_MULTIPLEXER*/
+
     if (pSubList)
     {
         ClientSession* pSession = m_pClient->FindSession(pSessionID);
@@ -5434,6 +5448,13 @@
 HX_RESULT
 CRTSPBaseProtocol::HandleUnsubscribe(CHXSimpleList* pUnsubList, const char* \
pSessionID)  {
+#ifdef HELIX_FEATURE_SERVER_MULTIPLEXER
+    if (m_bMultiplexedURL)
+    {
+        return HXR_OK;
+    }
+#endif /*HELIX_FEATURE_SERVER_MULTIPLEXER*/
+
     if (pUnsubList)
     {
         ClientSession* pSession = m_pClient->FindSession(pSessionID);
@@ -8526,6 +8547,7 @@
 
         if(pMPParser && pMPParser->IsMultiplexerRequest())
         {
+            m_bMultiplexedURL = TRUE;
             CHXSimpleList selectedList;
             pMPParser->GetMultiplexerStreamHeader(pHeaders, &selectedList);
             if(selectedList.GetCount() == 0)
@@ -15797,4 +15819,3 @@
     pVersion->Set((const BYTE*)szVersion, strlen(szVersion)+1);
 }
 
-


_______________________________________________
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