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

List:       helix-common-dev
Subject:    [Common-dev] RE: [Clientapps-dev] CR needed: Helix 3rd party drm
From:       <Yury.Ramanovich () nokia ! com>
Date:       2009-10-30 18:26:35
Message-ID: BE808F92D8B85A4FB9A6D26B46CB39EC286B9DCCEF () NOK-EUMSG-03 ! mgdnok ! nokia ! com
[Download RAW message or body]

Thanks Eric, checked in to 210Cays.

BR
Yury
 

>-----Original Message-----
>From: ext Eric Hyche [mailto:ehyche@real.com] 
>Sent: Friday, October 30, 2009 12:04 PM
>To: Ramanovich Yury (Nokia-D/Dallas)
>Cc: clientapps-dev@helixcommunity.org; 
>datatype-dev@helixcommunity.org; 
>common-dev@helixcommunity.org; nokia-private-dev@helixcommunity.org
>Subject: Re: [Clientapps-dev] CR needed: Helix 3rd party drm 
>playback support ( Symbian)
>
>Don't check in the common/include/platform.h changes, but 
>other than that, these changes look good.
>
>Eric
>
>On Oct 29, 2009, at 12:21 PM, Yury.Ramanovich@nokia.com wrote:
>
>>
>> "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:
>>
>> Date: 10/29/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
>>
>> BR
>> Yury
>>
>>
>>
>>
>> < 
>> symbianclientthreadinfo.h 
>> ><sdrm_diff.txt>_______________________________________________
>> Clientapps-dev mailing list
>> Clientapps-dev@helixcommunity.org
>> http://lists.helixcommunity.org/mailman/listinfo/clientapps-dev
>
>Eric Hyche (ehyche@real.com)
>Principal Engineer
>RealNetworks, Inc.
>
>
>
>
_______________________________________________
Common-dev mailing list
Common-dev@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/common-dev

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

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