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

List:       helix-server-cvs
Subject:    [Server-cvs] engine/inputsource asmstreamfilter.cpp, 1.38.6.3,
From:       yphadke () helixcommunity ! org
Date:       2008-02-26 8:27:41
Message-ID: 200802260827.m1Q8RnHG014890 () mailer ! progressive-comp ! com
[Download RAW message or body]

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

Modified Files:
      Tag: SERVER_12
	asmstreamfilter.cpp asmstreamfilter.h uberstreammgr.cpp 
	uberstreammgr.h 
Log Message:

Oh no, duh, this is where we are signaled due to watermark and are
switching to the checking mode, so this is the right fix. Be sure to
test 3gp content over RTP with 3gpp-adaptation.

Okay with 3gpp-adaptation testing if not done already.

Jamie


Jamie Gordon wrote:
> This does not seem right - we should not be trying a confirmed upshift
> until we've reached the rate required for the next stream, and the rate
> we've reached at the point of the call is m_fLastReceiveRate, right?
> 
> -j
> 
> Yadnesh Phadke wrote:
> > 
> > Synopsis
> > ========
> > CR: Fixes PR #213388: unblocking rate manager does not consider all rates for \
> > shifting (as streaming rate targets) 
> > Branches: SERVER_CURRENT_RN, SERVER_12_RN
> > Suggested Reviewer: Anyone
> > 
> > Description
> > ===========
> > The unblocking rate manager gets the stream rate closest to and <= the calculated \
> > stream throughput.  This will prevent upshifting to intermediate rates even if \
> > bandwidth is available. 
> > Fix:
> > ===============
> > Modified code to get next higher stream rate instead of stream rate closest to \
> > the calculated stream throughput. 
> > Files Affected
> > ==============
> > server-restricted/qos/session/qos_sess_pktqueue.cpp
> > server/engine/inputsource/asmstreamfilter.cpp
> > server/engine/inputsource/asmstreamfilter.h
> > server/engine/inputsource/pub/isifs.h
> > server/engine/inputsource/uberstreammgr.cpp
> > server/engine/inputsource/uberstreammgr.h
> > server/qos/transport/qos_tran_cc.cpp
> > 
> > Testing Performed
> > =================
> > Unit Tests: n/a
> > 
> > Integration Tests:
> > Played RM and 3GP content
> > with EnableStepwiseUpshift="1", stepwise upshift is seen.
> > with EnableStepwiseUpshift="0", stream rates are skipped as expected.
> > 
> > Leak Tests: n/a
> > 
> > Performance Tests: n/a
> > 
> > Build verified: win32-i386-vc7
> > 
> > Platforms tested: n/a
> > 
> > QA Hints
> > ===============
> > None
> > 
> > Regards,
> > Yadnesh
> > 

Index: uberstreammgr.h
===================================================================
RCS file: /cvsroot/server/engine/inputsource/uberstreammgr.h,v
retrieving revision 1.30.14.2
retrieving revision 1.30.14.3
diff -u -d -r1.30.14.2 -r1.30.14.3
--- uberstreammgr.h	22 Feb 2008 08:27:42 -0000	1.30.14.2
+++ uberstreammgr.h	26 Feb 2008 08:27:37 -0000	1.30.14.3
@@ -140,6 +140,7 @@
     STDMETHOD(GetCurrentStreamGroupRateDesc)(THIS_ UINT32 ulStreamGroupNum, \
                REF(IHXRateDescription*)pRateDesc);
     STDMETHOD(CommitInitialStreamGroupRateDesc) (THIS_ UINT32 ulStreamGroupNum);
     STDMETHOD_(BOOL,IsInitalStreamGroupRateDescCommitted) (THIS_ UINT32 \
ulStreamGroupNum); +    STDMETHOD(GetNextSwitchableRateDesc)(THIS_ \
REF(IHXRateDescription*)pRateDesc);  
     STDMETHOD(UpshiftStreamGroup)   (THIS_ UINT32 ulStreamGroupNum,
                                     UINT32 ulRate,

Index: asmstreamfilter.h
===================================================================
RCS file: /cvsroot/server/engine/inputsource/asmstreamfilter.h,v
retrieving revision 1.23.6.1
retrieving revision 1.23.6.2
diff -u -d -r1.23.6.1 -r1.23.6.2
--- asmstreamfilter.h	22 Feb 2008 08:27:42 -0000	1.23.6.1
+++ asmstreamfilter.h	26 Feb 2008 08:27:37 -0000	1.23.6.2
@@ -175,6 +175,7 @@
     STDMETHOD(GetCurrentStreamGroupRateDesc)(THIS_ UINT32 ulStreamGroupNum, \
                REF(IHXRateDescription*)pRateDesc);
     STDMETHOD(CommitInitialStreamGroupRateDesc) (THIS_ UINT32 ulStreamGroupNum);
     STDMETHOD_(BOOL,IsInitalStreamGroupRateDescCommitted) (THIS_ UINT32 \
ulStreamGroupNum); +    STDMETHOD(GetNextSwitchableRateDesc)(THIS_ \
REF(IHXRateDescription*)pRateDesc);  
     STDMETHOD(UpshiftStreamGroup)   (THIS_ UINT32 ulStreamGroupNum, 
                                     UINT32 ulRate, 

Index: asmstreamfilter.cpp
===================================================================
RCS file: /cvsroot/server/engine/inputsource/asmstreamfilter.cpp,v
retrieving revision 1.38.6.3
retrieving revision 1.38.6.4
diff -u -d -r1.38.6.3 -r1.38.6.4
--- asmstreamfilter.cpp	22 Feb 2008 08:27:42 -0000	1.38.6.3
+++ asmstreamfilter.cpp	26 Feb 2008 08:27:37 -0000	1.38.6.4
@@ -1554,6 +1554,19 @@
     return m_pUberMgr->SetDownshiftOnFeedbackTimeoutFlag(bFlag);
 }
 
+STDMETHODIMP
+CASMStreamFilter::GetNextSwitchableRateDesc(REF(IHXRateDescription*)pRateDesc)
+{
+    // Validate state
+    if (!m_pUberMgr)
+    {
+        HX_ASSERT(FALSE);
+        return HXR_FAIL;
+    }
+
+    return m_pUberMgr->GetNextSwitchableRateDesc(pRateDesc);
+}
+
 /////////////////////////////////////////////////////////////////////////
 // Method:
 //  CASMStreamFilter::UpshiftAggregate

Index: uberstreammgr.cpp
===================================================================
RCS file: /cvsroot/server/engine/inputsource/uberstreammgr.cpp,v
retrieving revision 1.44.14.5
retrieving revision 1.44.14.6
diff -u -d -r1.44.14.5 -r1.44.14.6
--- uberstreammgr.cpp	22 Feb 2008 08:27:42 -0000	1.44.14.5
+++ uberstreammgr.cpp	26 Feb 2008 08:27:37 -0000	1.44.14.6
@@ -1318,7 +1318,7 @@
 	// If an appropriate bitrate couldn't be found, just get the next highest bitrate
 	if (FAILED(res))
 	{
-	    res = m_cUberContainer.GetNextSwitchableRateDesc(pBandwidthGrouping);
+	    res = GetNextSwitchableRateDesc(pBandwidthGrouping);
 	}
 
 	// Couldn't find an appropriate rate desc
@@ -1768,6 +1768,26 @@
 
 /////////////////////////////////////////////////////////////////////////
 // Method:
+//  CUberStreamManager::GetNextSwitchableRateDesc
+// Purpose:
+//  Gets the next switchable rate description
+STDMETHODIMP
+CUberStreamManager::GetNextSwitchableRateDesc(REF(IHXRateDescription*)pRateDesc)
+{
+    HX_RESULT res = HXR_OK;
+
+    if (!m_bInitialRateDescCommitted)
+    {
+	HX_ASSERT(FALSE);
+	return HXR_FAIL;
+    }
+    
+    res = m_cUberContainer.GetNextSwitchableRateDesc(pRateDesc);
+    return res;
+}
+
+/////////////////////////////////////////////////////////////////////////
+// Method:
 //  CUberStreamManager::IsInitalStreamGroupRateDescCommitted
 // Purpose:
 //  Downshifts stream group
@@ -1786,6 +1806,7 @@
     return m_ppStreamGroup[ulStreamGroupNum]->IsInitalRateDescCommitted();
 }
 
+
 /////////////////////////////////////////////////////////////////////////
 // Method:
 //  CUberStreamManager::CreateBandwidthGrouping


_______________________________________________
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