List Info

Thread: CR:metadata engine - part I




CR:metadata engine - part I
user name
2006-09-19 02:35:33
Ashish:

Here are my comments:

1) common/fileio/symbian.pcf - separate project.AddSources()
   (each call with one file each) should be combined into
one
   AddSources call (with each file separated by comma)

2) common/include/ihxmmfdatasource.h

   It's not a good idea to pass a CHXString& through
   an interface, as it ties an implementation (CHXString)
   to an interface, which is supposed to be implementation-
   independent. Plus it introduces all kinds of new
dependencies.
   I would either replace the CHXString in the
GetStringAttribute
   method with a const char* or better yet, an IHXBuffer*.

3) datatype/tools/dtdriver/engine/pub/ffdriver.h (and other
places):

   I think the inclusion of the recognizer inside dtdrive
   is a useful feature and should not necessarily be tied
   to the meta-data engine. Perhaps you could come up with
   another HELIX_FEATURE_xxxx which solely meant
"include
   the recognizer in the dtdrive engine". My
suggestion for
   the name of this feature would be:
HELIX_FEATURE_DTDR_USE_RECOGNIZER

   Make sure we can build dtdrive with just
HELIX_FEATURE_DTDR_USE_RECOGNIZER
   defined OR with both HELIX_FEATURE_DTDR_USE_RECOGNIZER
and
   HELIX_FEATURE_METADATAENG defined.

Rest of these changes in Part I look good. I'll respond to
the other
emails separately.

Eric

==============================================
Eric Hyche (ehychereal.com)
Technical Lead
Embedded Player and Technologies
RealNetworks, Inc. 


> -----Original Message-----
> From: client-dev-bounceshelixcommunity.org 
> [mailto:client-dev-bounceshelixcommunity.org] On
Behalf Of 
> Ashish.As.Guptanokia.com
> Sent: Monday, September 18, 2006 4:53 PM
> To: client-devhelixcommunity.org; 
> common-devhelixcommunity.org; 
> datatype-devhelixcommunity.org; ribosome-devhelixcommunity.org
> Subject: [Client-dev] CR:metadata engine - part I
> 
> Note: this part only contains the diff files. 
> 
> Metadata engine based on dtdriver 
> 
> "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: ashish.as.guptanokia.com 
> 
> Reviewed by: 
> 
> Date: 09-13-2006. 
> 
> Error ID: Req Id: 102-4619 
> 
> Project: Helix plugin for Symbian 
> 
> Synopsis: Metadata engine based on dtdriver 
> 
> This CR includes following components/modules 
> 
> CHXMetadatautility: A simple utility to open a
datasource 
> (file name, descriptor, RFile). API is defined in 
> hxmetadatautil.h. It provides the simple API to read
the 
> metadata. It is delivered as part of
hxmetadatautil.lib. 
> CHXMetaDatautility is the only component that is
exported 
> from the Helix. 
> 
> CHXMetaDataEngBase:: Base class for metadata engine. It

> interfaces with DTDRiver and implements
IHXSourceHandler interface.
> 
> CHXMetaDataEng:: Derived from CHXMetaDataEngBase,
generic 
> (non-symbian specific) metadata engine. 
> 
> CHXSymbianMetaDataEng:: Derived from
CHXMetaDataEngBase, 
> symbian specific metadata engine. 
> 
> Changes to DTDriver: 
> ---------------------------- 
> 
> 1. Use of recognizer for the determining the mime type.
 
> Following new states are added. 
>     State_RecognizeFormat, 
>     State_RecognizeFormatDone, 
>     State_RecognizeFormatPending, 
> 
> 2. non const data removed from the dll. 
> 
> 3. All the calls to logging functions (e.g.
ReportError) are 
> replaced with the corresponding newly added macros
(e.g. 
> DT_REPORTERROR). A new config is added
> 
> HELIX_CONFIG_DTDR_DISABLE_LOGGING. This compiles out
all the 
> logging. Saves about 5KB image size. 
> 
> 4. An option FILERECOGNITION_OPTION_NAME is added. This

> triggers the call to recognition. 
> 
> 5. Minicntx allows prefs to be overridden. 
> 
> 6. Minicntx QIs for IHXRequestContext. If successful,
it QIs 
> for requester object using
IHXRequestContext::GetRequester. 
> This requester is passed to 
> 
> CHXRequest object in SetRequester call. 
> 
> 7. Other changes to compile minicntx, dtdriver on
symbian. 
> 
> Changes to common/fileio. 
> 
> 1. A datasource factory has been added to create the 
> datasources (implements IHXMMFDataSource). 
> CHXDataSourceMMFClip, CHXDataSourceCContent, 
> CHXDataSourceDescriptor are the datasources defined. 
> CHXDataSource implements the base class functionality.
> 
> 2. CHXDataSourceCContent uses CAF for supporting the
DRM 
> content. CHXDataSourceDescriptor provides the support
to read 
> the media data from descriptors.
> 
> 3. CHXMediaSource, a struct, passed to
CHXDataSourceFactory 
> to create the desired data source object. This enables
the 
> metadata APIs to be kept platform independent.
> 
> 
> Additions to IHXMMFDataSource API. 
> ------------------------------------------------------ 
> 
> Following new methods are added to IHXMMFDataSource API
to 
> support DCF headers for protected contents. 
> 
> STDMETHOD(GetStringAttribute)(THIS_ UINT32 ulAttibute, 
>                           CHXString &sValue) PURE; 
> STDMETHOD(GetAttribute)(THIS_ INT32 ulAttribute, 
>                            INT32 &ulValue) PURE; 
> 
> STDMETHOD(GetSize)  (THIS_ UINT32 &ulSize) PURE; 
> 
> Changes to Symbian Recognizer: 
> ---------------------------------------------- 
> 
> Symbian recognizer has been changed so that it doesn't
call 
> the system recognizer when it is used as part of the
metadata 
> engine that could result
> 
> in infinite loop when metadata engine itself is used
from the 
> system recognizer. 
> 
> Metadata Engine. 
> ------------------------ 
> 
> Metadata engine depends on the dtdriver for reading the

> metadata. A symbian specific utility is provided to
read the 
> metadata from the metadata engine.
> 
> Metadata engine receives the file header and stream
headers 
> from FFDriver and stores them in the m_MetadataList. 
> CHXMetaDataEntry represents one single
> 
> metadata entry. Entries can be read by the caller by
Calling 
> CHXMetaDataEngBase::GetMetaDataAt. 
> 
> Symbian metadata engine performs setup that includes
global 
> manager, symbian dll map, MiniCCF, Prefs, Global Access
Paths.
> 
> 
> Testing: 
> 
> Tests were performed on ARMV5 and CW for RFile,
filename and 
> descriptor based metadata reading. Real and 3GPP
contents were used.
> 
> DRM protected files have also been tested. TestRMPlayer
has 
> been modified to include a new option for testing the
metadata.
> 
> Memory leak testing has been done for MediaPlayer and
CW has 
> been used to make sure that all the objects are
destroyed. 
> 
> 
> Files Modified: 
> 
> datatype/tools/dtdriver/common/reporterror.cpp 
> datatype/tools/dtdriver/common/pub/reporterror.h 
> datatype/tools/dtdriver/engine/Umakefil 
> datatype/tools/dtdriver/engine/csrchdlrstackfact.cpp 
> datatype/tools/dtdriver/engine/ffdriver.cpp 
> datatype/tools/dtdriver/engine/pub/ffdriver.h 
> datatype/tools/minicntx/minicntx.cpp 
> datatype/tools/minicntx/pub/minicntx.h 
> 
> common/fileio/symbian.pcf 
> common/fileio/platform/symbian/hxdatasourcemmfclip.cpp 
>
common/fileio/pub/platform/symbian/hxdatasourcemmfclip.h 
> 
> common/system/symbian.pcf 
> common/system/pub/recognizer.h 
> common/system/recognizer.cpp 
> common/system/platform/symbian/symbianrecognizer.cpp 
> 
> build/umakepf/helix-client-s60-32-common.pfi 
> 
> client/build/BIF/hxclient_2_1_0_cayennes.bif 
> common/build/BIF/helix.bif 
> 
> clientapps/symbianMmf/videocontroller/installMmf.pcf 
> 
> Files Added: 
> 
> common/fileio/pub/hxmediasource.h. 
> 
>
common/fileio/pub/platform/symbian/hxdatasource_factory.h 
> common/fileio/pub/platform/symbian/hxdatasource.h 
>
common/fileio/pub/platform/symbian/hxdatasource_descriptor.h

>
common/fileio/pub/platform/symbian/hxdatasource_ccontent.h 
> 
> common/fileio/platform/symbian/hxdatasource_factory.cpp

> common/fileio/platform/symbian/hxdatasource.cpp 
>
common/fileio/platform/symbian/hxdatasource_descriptor.cpp 
>
common/fileio/platform/symbian/hxdatasource_ccontent.cpp 
> 
> datatype/tools/metadataeng/engine/ 
> datatype/tools/metadataeng/Umakefil 
> datatype/tools/metadataeng/engine/symbian.pcf 
> datatype/tools/metadataeng/engine/dlliids.cpp 
> datatype/tools/metadataeng/engine/hxdll.cpp 
> datatype/tools/metadataeng/engine/hxmetadataeng.uid.cpp

> datatype/tools/metadataeng/engine/metadataeng.cpp 
> datatype/tools/metadataeng/engine/metadataengbase.cpp 
> datatype/tools/metadataeng/engine/hxdll.h 
> datatype/tools/metadataeng/engine/metadataeng.h 
> datatype/tools/metadataeng/engine/pub/metadataengbase.h

> datatype/tools/metadataeng/engine/pub/hxmetadatalog.h  
>
datatype/tools/metadataeng/engine/pub/platform/symbian/symbi
an
> _metadataeng.h 
>
datatype/tools/metadataeng/engine/platform/symbian/symbian_m
et
> adataeng.cpp 
>
datatype/tools/metadataeng/engine/platform/symbian/hxmddefin
es.h 
> 
>
datatype/tools/metadataeng/engine/platform/symbian/hxmetadat
a_
> dlls.txt      Dlls to be loaded by plugin manager. 
> datatype/tools/metadataeng/common/pub/hxmetadata.h     
      
>               CHXMetaDataEntry. 
> datatype/tools/metadataeng/common/pub/hxmetadatakeys.h 
      
>               enums for metadata. 
> datatype/tools/metadataeng/utility/Umakefil 
> datatype/tools/metadataeng/utility/symbian.pcf 
>
datatype/tools/metadataeng/utility/platform/symbian/hxmetada
ta
> util.cpp 
>
datatype/tools/metadataeng/utility/platform/symbian/hxmetada
tautil.h 
> 
> 
> build/umakepf/helix-dtdr-local-reader.pfi 
> build/umakepf/helix-s60-metadataengine.pfi 
> build/umakepf/helix-s60-metadataengine.pf 
> 
> Files Exported: 
> 
> datatype/tools/metadataeng/common/pub/hxmetadatakeys.h 
>
datatype/tools/metadataeng/utility/[target]/hxmetadatautil.l
ib 
>
datatype/tools/metadataeng/utility/platform/symbian/hxmetada
tautil.h 
> 
> 
> Image Size and Heap Use impact: Minor. No heap impact.
109KB 
> metadata engine dll. 
> 
> Platforms and Profiles Build Verified: 
> helix-client-s60-mmf-mdf-arm,
helix-client-s60-32-mmf-mdf-arm 
> 
> Platforms and Profiles Functionality verified: armv5,
winscw 
> 
> Branch: head, hxclient_2_1_0_cayennes 
> <<client_core_diff.txt>>
<<client_build_BIF_diff.txt>> 
> <<build_umakepf_diff.txt>> 
> <<datatype_tools_minicntx_diff.txt>> 
> <<datatype_tools_dtdriver_engine_diff.txt>>

> <<datatype_tools_dtdriver_common_diff.txt>>

> <<common_system_diff.txt>>
<<common_include_diff.txt>> 
> <<common_fileio_diff.txt>>
<<common_build_BIF_diff.txt>> 
> 
> 
> 


_______________________________________________
Common-dev mailing list
Common-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/comm
on-dev
[1]

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