Yury,

These changes look good to me.

Eric

=======================================
Eric Hyche (ehy...@real.com)
Principal Engineer
RealNetworks, Inc.


>-----Original Message-----
>From: audio-dev-boun...@helixcommunity.org 
>[mailto:audio-dev-boun...@helixcommunity.org] On Behalf Of
>yury.ramanov...@nokia.com
>Sent: Wednesday, July 22, 2009 11:30 AM
>To: audio-dev@helixcommunity.org; datatype-...@helixcommunity.org; 
>clientapps-...@helixcommunity.org
>Cc: nokia-private-...@helixcommunity.org
>Subject: [Audio-dev] CR needed : SUB 417-21335 - Playback of WMDRM-protected 
>content on HDMI-HDCP -
>configuring output restrictions
>
>"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.ramanov...@nokia.com
>
>Reviewed by:
>
>Date: 07/22/2009
>
>Project: SymbianMmf_wm
>
>ErrorId: N/A
>
>Synopsis:  SUB 417-21335 Playback of WMDRM-protected content on HDMI-HDCP
>
>Overview:  WMDRM content playback via HDMI/HDCP requires finer granularity of 
>secure output settings
>than CAudioOutput API for audio and MMmfVideoSecureOutput custom interface (CI)
>           for video can currently provide. Therefore, 210Cays helix is being 
> changed to use
>CRestrictedAudioOutput API and MMmfAdvancedVideoSecureOutput CI to accommodate 
>this
>           requirement
>
>Solution:  1) added CRestrictedAudioOutput support for helix audio and 
>MMmfAdvancedVideoSecureOutput
>CI support for helix video behind
>           HELIX_FEATURE_SYMBIAN_ADVANCED_SECURE_OUTPUT flag. This flag will 
> be added and commented
>out for now in build/umakepf/helix-client-s60-52-common.pfi
>           2) Consolidated code for setting secure output for audio into 
> CHXAudioOutputControlUtil
>class.
>           3) Modified code outside of 
> HELIX_FEATURE_SYMBIAN_ADVANCED_SECURE_OUTPUT flag to change
>secure output setting for audio and video
>              to be 32bit integer instead of boolean, while preserving the 
> existing secure output
>functionality.
>           4) consolidated code to set video output restrictions in new f-n
>CMDFDevVideoServerSession::SetOutputRestrictions()
>
>           How it works:
>           ---- Securing audio when the flag is enabled:
>           - integer bitmask with outputs (both audio and video) allowed by 
> drm agent is obtained in
>HXMMFBaseCtrl::HandleDRMClips and written into MMF.SecureOutput registry entry
>           - this bitmask is extracted in CHXMDFAudioDevice::Open() or 
> CHXAudioDevice::InitDevice()
>and passed down to CHXAudioOutputConfigUtil::ConfigureOutputRestrictions()
>           - CHXAudioOutputConfigUtil::ConfigureOutputRestrictions takes care 
> of parsing the bitmask,
>mapping drm allowed audio outputs to
>             a set of CRestrictedAudioOutput::TAllowedOutputPreference prefs 
> and configuring devsound
>with this set of allowed audio output prefs via CRestrictedAudioOutput.
>           - same thing is done in CHXMDFAudioDevice::GetCurrentAudioTime() 
> when the value of
>MMF.SecureOutput is changed on-the-fly.
>           - XPSFileFormat will not flip the bitmask. So 0 bitmask ( Same as 
> EDrmAllowNone) will mean
>that the audio output needs to be secured and will be mapped to a set of CMLA 
>compliant
>           CRestrictedAudioOutput::TAllowedOutputPreference prefs; 0xFFFFFFFF 
> bitmask ( Same as
>EDrmAllowAll) will mean that all audio outputs are allowed
>           - if CRestrictedAudioOutput API is not available, CAudioOutput will 
> be used.
>
>           ---- Securing audio when the flag is disabled:
>           - functionality is the same as before and CAudioOutput API is used
>
>
>           ----Securing video when the flag is enabled
>           - integer bitmask with outputs (both audio and video) allowed by 
> drm agent is obtained in
>HXMMFBaseCtrl::HandleDRMClips and written into MMF.SecureOutput registry entry
>           - this bitmask is extracted in CMdfVideoAdapter::InitL() and passed 
> down to
>CMDFDevVideoServerSession::CreateDevVideoL()
>           - CMDFDevVideoServerSession::CreateDevVideoL takes care of parsing 
> the bitmask, mapping drm
>allowed video output to MMmfAdvancedVideoSecureOutput allowed video output
>             setting and passing it down to devvideoplay via 
> MMmfAdvancedVideoSecureOutput CI if
>available.
>           - same thing is done by CMDFDevVideoServerSession::ServiceL() in 
> MDF_SyncSetSecureOutput
>message handling code when the value of MMF.SecureOutput is changed on-the-fly.
>           - XPSFileFormat will not flip the bitmask. So 0  bitmask ( Same as 
> EDrmAllowNone) will mean
>that the video output needs to be secured and will be mapped to
>           MMmfAdvancedVideoSecureOutput::EVideoAllowInternalOnly; 0xFFFFFFFF 
> bitmask ( Same as
>EDrmAllowAll) will mean that all audio outputs are allowed
>
>           --- Securing video when the flag is disabled:
>           - functionality is the same as before and MMmfVideoSecureOutput CI 
> used
>
>Files Added:
>/audio/device/platform/symbian/common/CHXAudioOutputControlUtil.cpp
>/audio/device/pub/platform/symbian/CHXAudioOutputControlUtil.h
>Files Modified:
>/ribosome/build/umakepf/helix-client-s60-52-common.pfi
>/audio/device/auddevlib_symbian.pcf
>/audio/device/platform/symbian/CHXSymbianAudioSession.cpp
>/audio/device/platform/symbian/CHXSymbianAudioSession.h
>/audio/device/platform/symbian/audsymbian.cpp
>/audio/device/platform/symbian/common/CHXBaseAudioSession.cpp
>/audio/device/pub/platform/symbian/CHXBaseAudioSession.h
>/audio/device/pub/platform/symbian/CHXSymbianAudioDevice.h
>/client/core/clntcoredll_symbian.pcf
>/clientapps/symbianMmf/common/hxmmfbasectrl.cpp
>/clientapps/symbianMmf/common/hxmmfbasectrl.h
>/datatype/mdf/audio/dsp/Umakefil
>/datatype/mdf/audio/dsp/mdfauddevice.cpp
>/datatype/mdf/audio/dsp/mdfdevsound.cpp
>/datatype/mdf/audio/dsp/mdfdevsound.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/xps/fileformat/CXPSFileformat.cpp
>
>
>Image Size and Heap Use impact: minor
>
>Module Release testing (STIF) :  MRT subset passed on 
>helix-client-s60-50-mmf-mdf-dsp.
>
>Test case(s) Added  :  No.
>
>Memory leak check performed : Yes. No new leaks introduced
>
>Platforms and Profiles Build Verified: helix-client-s60-50-mmf-mdf-dsp, 
>helix-client-s60-50-mmf-mdf-
>arm
>
>Platforms and Profiles Functionality verified: armv5, winscw
>
>Branch: 210CayS, HEAD
>


_______________________________________________
Audio-dev mailing list
Audio-dev@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/audio-dev

Reply via email to