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

List:       helix-datatype-cvs
Subject:    [Datatype-cvs] rm/audio/renderer rarender.cpp,1.72,1.73
From:       asheesh () helixcommunity ! org
Date:       2010-06-28 19:14:24
Message-ID: 201006281914.o5SJEMQn003751 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/datatype/rm/audio/renderer
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv18480

Modified Files:
	rarender.cpp 
Log Message:
"Nokia submits this code under the terms of a commercial contribution agreement with \
RealNetworks, and I am authorized to contribute this code under said agreement."  
Modified by: ext-asheesh.srivastava@nokia.com
 
Reviewed by: 
 
Error Id: ou1cimx1#463016
 
Date: 06/23/2010
 
Project: Phonon_backend, symbian_client_apps
 
Synopsis: PhononPlayer crashes while streaming RM clips with VBR (i.e. - raac and \
racp) streams  
Overview: When we stream RM clips with special–case VBR streams, the buffering gets \
stuck on 99% and then application crashes/freezes after a while.  
Following was seen –
Buffer manager completes the buffering up to the preroll value however the \
HXNetSource::GetStatus reports it as 99 percent because re-buffer requested by the \
renderer was not completed. CRealAudioRenderer issues OnDryNotification which cause \
HXSource to change the rebuffering status from REBUFFER_NONE -> REBUFFER_WARNING & \
then EBUFFER_WARNING -> REBUFFER_REQUIRED. HXPlayer starts pushing more packets to \
renderer. In HX_RESULT CRealAudioRenderer::_OnPacket(IHXPacket* pPacket, INT32 \
lTimeOffset), It writes data to audio service by calling DoAudio() function Then, it \
checks for m_bReportOKStatus which is true in our case means renderer has re-buffered \
the data and can report back its ReportAudioRebufferStatus.  However, it never \
reports it back because it tries to de-interleave VBR stream which is not required.  
Fix: Applied checks so that de-interleaving doesn’t not happen for VBR streams.
Please follow the attached mail for more details.  << Message: RE: \
[Nokia-private-dev] RaRenderer streaming issue >>   
 
After applying the above solution, PhononPlayer doesn’t crash anymore but re-buffers \
constantly. I am going to send a separate CR addressing this re-buffering issue.
 
Files modified & changes:
/cvsroot/datatype/rm/audio/renderer/raformat.cpp
/cvsroot/datatype/rm/audio/renderer/rarender.cpp
 
Image Size and Heap Use impact: No major impact
 
Module Release testing (STIF) : DONE
 
Test case(s) Added  : No
 
Memory leak check performed : Passed, No additional leaks introduced.
 
Platforms and Profiles Build Verified: helix-client-s60-52-ng, helix-client-symbian-4
 
Platforms and Profiles Functionality verified: armv5
 
Branch: 420Bizo and HEAD


Index: rarender.cpp
===================================================================
RCS file: /cvsroot/datatype/rm/audio/renderer/rarender.cpp,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -d -r1.72 -r1.73
--- rarender.cpp	17 Sep 2009 20:04:41 -0000	1.72
+++ rarender.cpp	28 Jun 2010 19:14:21 -0000	1.73
@@ -1810,6 +1810,8 @@
 	// we delt with the current dry notification stream above
 	if (m_pRaFormats[i]->IsActive())
 	{
+            if(!m_pRaFormats[i]->IsVBR())
+            {	
 	    UINT32 ulCurrentStartTime = 0;
 	    UINT32 ulCurrentEndTime = 0;
 
@@ -1819,6 +1821,12 @@
 	    if ((pnr == HXR_OK) && (ulCurrentStartTime != NO_TIME_SET))
 	    {
 		bRet = TRUE;
+                }
+           }
+           else
+           {
+               bRet = TRUE;
+               HXLOGL4(HXLOG_AUDI, "CRealAudioRenderer(%p)::HaveDataToWrite() \
special-case VBR (i.e. - raac and racp) streams hence no de-interleaving", this);  }
 	}
     }


_______________________________________________
Datatype-cvs mailing list
Datatype-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/datatype-cvs


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

Configure | About | News | Add a list | Sponsored by KoreLogic