"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.gupta nokia.com, rajesh.rathinasamy nokia.com
Reviewed by:
Date: 21-Jan-2008
Project: SymbianMmf_rel
ErrorId: EJON-79Z8P3
Synopsis: DevVideo client/server implementation & partial thumbnail changes
Implementation of DevVideo using Symbian Client/Server framework to address asynchronus initialization of DevVideo.
DevVideoPlay is created on the server thread and all operations are executed from the server thread. Mdfadapter creates client interface and communicates with the server session. SymbianServer context creation and handling is made generic so that it could be reused if required for some other components. Rest of the details can be found on the design document.
Thumbnail changes:
Thumbnail changes are controlled by two flags at run time. 1. DisablePostProcessor 2. ReturnPicture. MDFVideo renderer operates in decode only mode and returns the YUV pictures back based on ReturnPicture flag. MDF plugin archive has been modified to support two new options: 1 AcceleratedDecoder 2. YUV420Planar format. MDF Plugin manager allows the selection of decoder only with a new function called FindDecoderOnlyL. When postprocessor is disabled, FindDecoderOnlyL is used to find the appropriate decoder for the thumbnail. Most of the code changes are controlled by a feature flag.
There are other changes that splits big functions into smaller functions without any logic changes.
Limitations:
========
* Symbian logging is used on Server side because of thread sync problem with Symbian Helix core.
* Helix logging cannot be used on functions used from server thread (Ex: payloadformat::FillBuffer, etc)
Pending Changes:
==============
* Provision to control log output to console or file.
Pending testing:
==============
* Multiple screen support
Root Cause of the problem: Implementation
Files Modified:
===========
common/system/symbian.pcf
datatype/mdf/video/format/common/mdfpayloadformat.cpp
datatype/mdf/video/format/h264/mdfh264payloadformat.cpp
datatype/mdf/video/format/mp4/mdfmp4payloadformat.cpp
datatype/mdf/video/format/rm/mdfrvxpayloadformat.cpp
datatype/mdf/video/format/wmv/mdfwmvpayloadformat.cpp
datatype/mdf/video/renderer/Umakefil
datatype/mdf/video/renderer/mdfclocksource.cpp
datatype/mdf/video/renderer/mdfpluginarchive.cpp
datatype/mdf/video/renderer/mdfpluginmanager.cpp
datatype/mdf/video/renderer/mdfvideoadapter.cpp
datatype/mdf/video/renderer/mdfvidrend.cpp
datatype/mdf/video/renderer/umakedll
datatype/mdf/video/renderer/pub/mdfclocksource.h
datatype/mdf/video/renderer/pub/mdfpluginmanager.h
datatype/mdf/video/renderer/pub/mdfpluginpackage.h
datatype/mdf/video/renderer/pub/mdfvideoadapter.h
datatype/mdf/video/renderer/pub/mdfvidrend.h
Files Added:
=========
Datatype/mdf/video/renderer/mdfdevice/client/CMDFDevVideoClient.h
Datatype/mdf/video/renderer/mdfdevice/client/CMDFDevVideoClient.cpp
Datatype/mdf/video/renderer/mdfdevice/server/CMDFDevVideoServer.h
Datatype/mdf/video/renderer/mdfdevice/server/CMDFDevVideoServerCmds.h
Datatype/mdf/video/renderer/mdfdevice/server/CMDFDevVideoServerSession.cpp
Datatype/mdf/video/renderer/mdfdevice/server/CMDFDevVideoServerSession.h
CommonsystempubplatformsymbianCHXSymbianServer.h
CommonsystempubplatformsymbianCHXSymbianServerDebug.h
CommonsystemplatformsymbianCHXSymbianServer.cpp
Image Size and Heap Use impact: TBD
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-32-mmf-mdf-arm
Platforms and Profiles Functionality verified: armv5,winscw
Branch: 210CayS, Head
<<common_system.diff>> <<datatype_mdf.diff>> <<CHXSymbianServer.cpp>> <<CHXSymbianServer.h>> <<CHXSymbianServerDebug.h>> <<mdfdevice.zip>>
|