[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-clientapps-dev
Subject: [Clientapps-dev] CR: ou1cimx1#838053: Videos: Black frame or
From: <ext-debashis.2.panigrahi () nokia ! com>
Date: 2011-08-26 5:35:20
Message-ID: 099BCA98809A10489DC52CB686AA736402B8C7 () 008-AM1MPN1-022 ! mgdnok ! nokia ! com
[Download RAW message or body]
"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-debashis.2.panigrahi@nokia.com
Reviewed by: girish.shetty@nokia.com
TSW Id: ou1cimx1#838053
Date: 08/25/2011
Project: SymbianMmf_wm
Synopsis: Videos: Black frame or "System: System error" is displayed if seeking \
after returning from background
Overview: This change will only address the system error. Other issues like 'black \
frame' and playback not resuming after seek are due to GOOM, which takes more time to \
free the memory (Ref: Case 888697 and Case 887257). It is a special case where play \
is getting called after DevVideo Restored event, while DevVideo is unable to get last \
frame for the Post Processor. This causes the state controller to remove the display \
surface thinking it as the temporary surface that's get created to display the last \
frame after seek. All this happens because both 'm_resourceLost' and \
'm_bSurfaceCreated' flags are set before play is called. When the surface handler \
queries for buffers for posting the frame, its unable to get it and a fatal error \
(KErrArgument) is raised from PP, which propagates as System Error.
Fix: Clearing the 'm_resourceLost' flag on getting Device Restored event from \
DevVideo. This will prevent RemoveSurface() from getting called, if it is not needed. \
This change was done before but was removed as no CR was associated with it. Also \
made some minor changes related to setting of HXBOOL's.
Files modified & changes:
/cvsroot/clientapps/symbianMmf/hxmmfstatectrl.cpp
Image Size and Heap Use impact: No major impact
Module Release testing (STIF): Yes
Test case(s) Added: No
Memory leak check performed: Passed, No additional leaks introduced.
Platforms and Profiles Build Verified: helix-client-s60-52-mmf-mdf-dsp
Platforms and Profiles Functionality verified: armv5
Branch: 420Brizo and HEAD
Diff:
cvs diff: Diffing .
Index: hxmmfstatectrl.cpp
===================================================================
RCS file: /cvsroot/clientapps/symbianMmf/hxmmfstatectrl.cpp,v
retrieving revision 1.32.12.17
diff -u -w -r1.32.12.17 hxmmfstatectrl.cpp
--- hxmmfstatectrl.cpp 23 Jun 2011 23:21:27 -0000 1.32.12.17
+++ hxmmfstatectrl.cpp 25 Aug 2011 06:29:50 -0000
@@ -357,7 +357,12 @@
if(ulHXCode == HXR_DEVVIDEO_RESOURCE_LOST)
{
HXLOGL2(HXLOG_SMMF, "HXMMFStateCtrl::ErrorOccurred() Resource Loss");
- m_resourceLost = true;
+ m_resourceLost = TRUE;
+ }
+ else if(ulHXCode == HXR_DEVVIDEO_RESOURCE_RESTORED)
+ {
+ HXLOGL2(HXLOG_SMMF, "HXMMFStateCtrl::ErrorOccurred() Resource Restored");
+ m_resourceLost = FALSE;
}
//
@@ -482,8 +487,8 @@
, m_pRegistry(NULL)
, m_pTitleChangeObs(NULL)
, m_pAuthorChangeObs(NULL)
- , m_resourceLost(false)
- , m_bEnablePausedLoadingStatus(false)
+ , m_resourceLost(FALSE)
+ , m_bEnablePausedLoadingStatus(FALSE)
, m_clientTid(0)
, m_bSurfaceCreated(FALSE)
#ifdef HELIX_FEATURE_POWER_SAVE
@@ -810,7 +815,7 @@
void
HXMMFStateCtrl::OnPlaying()
{
- m_resourceLost = false;
+ m_resourceLost = FALSE;
if ( m_pObserver )
m_pObserver->OnPlaying();
}
_______________________________________________
Clientapps-dev mailing list
Clientapps-dev@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/clientapps-dev
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic