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