[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