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

Reply via email to