[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-common-cvs
Subject: [Common-cvs] fileio/pub/platform/symbian hxdatasource_ccontent.h,
From: alvarovaquero () helixcommunity ! org
Date: 2010-03-09 16:40:25
Message-ID: 201003091640.o29Geht2012869 () mailer ! progressive-comp ! com
[Download RAW message or body]
Update of /cvsroot/common/fileio/pub/platform/symbian
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv10458
Modified Files:
Tag: hxclient_4_2_0_brizo
hxdatasource_ccontent.h hxdatasource_factory.h
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: alvaro.vaquero@nokia.com
Reviewed by:
Date: 02/22/2010
Project: SymbianMmf_wm
ErrorId: PAMK-823V3J
Synopsis: Harvester Crashes
Overview:
The Harvester crash has been triggered by the asynchronous reading mode. It happens \
when multiple metadata parser instances run simultaneously and shared objects are \
still used after being destroyed by another instance. We’ve tried using \
SymbianEventHandler and ActiveSchedulerWait classes to ensure only one instance runs \
at a time, however both cases have been unsuccessful. It seems the only proper way to \
approach this problem is using a client/server architecture.
Due to time constrains and the negative impact of this error, this CR only focuses on \
fixing the crash. A new property (m_bForceSyncReading) has been added to control \
sync/async reading modes. For metadata utility this has been set to true by default. \
However, HarvesterServer does run a second instance when parsing RM clips, so in this \
case we simply return an error to avoid the crash. From the harvester point of view \
this might cause Real Audio clips to be incorrectly identified as video. Also, the \
AVI index class was using an object without checking its validity. This has been \
addressed as it caused the harvester to crash with AVI clips.
Another CR will be submitted later on addressing the client/server approach to ensure \
only one instance run at a time.
Files Added: None.
Files Modified:
/common/fileio/platform/symbian/hxdatasource_ccontent.cpp
/common/fileio/platform/symbian/hxdatasource_factory.cpp
/common/fileio/pub/platform/symbian/hxdatasource_ccontent.cpp
/common/fileio/pub/platform/symbian/hxdatasource_factory.cpp
/datatype/avi/fileformat/aviindx.cpp
/datatype/tools/metadataeng/engine/platform/symbian/symbian_metadataeng.cpp
/datatype/tools/metadataeng/engine/pub/platform/symbian/symbian_metadataeng.h
/datatype/tools/metadataeng/engine/pub/metadataengbase.h
/datatype/tools/metadataeng/engine/metadataeng.h
/datatype/tools/metadataeng/engine/metadataengbase.cpp
/filesystem/local/mini/minifileobj.cpp
Image Size and Heap Use impact: minor
Module Release testing (STIF) : Passed
Test case(s) Added : No.
Memory leak check performed : Yes. No new leaks introduced
Platforms and Profiles Build Verified: helix-client-s60-52-mmf-mdf-dsp
Platforms and Profiles Functionality verified: armv5, winscw
Branch: Cays210, Brizo420
Index: hxdatasource_factory.h
===================================================================
RCS file: /cvsroot/common/fileio/pub/platform/symbian/hxdatasource_factory.h,v
retrieving revision 1.3
retrieving revision 1.3.82.1
diff -u -d -r1.3 -r1.3.82.1
--- hxdatasource_factory.h 6 Jul 2007 20:35:21 -0000 1.3
+++ hxdatasource_factory.h 9 Mar 2010 16:40:23 -0000 1.3.82.1
@@ -60,7 +60,7 @@
{
public:
static IHXMMFDataSource* CHXDataSourceFactory::Build(
- CHXMediaSource& aMediaSource, HXBOOL bPeek=FALSE);
+ CHXMediaSource& aMediaSource, HXBOOL bPeek=FALSE, HXBOOL \
bForceSyncReading=FALSE); };
#endif // _HX_DATASOURCE_FACTORY_H_
Index: hxdatasource_ccontent.h
===================================================================
RCS file: /cvsroot/common/fileio/pub/platform/symbian/hxdatasource_ccontent.h,v
retrieving revision 1.4.82.2
retrieving revision 1.4.82.3
diff -u -d -r1.4.82.2 -r1.4.82.3
--- hxdatasource_ccontent.h 3 Nov 2009 18:47:00 -0000 1.4.82.2
+++ hxdatasource_ccontent.h 9 Mar 2010 16:40:23 -0000 1.4.82.3
@@ -95,11 +95,11 @@
public:
static CHXDataSourceCContent* Create(char* pFileName,
- HXBOOL bPeek);
+ HXBOOL bPeek, HXBOOL bForceSyncReading = FALSE);
static CHXDataSourceCContent* Create(RFile *pFileHandle,
- HXBOOL bPeek);
+ HXBOOL bPeek, HXBOOL bForceSyncReading = FALSE);
#ifdef HELIX_FEATURE_64_BIT_FILE_SUPPORT
- static CHXDataSourceCContent* Create(CData* aData,HXBOOL bPeek);
+ static CHXDataSourceCContent* Create(CData* aData,HXBOOL bPeek,HXBOOL \
bForceSyncReading = FALSE); #endif
virtual ~CHXDataSourceCContent();
#ifdef HELIX_FEATURE_64_BIT_FILE_SUPPORT
@@ -187,6 +187,7 @@
private:
CHXDataSourceCContent(HXBOOL bPeek
+ ,HXBOOL bForceSyncReading
#ifdef HELIX_FEATURE_64_BIT_FILE_SUPPORT
,TInt aPriority = EPriorityStandard
#endif
@@ -208,6 +209,7 @@
CContent* m_pContent;
CData* m_pCData;
TIntent m_intent;
+ HXBOOL m_bForceSyncReading;
_______________________________________________
Common-cvs mailing list
Common-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/common-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic