[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