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

List:       helix-server-cvs
Subject:    [Server-cvs] engine/session clientsession.cpp,1.72.2.40,1.72.2.41
From:       yphadke () helixcommunity ! org
Date:       2008-04-18 10:48:42
Message-ID: 200804181048.m3IAmuhu029585 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/server/engine/session
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv6409/session

Modified Files:
      Tag: SERVER_12
	clientsession.cpp 
Log Message:

Oh, sorry! This looks good.

Yadnesh Phadke wrote:
> Gentle Reminder.
> 
> Regards,
> Yadnesh
> 
> Yadnesh Phadke wrote:
> > ConfigureSource() is executed for PPM as well as MDP. \
> > ConfigureSourceFCSSpecific() is the routine in which I modified, this is called \
> > only for PPM. 
> > ConfigureSource() actually does some part of the code I have introduced.  My fix \
> > needs modification.  PFA updated diff. 
> > In case of MDP CASMStreamFilter::CommitSubscription() gets called when \
> > StartPackets() is called on the new source.  CommitSubscription() takes care of \
> > applying the SUBSCRIBED rules. 
> > Repeated the integration tests and Leak tests mentioned below.  The change to \
> > asmstreamfilter.cpp is no longer require to be accompanied with this fix.  But I \
> > kept it as it is a useful change. 
> > Regards,
> > Yadnesh
> > 
> > Jamie Gordon wrote:
> > > Looks good Yadnesh.
> > > 
> > > One thing I'm kind of scratching my head on,
> > > 
> > > +    // For PPM, we need to subscribe to the rules indicated by the
> > > +    // clients. This routine is not executed for MDP
> > > 
> > > I'm wondering why ConfigureSource is not called for MDP. I believe that
> > > your change would still be correct for MDP if the method was called
> > > (m_pRateSelInfo should still contain the current rate selection,
> > > whether selected by Subscribe or by MDP) so that's fine. Do we
> > > have a similar bug for MDP, since it's not hitting this changed method?
> > > 
> > > Yadnesh Phadke wrote:
> > > > 
> > > > Synopsis
> > > > ========
> > > > CR: Fixes PR 216149: FCS: MultiRate|Demand|queue=0/1|Demand playback does not \
> > > > continue more than a couple of seconds after switch when player BW settings \
> > > > select non-highest rate 
> > > > Branches: SERVER_CURRENT_RN, SERVER_12_RN
> > > > Suggested Reviewer: JJ, Anyone
> > > > 
> > > > Description
> > > > ===========
> > > > When the connection bandwidth is restricted so that the non-highest bit-rate \
> > > > is selected for playback, At switch, the player stops rendering and actually \
> > > > seems to go non-responsive for a while when clicking 'stop'. (The player \
> > > > issues a PAUSE, but then the UI won't let you do anything for 10-30 seconds.) \
> > > >  Fix:
> > > > ===============
> > > > When the connection bandwidth is restricted, RTSP SETUP registers the default \
> > > > stream (generally highest bitrate).  Then the player sends SUBSCRIBE to get \
> > > > the stream rate suited for the bandwidth. After stream switch the registered \
> > > > stream from the new clip is selected and the default rule (generally highest \
> > > > bitrate) is subscribed.  So the client starts getting different bitrate data \
> > > > resulting in re-buffering. 
> > > > Modified code so that the stream subscribed by client is subscribed again on \
> > > > the new stream after switching. 
> > > > Files Affected
> > > > ==============
> > > > server/engine/inputsource/asmstreamfilter.cpp
> > > > server/engine/session/clientsession.cpp
> > > > 
> > > > Testing Performed
> > > > =================
> > > > Unit Tests: n/a
> > > > 
> > > > Integration Tests:
> > > > Tested with switching between 3 multirate rm contents.
> > > > Tested with switching between 3 singlerate rm contents.
> > > > 
> > > > Leak Tests:
> > > > Tested with switching between 3 multirate rm contents.
> > > > Tested with switching between 3 singlerate rm contents.
> > > > Added a HX_RELEASE to resolve a leak that was detected
> > > > 
> > > > Performance Tests: n/a
> > > > 
> > > > Build verified: win32-i386-vc7
> > > > 
> > > > Platforms tested: Win32
> > > > 
> > > > QA Hints
> > > > ===============
> > > > None
> > > > 
> > > > Regards,
> > > > Yadnesh
> > > > 

Index: clientsession.cpp
===================================================================
RCS file: /cvsroot/server/engine/session/clientsession.cpp,v
retrieving revision 1.72.2.40
retrieving revision 1.72.2.41
diff -u -d -r1.72.2.40 -r1.72.2.41
--- clientsession.cpp	18 Apr 2008 01:23:53 -0000	1.72.2.40
+++ clientsession.cpp	18 Apr 2008 10:48:39 -0000	1.72.2.41
@@ -5711,11 +5711,20 @@
 
 HX_RESULT ClientSession::ConfigureSourceFCSSpecific()
 {
-    // A hack for bubbler only. For multistream clips, we will need to different \
                things
-    // for ppm and mdp. For ppm, we need to subscribe to the rules indicated by the
-    // clients. For mdp, we need to get the RateDesc from the old source, and set it
-    // in the new source.
-    return HandleDefaultSubscription();
+    // For PPM, we need to subscribe to the rules indicated by the
+    // clients. This routine is not executed for MDP
+    HX_RESULT status = HXR_OK;
+
+    IHXUberStreamManager* pUberStreamMgr = NULL;
+    status = m_pSourceControl->QueryInterface(IID_IHXUberStreamManager,
+                                            (void**)&pUberStreamMgr);
+    if(SUCCEEDED(status))
+    {
+        status = pUberStreamMgr->CommitInitialAggregateRateDesc();
+    }
+
+    HX_RELEASE(pUberStreamMgr);
+    return status;
 }
 #endif //HELIX_FEATURE_SERVER_FCS
 


_______________________________________________
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