[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-datatype-cvs
Subject:    [Datatype-cvs] mdf/video/renderer/pub mdfvideoadapter.h, 1.3.2.43,
From:       yuryrp () helixcommunity ! org
Date:       2009-10-30 16:50:46
Message-ID: 200910301802.n9UI24vR003383 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/datatype/mdf/video/renderer/pub
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv6806

Modified Files:
      Tag: hxclient_2_1_0_cayennes
	mdfvideoadapter.h 
Log Message:
"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:  yury.ramanovich@nokia.com

Reviewed by: patrick.amick@nokia.com, ehyche@real.com

Date: 10/30/2009

Project: SymbianMmf_wm 

ErrorId: SUB 409-1052

Synopsis: Helix 3rd party drm playback support

Overview:  In order to enable third party applications without DRM capability to play \
DRM protected content, new threading model (Secure DRM Model) was introduced to MMF, \
where server side of MMF will be created in a new secure DRM Plugin server process, \
in which MMF controller will still be loaded as a separate thread. This way a process \
boundary will be added between client and sensitive DRM content. This new threading \
model (a.k.a. Secure DRM mode) will be only activated when a third party app without \
DRM capability attempts to play DRM protected content. 

The following changes are needed in participating controllers ( e.g. helix):
- Include the <d> tag inside their resource files to be picked up by the MMF plugin \
                resolver and loaded inside the secure DRM server process.
- Deliver a valid client application thread id to DevSound via SetClientThreadInfo \
(TThread& aTid) API. DevSound may need to be aware of real client identity in order \
                to make correct audio policy and routing decisions. 
- On DevVideoPlay side new custom interface (CI)  \
MmfVideoClientThreadInfo::MvctSetClientThreadInfo (TThreadId & aTid) must be \
implemented by all decoder and post processing devices that use client application \
identity for policy and resource management decisions and controllers must attempt to \
query it from all media devices in use. If the interface is implemented, then \
controllers should deliver valid client application thread id 

Solution:
- To opt-in to new Secure DRM threading model, <d> tag is added to \
KMmfUidPluginInterfaceController INTERFACE_INFO structure in the resource files for \
helix video controller, helix audio controller and helix windows media video and \
                helix windows media audio controller respectively
- Helix controller obtains client thread id in HXMMFBaseCtrl::InitResourcesL() 
- Helix passes it to DevSound to enable Effective Client process to be set by \
DevSound. Effective Client Process is the process used when checking the “client” \
capabilities, secureId etc, rather than the Client Process which is the process in \
which the CMMFDevSound is running. This is done only once via \
CMMFDevSound::SetClientThreadInfo() API just after creation of DevSound and before \
                any other calls to DevSound instance.
- the client thread id is also saved in HXMMFStateCtrl.
- On video side, mmfvideoadapter gets client thread id from HXMMFStateCtrl via new \
                interface IHXSymbianClientThreadInfo and saves it to \
                CDevVideoInitParams.
- then in  CMDFDevVideoServerSession::CreateAndInitL() helix attempts to query \
MmvctSetClientThreadInfo() CI from DevVideoPlay  and deliver client thread id to \
DevVideoPlay device.

Files Added: 
common/system/pub/platform/symbian/symbianclientthreadinfo.h
 

Files Modified:
/audio/device/platform/symbian/common/CHXMMFDevSound.cpp                       
/audio/device/pub/platform/symbian/CHXMMFDevSound.h                            
/clientapps/symbianMmf/hxmmfstatectrl.cpp                                      
/clientapps/symbianMmf/hxmmfstatectrl.h                                        
/clientapps/symbianMmf/audiocontroller/10207B64.rss                            
/clientapps/symbianMmf/common/hxmmfbasectrl.cpp                                
/clientapps/symbianMmf/videocontroller/101F8513.rss                            
/clientapps/symbianMmf/wmvextcontroller/10283349.rss                           
/clientapps/symbianMmf/wmvextcontroller/10283350.rss                           
/common/include/hxiids.h                                                       
/datatype/mdf/video/renderer/mdfvideoadapter.cpp                               
/datatype/mdf/video/renderer/mdfdevice/server/CMDFDevVideoServerCmds.h         
/datatype/mdf/video/renderer/mdfdevice/server/CMDFDevVideoServerSession.cpp    
/datatype/mdf/video/renderer/mdfdevice/server/CMDFDevVideoServerSession.h      
/datatype/mdf/video/renderer/pub/mdfvideoadapter.h                             

 

Image Size and Heap Use impact: minor

Module Release testing (STIF) :  MRT subset ongoing

Test case(s) Added  :  No.

Memory leak check performed : Yes. No new leaks introduced 

Platforms and Profiles Build Verified: 
helix-client-s60-52-mmf-mdf-dsp

Platforms and Profiles Functionality verified: armv5, winscw 

Branch: 210CayS



Index: mdfvideoadapter.h
===================================================================
RCS file: /cvsroot/datatype/mdf/video/renderer/pub/mdfvideoadapter.h,v
retrieving revision 1.3.2.43
retrieving revision 1.3.2.44
diff -u -d -r1.3.2.43 -r1.3.2.44
--- mdfvideoadapter.h	30 Mar 2009 18:49:45 -0000	1.3.2.43
+++ mdfvideoadapter.h	30 Oct 2009 16:50:44 -0000	1.3.2.44
@@ -104,6 +104,7 @@
 #endif //HELIX_FEATURE_S60_TRICKPLAY
 #include "hxmon.h"
 
+#include "symbianclientthreadinfo.h"
 #define CODECCONFIGRULE_ARRAY_GRANULARITY    4
 
 


_______________________________________________
Datatype-cvs mailing list
Datatype-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/datatype-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic