[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