[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-filesystem-dev
Subject: [Common-dev] [Clientapps-dev] [Filesystem-dev] CN: Progressive
From: <Arnel.Periquet () nokia ! com>
Date: 2006-08-25 16:45:06
Message-ID: BFF79869C65F64438F6D77AA865878E402D02B6D () daebe102 ! NOE ! Nokia ! com
[Download RAW message or body]
Checked into HEAD and HXCLIENT_2_1_0_CAYENNES.
Thanks,
Arnel
________________________________
From: ext Milko Boic [mailto:milko@real.com]
Sent: Wednesday, August 23, 2006 11:47 PM
To: Periquet Arnel (Nokia-TP-MSW/Dallas);
common-dev@helixcommunity.org; clientapps-dev@helixcommunity.org;
filesystem-dev@helixcommunity.org
Subject: Re: [Common-dev] [Clientapps-dev] [Filesystem-dev] CR:
Progressive Download Filesystem Plugin for Series 60
Two remarks:
1.) Changes to mp4 file format should not duplicate code:
#if defined(HELIX_FEATURE_PROGDOWN) ||
defined(HELIX_FEATURE_S60_PROGDOWN)
&& m_bPreferLinearAccess == FALSE
#endif // HELIX_FEATURE_PROGDOWN || HELIX_FEATURE_S60_PROGDOWN
2.) New HX_RESULT definition regarding progressive download
should be FILe related and not ENCoder. Also PD is not sufficiently
explanatory.
#define HXR_PROGRESSIVE_DOWNLOAD_TIMEOUT
MAKE_HX_RESULT(1,SS_FIL,25) // 00040099
Rest looks good.
Please check into HEAD as well.
At 04:19 PM 8/23/2006, Arnel.Periquet@nokia.com wrote:
Modified by: Arnel.Periquet@nokia.com
Reviewed by:
Date: 08-23-2006
Project: Helix plugin for Symbian
Synopsis: Progressive Download Filesystem Plugin for
Series 60
This feature provides a new filesystem plugin that
operates in conjunction with a platform specific progressive download
(PD) manager--the Nokia Series 60 Download Manager. The download manager
is assumed to be external to Helix. Also outside the scope of Helix, a
user interface component directly interacts with the download manager to
provide PD statistics and controls. In this case, the facilities for
progressive download built into the Helix system become redundant with
the facilites provided by the platform, and are therefore not used.
Helix will simply playback a PD file as a local file.
Highlights of the design are as follows:
1. A "Download ID" is passed to the MMF TLC to
distinguish progressive download from normal local file playback.
2. The "prod:" protocol scheme is used to load the new
PD file system.
3. The PD file system provides an asynchronous mechanism
for waiting for more bytes if the download is not complete but no more
data is available. We rely on the Helix engine's existing buffering
system to work with our asynchronous file system.
4. A "DownloadComplete Event" is passed to the MMF TLC
and propogated to the PD file system.
The following illustrates the architecture.
Media Player User Interface -------------------- Series
60 Download Manager
|
||
Helix MMF Top Level Client
||
|
||
Helix Engine
||
|
||
Progressive Download File System
||
|
||
Progressively Downloaded File <<<=================
Files Modified:
Build/bif-cvs/helix/client/build/BIF/hxclient_2_1_0_cayennes.bif
- define new module FILESYSTEM/PROGDOWN
Build/bif-cvs/helix/common/build/BIF/helix.bif
- define new module FILESYSTEM/PROGDOWN
Clientapps/symbianMmf/installMMF.pcf
- add new DLL "progdownfs.dll"
Clientapps/symbianMmf/hxmmfdefines.h
- new string constant for scheme "prod:///"
Clientapps/symbianMmf/hxmmfctrlimpl.h
- add custom command parsing for DownloadID and DownloadComplete
Clientapps/symbianMmf/hxmmfctrlimpl.cpp
- implement custom command parsing
Common/include/hxpiids.h
- define GUID for new interface to pass DownloadComplete Event
Common/include/hxresult.h
- define new PD specific return code, HXR_PD_TIMEOUT
Common/fileio/pub/platform/symbian/hxdatasourcemmfclip.h
- add new interface to pass DownloadComplete Event
Common/fileio/pub/platform/symbian/hxdatasourcemmfclip.cpp -
implement new interface to pass DownloadComplete Event
Datatype/mp4/fileformat/atomizer.cpp
- prevent use of memory pager
Filesystem/local/mini/minifileobj.h
- refactor for readability and to enable subclass based reuse
Filesystem/local/mini/minifileobj.cpp
- refactor for readability and to enable subclass based reuse
Files Added:
Common/include/Ihxdownloadeventobserver.h
- new interface for passing DownloadComplete Event
Filesystem/progdown/Umakefil
- makefile generator
Filesystem/progdown/symbian.pcf
- Symbian specific makefile generator
Filesystem/progdown/pdfilesys.ver
- version file
Filesystem/progdown/pub/platform/symbian/pdfilesys.h
- clone of minifilesys.h with PD enhancements
Filesystem/progdown/pub/platform/symbian/pdfileobj.h
- subclass of minifileobj.h with PD enhancements
Filesystem/progdown/platform/symbian/pdfilesys.cpp
- clone of minifilesys.cpp with PD enhancements
Filesystem/progdown/platform/symbian/pdfileobj.cpp
- subclass of minifileobj.cpp with PD enhancements
Image Size and Heap Use impact:
Added 'Progdownfs.dll' (11KB on ARMV5 Release)
Platforms and Profiles Build Verified:
Armv5/helix-client-s60-mmf-mdf-arm
Armv5/helix-client-s60-mmf-mdf-dsp
Platforms and Profiles Functionality Verified:
Armv5/helix-client-s60-mmf-mdf-arm
Branch:
Hxclient_2_1_0_cayennes
<<hxclient_2_1_0_cayennes_bif.diff>> <<helix_bif.diff>>
<<clientapps_symbianMmf.diff>> <<common_include.diff>>
<<common_fileio.diff>> <<datatype_mp4_fileformat.diff>>
<<filesystem_local_mini.diff>> <<ihxdownloadeventobserver.h>>
<<filesystem_progdown.zip>>
_______________________________________________
Clientapps-dev mailing list
Clientapps-dev@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/clientapps-dev
[Attachment #3 (text/html)]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2963" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=463203816-25082006><FONT face=Arial
color=#0000ff size=2>Checked into HEAD and
HXCLIENT_2_1_0_CAYENNES.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=463203816-25082006><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=463203816-25082006><FONT face=Arial
color=#0000ff size=2>Thanks,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=463203816-25082006><FONT face=Arial
color=#0000ff size=2>Arnel</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=463203816-25082006><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV><FONT face=Arial color=#0000ff
size=2></FONT><BR>
<BLOCKQUOTE
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; \
MARGIN-RIGHT: 0px"> <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> ext Milko Boic [mailto:milko@real.com]
<BR><B>Sent:</B> Wednesday, August 23, 2006 11:47 PM<BR><B>To:</B> Periquet
Arnel (Nokia-TP-MSW/Dallas); common-dev@helixcommunity.org;
clientapps-dev@helixcommunity.org;
filesystem-dev@helixcommunity.org<BR><B>Subject:</B> Re: [Common-dev]
[Clientapps-dev] [Filesystem-dev] CR: Progressive Download Filesystem Plugin
for Series 60<BR></FONT><BR></DIV>
<DIV></DIV><BR>Two remarks:<BR>1.) Changes to mp4 file format should not
duplicate code:<BR><FONT face="Arial, Helvetica" size=2> #if
defined(HELIX_FEATURE_PROGDOWN) ||
defined(HELIX_FEATURE_S60_PROGDOWN)<BR> \
&& m_bPreferLinearAccess == FALSE<BR> #endif //
HELIX_FEATURE_PROGDOWN || HELIX_FEATURE_S60_PROGDOWN<BR><BR></FONT>2.) New
HX_RESULT definition regarding progressive download should be FILe related and
not ENCoder. Also PD is not sufficiently explanatory. <BR><FONT
face="Arial, Helvetica" color=#0000ff size=2>#define</FONT> <FONT
face="Arial, Helvetica" size=2>HXR_PROGRESSIVE_DOWNLOAD_TIMEOUT<X-TAB>
</X-TAB><X-TAB>
</X-TAB>
MAKE_HX_RESULT(1,SS_FIL,25)<X-TAB> </X-TAB>
<X-TAB> </X-TAB>
</FONT><FONT face="Arial, Helvetica" color=#008000
size=2>// 00040099<BR><BR><BR></FONT>Rest looks good.<BR>Please check into
HEAD as well.<BR><BR>At 04:19 PM 8/23/2006, Arnel.Periquet@nokia.com
wrote:<BR><BR>
<BLOCKQUOTE class=cite cite="" type="cite"><FONT size=2>Modified by:
Arnel.Periquet@nokia.com</FONT> <BR><BR><FONT size=2>Reviewed by:</FONT>
<BR><BR><FONT size=2>Date: 08-23-2006</FONT> <BR><BR><FONT size=2>Project:
Helix plugin for Symbian</FONT> <BR><BR><FONT size=2>Synopsis: Progressive
Download Filesystem Plugin for Series 60</FONT> <BR><BR><FONT size=2>This
feature provides a new filesystem plugin that operates in conjunction with a
platform specific progressive download (PD) manager--the Nokia Series 60
Download Manager. The download manager is assumed to be external to Helix.
Also outside the scope of Helix, a user interface component directly
interacts with the download manager to provide PD statistics and controls.
In this case, the facilities for progressive download built into the Helix
system become redundant with the facilites provided by the platform, and are
therefore not used. Helix will simply playback a PD file as a local file.
<BR></FONT><BR><FONT size=2>Highlights of the design are as follows:</FONT>
<BR><FONT size=2>1. A "Download ID" is passed to the MMF TLC to distinguish
progressive download from normal local file playback.</FONT> <BR><FONT
size=2>2. The "prod:" protocol scheme is used to load the new PD file
system.</FONT> <BR><FONT size=2>3. The PD file system provides an
asynchronous mechanism for waiting for more bytes if the download is not
complete but no more data is available. We rely on the Helix engine's
existing buffering system to work with our asynchronous file
system.<BR></FONT><BR><FONT size=2>4. A "DownloadComplete Event" is passed
to the MMF TLC and propogated to the PD file system.</FONT> <BR><BR><FONT
size=2>The following illustrates the architecture.</FONT> <BR><BR><FONT
size=2>Media Player User Interface -------------------- Series 60 Download
Manager</FONT> <BR> <FONT
size=2>| &n \
bsp; &nbs \
p; \
||</FONT> <BR><FONT size=2>Helix MMF Top Level
Client &nbs \
p; \
||</FONT> <BR> <FONT
size=2>| &n \
bsp; &nbs \
p; \
||</FONT> <BR><FONT size=2>Helix
Engine &nbs \
p; \
\
||</FONT> <BR> <FONT
size=2>| &n \
bsp; &nbs \
p; \
||</FONT> <BR><FONT size=2>Progressive Download File
System \
||</FONT> <BR> <FONT
size=2>| &n \
bsp; &nbs \
p; \
||</FONT> <BR><FONT size=2>Progressively Downloaded File
<<<=================</FONT> <BR><BR><FONT size=2>Files Modified:
<BR></FONT><BR><FONT
size=2>Build/bif-cvs/helix/client/build/BIF/hxclient_2_1_0_cayennes.bif \
- define new module FILESYSTEM/PROGDOWN</FONT> <BR><FONT
size=2>Build/bif-cvs/helix/common/build/BIF/helix.bif \
- define new module FILESYSTEM/PROGDOWN</FONT> <BR><FONT
size=2>Clientapps/symbianMmf/installMMF.pcf &nb \
sp; \
- add new DLL "progdownfs.dll"</FONT> <BR><FONT
size=2>Clientapps/symbianMmf/hxmmfdefines.h &nb \
sp; \
- new string constant for scheme "prod:///"</FONT> <BR><FONT
size=2>Clientapps/symbianMmf/hxmmfctrlimpl.h &n \
bsp; \
- add custom command parsing for DownloadID and
DownloadComplete<BR></FONT><BR><FONT
size=2>Clientapps/symbianMmf/hxmmfctrlimpl.cpp \
- implement custom command parsing</FONT> <BR><FONT
size=2>Common/include/hxpiids.h &nb \
sp;   \
; \
- define GUID for new interface to pass DownloadComplete
Event<BR></FONT><BR><FONT
size=2>Common/include/hxresult.h &n \
bsp; &nbs \
p; \
- define new PD specific return code, HXR_PD_TIMEOUT</FONT> <BR><FONT
size=2>Common/fileio/pub/platform/symbian/hxdatasourcemmfclip.h \
- add new interface to pass DownloadComplete Event</FONT> <BR><FONT
size=2>Common/fileio/pub/platform/symbian/hxdatasourcemmfclip.cpp \
- implement new interface to pass DownloadComplete Event<BR></FONT><BR><FONT
size=2>Datatype/mp4/fileformat/atomizer.cpp &nb \
sp; \
- prevent use of memory pager</FONT> <BR><FONT
size=2>Filesystem/local/mini/minifileobj.h &nbs \
p; \
- refactor for readability and to enable subclass based
reuse<BR></FONT><BR><FONT
size=2>Filesystem/local/mini/minifileobj.cpp &n \
bsp; \
- refactor for readability and to enable subclass based
reuse<BR></FONT><BR><FONT size=2>Files Added:</FONT> <BR><BR><FONT
size=2>Common/include/Ihxdownloadeventobserver.h &nbs \
p; \
- new interface for passing DownloadComplete Event</FONT> <BR><FONT
size=2>Filesystem/progdown/Umakefil   \
; \
- makefile generator</FONT> <BR><FONT
size=2>Filesystem/progdown/symbian.pcf &n \
bsp; \
- Symbian specific makefile generator</FONT> <BR><FONT
size=2>Filesystem/progdown/pdfilesys.ver \
\
- version file</FONT> <BR><FONT
size=2>Filesystem/progdown/pub/platform/symbian/pdfilesys.h \
- clone of minifilesys.h with PD enhancements</FONT> <BR><FONT
size=2>Filesystem/progdown/pub/platform/symbian/pdfileobj.h \
- subclass of minifileobj.h with PD enhancements</FONT> <BR><FONT
size=2>Filesystem/progdown/platform/symbian/pdfilesys.cpp \
- clone of minifilesys.cpp with PD enhancements</FONT> <BR><FONT
size=2>Filesystem/progdown/platform/symbian/pdfileobj.cpp \
- subclass of minifileobj.cpp with PD enhancements</FONT> <BR><BR><FONT
size=2>Image Size and Heap Use impact:</FONT> <BR><FONT size=2>Added
'Progdownfs.dll' (11KB on ARMV5 Release)</FONT> <BR><BR><FONT
size=2>Platforms and Profiles Build Verified:</FONT> <BR><FONT
size=2>Armv5/helix-client-s60-mmf-mdf-arm</FONT> <BR><FONT
size=2>Armv5/helix-client-s60-mmf-mdf-dsp</FONT> <BR><BR><FONT
size=2>Platforms and Profiles Functionality Verified:</FONT> <BR><FONT
size=2>Armv5/helix-client-s60-mmf-mdf-arm</FONT> <BR><BR><FONT
size=2>Branch:</FONT> <BR><FONT size=2>Hxclient_2_1_0_cayennes</FONT>
<BR><BR><FONT size=2><<hxclient_2_1_0_cayennes_bif.diff>>
<<helix_bif.diff>> <<clientapps_symbianMmf.diff>>
<<common_include.diff>> <<common_fileio.diff>>
<<datatype_mp4_fileformat.diff>>
<<filesystem_local_mini.diff>>
<<ihxdownloadeventobserver.h>>
<<filesystem_progdown.zip>>
<BR></FONT><BR><BR><BR><BR><BR><BR><BR><BR><BR>_______________________________________________<BR>Clientapps-dev \
mailing list<BR>Clientapps-dev@helixcommunity.org<BR><A
href="http://lists.helixcommunity.org/mailman/listinfo/clientapps-dev"
eudora="autourl">http://lists.helixcommunity.org/mailman/listinfo/clientapps-dev</A> \
</BLOCKQUOTE><BR></BLOCKQUOTE></BODY></HTML>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic