List Info

Thread: CN: Changes to get WindowsMediaASF file Formatcompiled on S60 3.2 platform [RVCT & WI




CN: Changes to get WindowsMediaASF file Formatcompiled on S60 3.2 platform [RVCT & WI
user name
2007-04-07 16:30:45
 Thanks
This has been checked into HEAD and CAY210S 
- Anshuman


>-----Original Message-----
>From: common-dev-bounceshelixcommunity.org
>[mailto:common-dev-bounceshelixcommunity.org] On
Behalf Of ext Eric 
>Hyche
>Sent: Tuesday, March 13, 2007 8:52 AM
>To: Tewari Anshuman (Nokia-TP-MSW/Dallas); 
>datatype-dev-bounceshelixcommunity.org;
gwrightreal.com
>Cc: common-devlists.helixcommunity.org;
>datatype-devhelixcommunity.org
>Subject: RE: [Common-dev] Re: [datatype-dev] CR: Changes
to get 
>WindowsMediaASF file Formatcompiled on S60 3.2 platform
[RVCT & WINSCW]
>
>
>Ok - sounds good.
>
>=============================================
>Eric Hyche (ehychereal.com)
>Technical Lead
>RealNetworks, Inc.  
>
>> -----Original Message-----
>> From: anshuman.tewarinokia.com
[mailto:anshuman.tewarinokia.com]
>> Sent: Monday, March 12, 2007 6:49 PM
>> To: datatype-dev-bounceshelixcommunity.org;
>> gwrightreal.com; ehychereal.com
>> Cc: common-devlists.helixcommunity.org;
>> datatype-devhelixcommunity.org
>> Subject: RE: [Common-dev] Re: [datatype-dev] CR:
Changes to get 
>> Windows MediaASF file Formatcompiled on S60 3.2
platform [RVCT & 
>> WINSCW]
>> 
>> Hi,
>> This wasn't a compiler or a linker problem. Both
variations
>result in
>> successful compilation with the RVCT compiler.
>> As a final step of symbian build for asfff.dll -
elftran failed with 
>> an error message
>> 	ERROR: Dll 'armv5-rel32asfff.dll' has initialised
data
>> 
>> The issue was that the dll has global writeable
static data. 
>> 
>> These were the writeable static data reported while
creating the 
>> asfff.dll [from the asfff.dll.map]
>> 
>>     CHXASFGUIDEnumMap::m_pObjectMap         
0x00400000   Data
>> 720  asf_guid_enum_map.o(.data)
>>     CHXASFGUIDEnumMap::m_pStreamMap         
0x004002d0   Data
>> 160  asf_guid_enum_map.o(.data)
>>     CHXASFGUIDEnumMap::m_pErrorCorrectionMap
0x00400370   Data
>> 60  asf_guid_enum_map.o(.data)
>>     CHXASFGUIDEnumMap::m_pMutualExclusionMap
0x004003ac   Data
>> 80  asf_guid_enum_map.o(.data)
>>     CHXASFGUIDEnumMap::m_pBandwidthSharingMap
0x004003fc   Data
>> 60  asf_guid_enum_map.o(.data)
>>     CHXASFGUIDEnumMap::m_pPayloadExtensionSystemMap
0x00400438   Data
>> 140  asf_guid_enum_map.o(.data)
>> 
>> 
>> If we change the type to REFHXASFGUID (const
HXASFGUID & )
>these moved
>> to the .constdata section.
>> This is allowed for Symbian Dlls so there was no
error from elftran
>> 
>> 
>>     CHXASFGUIDEnumMap::m_pObjectMap         
0x00022144   Data
>> 288  asf_guid_enum_map.o(.constdata)
>>     CHXASFGUIDEnumMap::m_pStreamMap         
0x00022264   Data
>> 64  asf_guid_enum_map.o(.constdata)
>>     CHXASFGUIDEnumMap::m_pErrorCorrectionMap
0x000222a4   Data
>> 24  asf_guid_enum_map.o(.constdata)
>>     CHXASFGUIDEnumMap::m_pMutualExclusionMap
0x000222bc   Data
>> 32  asf_guid_enum_map.o(.constdata)
>>     CHXASFGUIDEnumMap::m_pBandwidthSharingMap
0x000222dc   Data
>> 24  asf_guid_enum_map.o(.constdata)
>>     CHXASFGUIDEnumMap::m_pPayloadExtensionSystemMap
0x000222f4   Data
>> 56  asf_guid_enum_map.o(.constdata)
>> 
>> 
>> Also I will incorporate the following suggestion:
>> UINT16 j declaration should be removed from the for
statement.
>> 
>> 
>> - Thanks
>> Anshuman
>> 
>> 
>> -----Original Message-----
>> From: datatype-dev-bounceshelixcommunity.org
>> [mailto:datatype-dev-bounceshelixcommunity.org]
>> Sent: Friday, March 09, 2007 1:24 PM
>> To: gwrightreal.com; ehychereal.com
>> Cc: common-devlists.helixcommunity.org;
>> datatype-devhelixcommunity.org
>> Subject: RE: [Common-dev] Re: [datatype-dev] CR:
Changes to get 
>> Windows MediaASF file Formatcompiled on S60 3.2
platform [RVCT & 
>> WINSCW]
>> 
>>  
>> 
>> >-----Original Message-----
>> >From: common-dev-bounceshelixcommunity.org
>> >[mailto:common-dev-bounceshelixcommunity.org] On Behalf Of
>ext Greg
>> >Wright
>> >Sent: Friday, March 09, 2007 11:41 AM
>> >To: ehychereal.com
>> >Cc: common-devlists.helixcommunity.org;
>> >datatype-devhelixcommunity.org
>> >Subject: [Common-dev] Re: [datatype-dev] CR:
Changes to get Windows 
>> >Media ASF file Formatcompiled on S60 3.2
platform [RVCT & WINSCW]
>> >
>> >Eric Hyche wrote:
>> >>> 	 -40,7 +40,7 
>> >>> 	  
>> >>> 	 typedef struct
_HXASFGUIDEnumMapEntry 
>> >>> 	 { 
>> >>> 	-    HXASFGUID m_guidEntry; 
>> >>> 	+    REFHXASFGUID m_guidEntry; 
>> >>> 	     UINT16    m_usEnumEntry; 
>> >>> 	 }
>> >> 
>> >> What was the compiler's problem that made
this change necessary?
>> >
>> >If REFHXASFGUID is really a reference, this is
illegal
>> >c++. You *have* to initialize real references,
like "int& a".
>> 
>> It is a typedef, a new datatype definition. No new
object is created 
>> here. If it would have been creating an object then
reference 
>> initialization rule would have applied here.
>> 
>> Thanks
>> Ashish
>> >
>> >--greg.
>> >
>> >> 
>> >> Other than this, it looks good.
>> >> 
>> >> Eric
>> >> 
>> >> 
>> >>
=============================================
>> >> Eric Hyche (ehychereal.com)
>> >> Technical Lead
>> >> RealNetworks, Inc.  
>> >> 
>> >>> -----Original Message-----
>> >>> From: datatype-dev-bounceshelixcommunity.org
>> >>> [mailto:datatype-dev-bounceshelixcommunity.org] On Behalf Of 
>> >>> anshuman.tewarinokia.com
>> >>> Sent: Friday, March 09, 2007 11:00 AM
>> >>> To: datatype-devhelixcommunity.org; 
>> >>> common-devlists.helixcommunity.org
>> >>> Subject: [datatype-dev] CR: Changes to
get Windows Media
>ASF file
>> >>> Formatcompiled on S60 3.2 platform
[RVCT & WINSCW]
>> >>>
>> >>>
>> >>> 	"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:  anshuman.tewarinokia.com
>> >>>
>> >>> 	Reviewed by: 
>> >>>
>> >>> 	Date: 08-Mar-2007
>> >>>
>> >>> 	Project: SymbianMmf_wm
>> >>>
>> >>> 	ErrorId:  ATEI-6YMQVQ
>> >>>
>> >>> 	Synopsis:  CR: Changes to get Windows
Media ASF file
>> >Format compiled
>> >>> on S60 3.2 platform [RVCT &
WINSCW]
>> >>>
>> >>>
>> >>> 	Common Code changes: 
>> >>>
>> >>> 	common/container/nestbuf.cpp    
>> >>> 	common/container/nestbuf.h
>> >>>
>> >>> 	The current code resulted in crash on
RVCT and the WINSCW 
>> >>> environment.
>> >>> 	For the HX_RELEASE / HX_ADDREF macros
to work
>> >correctly, IUnknown (
>> >>> or its subclass)
>> >>> 	should be listed as the first base
class. This is an issue with 
>> >>> ARMCC / WINSCW compiler.
>> >>>
>> >>> 	Changed the class inheritence order
to 
>> >>> 	class CHXNestedBuffer : public
IHXBuffer, 
>> >>> 	                        public
CHXBaseCountingObject
>> >>>
>> >>>
>> >>>
>> >>> 	WM related Changes: 
>> >>>
>> >>> 	parse_asf_objects.cpp 
>> >>> 	pub/parse_asf_objects.h
>> >>>
>> >>> 	1) Make the CHXASFObject inherit from
IUnknown. Added the 
>> >>> QI/AddRef/Release functions
>> >>> 	    
>> >>> 	2) Moved the declaration of the
variable outside the for loop. 
>> >>> RVCT/WINSCW complier
>> >>> 	   limit to scope of the variable to
inside the loop. 
>> >>> This variable was being used in a 
>> >>> 	   for loop later in the same
function. Similar change
>> >exists on
>> >>> HEAD
>> >>> 	   
>> >>>
>> >>> 	asf_guid_enum_map.h
>> >>>
>> >>> 	This change was done to remove the
global static
>> >writebale data in
>> >>> the Symbian environment.
>> >>> 	The member m_guidEntry of
HXASFGUIDEnumMapEntry was
>> >changed to a
>> >>> const reference.
>> >>>
>> >>>
>> >>> 	Root Cause of the problem: 
Implementation phase
>> >>> 	  
>> >>> 	Files Modified: 
>> >>> 	common/container/nestbuff.cpp 
>> >>> 	common/container/pub/nestbuff.h 
>> >>>
	datatype/wm/common/parse_asf_objects.cpp 
>> >>>
	datatype/wm/common/pub/asf_guid_enum_map.h 
>> >>>
	datatype/wm/common/pub/parse_asf_objects.h
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> 	Image Size and Heap Use impact: no
major impact
>> >>>
>> >>> 	Module Release testing (STIF) :  Yes
>> >>>
>> >>> 	Test case(s) Added  :  N/A
>> >>>
>> >>> 	Memory leak check performed : Yes No
new leaks introduced
>> >>>
>> >>> 	Platforms and Profiles Build
Verified: 
>> >>> helix-client-s60-32-mmf-mdf-arm
>> >>>
>> >>> 	Platforms and Profiles Functionality
verified: armv5, winscw
>> >>>
>> >>> 	      Branch: Head & 210CayS
>> >>>
>> >>>
>> >>> 	Index: nestbuff.cpp
>> >>> 	
>> >>> 
>>
============================================================
=======
>> >>> 	RCS file:
/cvsroot/common/container/nestbuff.cpp,v 
>> >>> 	retrieving revision 1.6 
>> >>> 	diff -u -w -r1.6 nestbuff.cpp 
>> >>> 	--- nestbuff.cpp        9 Jul 2004
18:21:35 -0000       1.6 
>> >>> 	+++ nestbuff.cpp        9 Mar 2007
01:46:39 -0000 
>> >>> 	 -83,7 +83,7  
>> >>> 	        QInterfaceList qiList[] = 
>> >>> 	        { 
>> >>> 	                {
GET_IIDHANDLE(IID_IUnknown), this }, 
>> >>> 	-               {
GET_IIDHANDLE(IID_IHXBuffer), 
>> >>> (IHXBuffer*) this }, 
>> >>> 	+               {
GET_IIDHANDLE(IID_IHXBuffer), 
>> >>> (IUnknown*)(IHXBuffer*) this }, 
>> >>> 	        };      
>> >>> 	     return QIFind(qiList,
QILISTSIZE(qiList), riid, ppvObj); 
>> >>> 	 } 
>> >>> 	 -221,7 +221,7  
>> >>> 	         if (pNest) 
>> >>> 	         { 
>> >>> 	             // AddRef the object 
>> >>> 	-            pNest->AddRef(); 
>> >>> 	+            HX_ADDREF(pNest); 
>> >>> 	             // Init the object 
>> >>> 	             retVal =
pNest->Init(pBuffer, ulOffset, ulSize); 
>> >>> 	             if (SUCCEEDED(retVal)) 
>> >>> 	cvs diff: Diffing pub 
>> >>> 	Index: pub/nestbuff.h
>> >>> 	
>> >>> 
>>
============================================================
=======
>> >>> 	RCS file:
/cvsroot/common/container/pub/nestbuff.h,v 
>> >>> 	retrieving revision 1.3 
>> >>> 	diff -u -w -r1.3 nestbuff.h 
>> >>> 	--- pub/nestbuff.h      9 Jul 2004
18:21:27 -0000       1.3 
>> >>> 	+++ pub/nestbuff.h      9 Mar 2007
01:46:39 -0000 
>> >>> 	 -54,8 +54,8  
>> >>> 	 class                        
CHXBaseCountingObject; 
>> >>> 	 typedef _INTERFACE IHXBuffer
IHXBuffer;
>> >>> 	  
>> >>> 	-class CHXNestedBuffer : public
CHXBaseCountingObject, 
>> >>> 	-                        public
IHXBuffer 
>> >>> 	+class CHXNestedBuffer : public
IHXBuffer, 
>> >>> 	+                        public
CHXBaseCountingObject 
>> >>> 	 { 
>> >>> 	 public: 
>> >>> 	     CHXNestedBuffer(); 
>> >>> 	cvs diff: Diffing test 
>> >>> 	cvs diff: Diffing test/platform 
>> >>> 	cvs diff: Diffing
test/platform/symbian
>> >>>
>> >>>
>> >>> 	Index: parse_asf_objects.cpp
>> >>> 	
>> >>> 
>>
============================================================
=======
>> >>> 	RCS file:
/cvsroot/datatype/wm/common/parse_asf_objects.cpp,v 
>> >>> 	retrieving revision 1.4.4.1 
>> >>> 	diff -u -w -r1.4.4.1
parse_asf_objects.cpp 
>> >>> 	--- parse_asf_objects.cpp       11
Oct 2006 20:27:44 
>> >>> -0000      1.4.4.1 
>> >>> 	+++ parse_asf_objects.cpp       9 Mar
2007 01:43:38 -0000 
>> >>> 	 -433,12 +433,30  
>> >>> 	 { 
>> >>> 	 }
>> >>> 	  
>> >>> 	-UINT32 CHXASFObject::AddRef() 
>> >>> 	+STDMETHODIMP
CHXASFObject::QueryInterface( THIS_ REFIID riid,
>> >>> void** ppvObj)
>> >>> 	+{ 
>> >>> 	+    QInterfaceList  qiList[] = 
>> >>> 	+    { 
>> >>> 	+        { GET_IIDHANDLE(
IID_IUnknown ), ( IUnknown* ) this }, 
>> >>> 	+    }; 
>> >>> 	+ 
>> >>> 	+    if( QIFind( qiList,
QILISTSIZE(qiList), riid, 
>> >>> ppvObj ) == HXR_OK ) 
>> >>> 	+    { 
>> >>> 	+        return HXR_OK ; 
>> >>> 	+    } 
>> >>> 	+    else 
>> >>> 	+    { 
>> >>> 	+        *ppvObj = NULL; 
>> >>> 	+        return HXR_NOINTERFACE; 
>> >>> 	+    } 
>> >>> 	+} 
>> >>> 	+ 
>> >>> 	+STDMETHODIMP_(ULONG32)
CHXASFObject::AddRef() 
>> >>> 	 { 
>> >>> 	     return
InterlockedIncrement(&m_lRefCount); 
>> >>> 	 }
>> >>> 	  
>> >>> 	-UINT32 CHXASFObject::Release() 
>> >>> 	+STDMETHODIMP_(ULONG32)
CHXASFObject::Release() 
>> >>> 	 { 
>> >>> 	     if
(InterlockedDecrement(&m_lRefCount) > 0) 
>> >>> 	     { 
>> >>> 	 -446,10 +464,10  
>> >>> 	     }
>> >>> 	  
>> >>> 	     delete this; 
>> >>> 	- 
>> >>> 	     return 0; 
>> >>> 	 }
>> >>> 	  
>> >>> 	+ 
>> >>> 	 HX_RESULT
>> >>>
CHXASFObject::CreateASFObject(HX_ASF_Object_Type eType,
>> >>> UINT64 ullSize, UINT64 ullFileOffset,
CHXASFObject** ppObj)
>> >>>
>> >>> 	 { 
>> >>> 	     HX_RESULT retVal = HXR_FAIL; 
>> >>> 	 -3819,6 +3837,7  
>> >>> 	                     // Clear the
return value 
>> >>> 	                     retVal = HXR_OK;

>> >>> 	                     // Unpack all
the block positions 
>> >>> 	+                    UINT16 j; 
>> >>> 	                     for (UINT16 j =
0; j <
>> >m_usIndexSpecifiersCount
>> >>> && SUCCEEDED(retVal); j++)
>> >>> 	                     { 
>> >>> 	                         // Unpack
the j-th block position 
>> >>> 	cvs diff: Diffing platform 
>> >>> 	cvs diff: Diffing platform/win32 
>> >>> 	cvs diff: Diffing pub 
>> >>> 	Index: pub/asf_guid_enum_map.h
>> >>> 	
>> >>> 
>>
============================================================
=======
>> >>> 	RCS file:
/cvsroot/datatype/wm/common/pub/asf_guid_enum_map.h,v 
>> >>> 	retrieving revision 1.2 
>> >>> 	diff -u -w -r1.2 asf_guid_enum_map.h

>> >>> 	--- pub/asf_guid_enum_map.h     15
Jun 2006 14:32:06 
>> >>> -0000      1.2 
>> >>> 	+++ pub/asf_guid_enum_map.h     9 Mar
2007 01:43:38 -0000 
>> >>> 	 -40,7 +40,7 
>> >>> 	  
>> >>> 	 typedef struct
_HXASFGUIDEnumMapEntry 
>> >>> 	 { 
>> >>> 	-    HXASFGUID m_guidEntry; 
>> >>> 	+    REFHXASFGUID m_guidEntry; 
>> >>> 	     UINT16    m_usEnumEntry; 
>> >>> 	 } 
>> >>> 	 HXASFGUIDEnumMapEntry; 
>> >>> 	Index: pub/parse_asf_objects.h
>> >>> 	
>> >>> 
>>
============================================================
=======
>> >>> 	RCS file:
/cvsroot/datatype/wm/common/pub/parse_asf_objects.h,v 
>> >>> 	retrieving revision 1.3 
>> >>> 	diff -u -w -r1.3 parse_asf_objects.h

>> >>> 	--- pub/parse_asf_objects.h     15
Jun 2006 14:32:06 
>> >>> -0000      1.3 
>> >>> 	+++ pub/parse_asf_objects.h     9 Mar
2007 01:43:39 -0000 
>> >>> 	 -67,14 +67,18  
>> >>> 	 HX_RESULT GUIDToString(char* pszBuf,
UINT32 ulBufLen,
>> >REFHXASFGUID
>> >>> riid);
>> >>> 	 HX_RESULT
GetASFObjectBytesToRead(HX_ASF_Object_Type
>> >>> eType, UINT64 ullSize, UINT32*
pulBytes);
>> >>> 	  
>> >>> 	-class CHXASFObject : public
CHXBaseCountingObject 
>> >>> 	+class CHXASFObject : public
IUnknown, 
>> >>> 	+                     public
CHXBaseCountingObject 
>> >>> 	 { 
>> >>> 	 public: 
>> >>> 	     CHXASFObject(); 
>> >>> 	     virtual ~CHXASFObject() {};
>> >>> 	  
>> >>> 	-    UINT32  AddRef(); 
>> >>> 	-    UINT32  Release(); 
>> >>> 	+    // IUnknown methods 
>> >>> 	+    STDMETHOD(QueryInterface)  
(THIS_ REFIID riid, 
>> >>> void** ppvObj); 
>> >>> 	+    STDMETHOD_(ULONG32,AddRef) 
(THIS); 
>> >>> 	+    STDMETHOD_(ULONG32,Release)
(THIS); 
>> >>> 	+ 
>> >>> 	     static  HX_RESULT
>> >>> CreateASFObject(HX_ASF_Object_Type
eType, UINT64 ullSize,
>> >>> UINT64 ullFileOffset, CHXASFObject**
ppObj);
>> >>>
>> >>> 	     virtual HX_RESULT Unpack(BYTE*
pBuf, UINT32 ulLen) = 0; 
>> >>> 	     virtual void      LogInfo(); 
>> >>>
>> >>>
>> >> 
>> >> 
>> >>
_______________________________________________
>> >> Datatype-dev mailing list
>> >> Datatype-devhelixcommunity.org
>> >> http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
>> >
>> >
>>
>_______________________________________________
>> >Common-dev mailing list
>> >Common-devhelixcommunity.org
>> >http://lists.helixcommunity.org/mailman/listinfo/comm
on-dev
>> >
>> 
>> _______________________________________________
>> Datatype-dev mailing list
>> Datatype-devhelixcommunity.org
>> http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
>> 
>
>
>_______________________________________________
>Common-dev mailing list
>Common-devhelixcommunity.org
>http://lists.helixcommunity.org/mailman/listinfo/comm
on-dev
>

_______________________________________________
Datatype-dev mailing list
Datatype-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )