Checked in to Cays210 A temporary symbian-specific workaround for missing adaptation support of CAudioOutput and CRestrictedAudioOutput On symbian winscw emulator
Changed file /audio/device/platform/symbian/common/CHXAudioOutputControlUtil.cpp BR Yury >-----Original Message----- >From: Ramanovich Yury (Nokia-D-MSW/Dallas) >Sent: Thursday, July 23, 2009 12:36 PM >To: '[email protected]'; [email protected]; >[email protected]; [email protected] >Cc: [email protected] >Subject: RE: [Audio-dev] CR needed : SUB 417-21335 - Playback >of WMDRM-protected content on HDMI-HDCP - configuring output >restrictions > >Thanks Eric, checked in to 210Cays and HEAD. > >BR >Yury > > >>-----Original Message----- >>From: ext Eric Hyche [mailto:[email protected]] >>Sent: Thursday, July 23, 2009 9:06 AM >>To: Ramanovich Yury (Nokia-D-MSW/Dallas); >[email protected]; >>[email protected]; [email protected] >>Cc: [email protected] >>Subject: RE: [Audio-dev] CR needed : SUB 417-21335 - Playback of >>WMDRM-protected content on HDMI-HDCP - configuring output restrictions >> >>Yury, >> >>These changes look good to me. >> >>Eric >> >>======================================= >>Eric Hyche ([email protected]) >>Principal Engineer >>RealNetworks, Inc. >> >> >>>-----Original Message----- >>>From: [email protected] >>>[mailto:[email protected]] On Behalf Of >>>[email protected] >>>Sent: Wednesday, July 22, 2009 11:30 AM >>>To: [email protected]; [email protected]; >>>[email protected] >>>Cc: [email protected] >>>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: [email protected] >>> >>>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/CMDFDevVideoSer >verCmds.h >>>/datatype/mdf/video/renderer/mdfdevice/server/CMDFDevVideoServ >>erSession >>>.cpp >>>/datatype/mdf/video/renderer/mdfdevice/server/CMDFDevVideoServ >>erSession >>>.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 [email protected] http://lists.helixcommunity.org/mailman/listinfo/audio-dev
