Thanks
This has been checked into HEAD and CAY210S
- Anshuman
>-----Original Message-----
>From: common-dev-bounces helixcommunity.org
>[mailto:common-dev-bounces helixcommunity.org] On
Behalf Of ext Eric
>Hyche
>Sent: Tuesday, March 13, 2007 8:52 AM
>To: Tewari Anshuman (Nokia-TP-MSW/Dallas);
>datatype-dev-bounces helixcommunity.org;
gwright real.com
>Cc: common-dev lists.helixcommunity.org;
>datatype-dev helixcommunity.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 (ehyche real.com)
>Technical Lead
>RealNetworks, Inc.
>
>> -----Original Message-----
>> From: anshuman.tewari nokia.com
[mailto:anshuman.tewari nokia.com]
>> Sent: Monday, March 12, 2007 6:49 PM
>> To: datatype-dev-bounces helixcommunity.org;
>> gwright real.com; ehyche real.com
>> Cc: common-dev lists.helixcommunity.org;
>> datatype-dev helixcommunity.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-bounces helixcommunity.org
>> [mailto:datatype-dev-bounces helixcommunity.org]
>> Sent: Friday, March 09, 2007 1:24 PM
>> To: gwright real.com; ehyche real.com
>> Cc: common-dev lists.helixcommunity.org;
>> datatype-dev helixcommunity.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-bounces helixcommunity.org
>> >[mailto:common-dev-bounces helixcommunity.org] On Behalf Of
>ext Greg
>> >Wright
>> >Sent: Friday, March 09, 2007 11:41 AM
>> >To: ehyche real.com
>> >Cc: common-dev lists.helixcommunity.org;
>> >datatype-dev helixcommunity.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 (ehyche real.com)
>> >> Technical Lead
>> >> RealNetworks, Inc.
>> >>
>> >>> -----Original Message-----
>> >>> From: datatype-dev-bounces helixcommunity.org
>> >>> [mailto:datatype-dev-bounces helixcommunity.org] On Behalf Of
>> >>> anshuman.tewari nokia.com
>> >>> Sent: Friday, March 09, 2007 11:00 AM
>> >>> To: datatype-dev helixcommunity.org;
>> >>> common-dev lists.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.tewari nokia.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-dev helixcommunity.org
>> >> http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
>> >
>> >
>>
>_______________________________________________
>> >Common-dev mailing list
>> >Common-dev helixcommunity.org
>> >http://lists.helixcommunity.org/mailman/listinfo/comm
on-dev
>> >
>>
>> _______________________________________________
>> Datatype-dev mailing list
>> Datatype-dev helixcommunity.org
>> http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
>>
>
>
>_______________________________________________
>Common-dev mailing list
>Common-dev helixcommunity.org
>http://lists.helixcommunity.org/mailman/listinfo/comm
on-dev
>
_______________________________________________
Datatype-dev mailing list
Datatype-dev helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
|