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

List:       helix-server-cvs
Subject:    [Server-cvs] protocol/rtsp crtspbase.cpp,1.89.2.6,1.89.2.7
From:       xiaochengli () helixcommunity ! org
Date:       2011-09-28 3:25:57
Message-ID: 201109280424.p8S4OaLq023645 () mailer ! progressive-comp ! com
[Download RAW message or body]

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

Modified Files:
      Tag: SERVER_14_2
	crtspbase.cpp 
Log Message:

Synopsis:
=========
This CR is to let subscriber can acess content archived by livemultiplexer through \
url like "rtsp://<server:port>/Archive/<name.ext>?vid=<vid>&aud=<aud>"

Branch: HEAD, SERVER_14_2_RN
Reviewer: Chytanya

Description:
=========
The request is to let a subscriber can access archived content by url like \
"rtsp://<server:port>/Archive/<name.ext>?vid=<vid>&aud=<aud>" Since in \
CRTSPBaseProtocol::_FinishDescribe, crtspbase.cpp, GetMultiplexerStreamHeader get 0 \
headers, so a HXR_FILE_NOT_FOUND is set and GetDescription is skipped. The publisher \
should be ignoring any query parameters while pulling/sending the content down. We \
need to ignore the creation of CMultiplexerURLParser. 

Files affected:
=========
server/protocol/rtsp/crtspbase.cpp

Testing Performed:
=========
Unit Tests: N/A
Integration Tests: Tested with a private build, can play by url like \
"rtsp://<server:port>/Archive/broadcast/<name.ext>?vid=<vid>&aud=<aud>". <name.ext> \
is the name of archived file. It only works for the content created by \
livemultiplexer but not for content 

Leak Tests: None
Performance Tests: N/A

Platforms Tested: win-x86_64-vc10 
Builds Verified: win-x86_64-vc10

QA Hints
========
Both requests from subscriber or proxy need to be verified.




Index: crtspbase.cpp
===================================================================
RCS file: /cvsroot/server/protocol/rtsp/crtspbase.cpp,v
retrieving revision 1.89.2.6
retrieving revision 1.89.2.7
diff -u -d -r1.89.2.6 -r1.89.2.7
--- crtspbase.cpp	14 Sep 2011 23:06:49 -0000	1.89.2.6
+++ crtspbase.cpp	28 Sep 2011 03:25:54 -0000	1.89.2.7
@@ -8462,30 +8462,32 @@
         pSession->SetSDPSessionGUID(pSD, ppValues);
 
 #ifdef HELIX_FEATURE_SERVER_MULTIPLEXER
-        CMultiplexerURLParser* pMPParser = new \
                CMultiplexerURLParser(m_proc->pc->server_context);
-        if(pMPParser->IsMultiplexerEnabled())
+        CMultiplexerURLParser* pMPParser = NULL;
+        // We'll ignore creation of CMultiplexerURLParser if it's a caching request \
from subscriber or proxy, +        // so that it wont' check multiplex URL query \
parameters.  +        if (!pSession->m_bBlockTransfer)
         {
-            const char* pDecUrl = NULL;
-            if(m_pUrl)
+            pMPParser = new CMultiplexerURLParser(m_proc->pc->server_context);
+            if(pMPParser && pMPParser->IsMultiplexerEnabled())
             {
-                m_pUrl->GetDecodedUrl(pDecUrl);
-                if(pDecUrl)
+                const char* pDecUrl = NULL;
+                if(m_pUrl)
                 {
-                    pMPParser->SetURL(pDecUrl);
+                    m_pUrl->GetDecodedUrl(pDecUrl);
+                    if(pDecUrl)
+                    {
+                        pMPParser->SetURL(pDecUrl);
+                    }
+                    else
+                    {
+                        HX_DELETE(pMPParser);
+                    }
                 }
                 else
                 {
                     HX_DELETE(pMPParser);
                 }
             }
-            else
-            {
-                HX_DELETE(pMPParser);
-            }
-        }
-        else
-        {
-            HX_DELETE(pMPParser);
         }
 
         if(pMPParser && pMPParser->IsMultiplexerRequest())
@@ -8534,7 +8536,6 @@
         {
             pSD->GetDescription(nStreams+2, ppValues, (*ppIHXBufferDescription));
         }
-
         HX_RELEASE(pSD);
         HX_RELEASE(pRulesBuf);
 #ifdef HELIX_FEATURE_SERVER_MULTIPLEXER


_______________________________________________
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