[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-datatype-cvs
Subject: [Datatype-cvs] mdf/video/renderer mdfvideoadapter.cpp,
From: balcock () helixcommunity ! org
Date: 2011-08-24 7:52:34
Message-ID: 201108240752.p7O7qtcO022501 () mailer ! progressive-comp ! com
[Download RAW message or body]
Update of /cvsroot/datatype/mdf/video/renderer
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv18569
Modified Files:
Tag: hxclient_4_2_0_brizo
mdfvideoadapter.cpp
Log Message:
"Nokia submits this code under the terms of a commercial contribution agreement with \
Real Networks, and I am authorized to contribute this code under said agreement."
Modified by: nadeem.wahid@nokia.com
Reviewed by: girish.shetty@nokia.com
RC Id: ou1cimx1#859590
Date: 07/15/2011
Project: SymbianMmf_wm
Synopsis: Ensure that non-DRM content can be mapped onto graphics surfaces
Overview:
Presently, Helix always calls \
MMmfAdvancedVideoSecureOutput::MmavsoSetAllowedOutputL() towards MMF to indicate the \
allowed video/audio outputs for the content. A side effect of calling this API is \
that the content cannot be mapped onto graphics surfaces. This unnecessarily \
restricts non-DRM content. The semantics of calling this API needs to change such \
that it is only called for DRM content, thus allowing non-DRM content to be mapped.
Fix:
MmavsoSetAllowedOutputL() should be called for (1) DRM content or (2) non-DRM \
streaming content that can potentially change to DRM. In the streaming case, once \
the graphics memory is mapped by a call to MmavsoSetAllowedOutputL(), it cannot be \
unmapped. Consequently, the decision as to whether the API should be called or not \
has to be made upfront before the clip is played and can't be altered mid-stream.
In CXPSFileFormat::InitFileFormat(), set a new MMF.ProtectionVolatile registry \
parameter to 1, so we know that the content comes from XPS and can potentially change \
between DRM and non-DRM. CMdfVideoAdapter::InitL() reads MMF.ProtectionVolatile and \
communicates this to CMDFDevVideoServerSession::CreateDevVideoL() via a new boolean \
CDevVideoInitParams::m_bProtectionVolatile.
CreateDevVideoL() adds an extra check so that SetOutputRestrictions() is only called \
if the content is DRM (allowed outputs != EDrmAllowAll) or comes from XPS \
(m_bProtectionVolatile is true).
Files modified & changes:
datatype\mdf\video\renderer\mdfdevice\server\CMDFDevVideoServerCmds.h
datatype\mdf\video\renderer\mdfdevice\server\CMDFDevVideoServerSession.cpp
datatype\mdf\video\renderer\mdfvideoadapter.cpp
datatype\xps\fileformat\CXPSFileformat.cpp
Image Size and Heap Use impact: Little impact
Module Release testing (STIF) : Yes
Test case(s) Added : No
Platforms and profiles build verified: helix-client-s60-52-mmf-mdf-dsp
Platforms and Profiles Functionality verified: armv5
Branch: Brizo420, HEAD
Index: mdfvideoadapter.cpp
===================================================================
RCS file: /cvsroot/datatype/mdf/video/renderer/mdfvideoadapter.cpp,v
retrieving revision 1.107.2.1.2.18
retrieving revision 1.107.2.1.2.19
diff -u -d -r1.107.2.1.2.18 -r1.107.2.1.2.19
--- mdfvideoadapter.cpp 20 Jul 2011 15:16:58 -0000 1.107.2.1.2.18
+++ mdfvideoadapter.cpp 24 Aug 2011 07:52:31 -0000 1.107.2.1.2.19
@@ -485,6 +485,7 @@
IHXRegistry* pReg = NULL;
INT32 lCopyRestricted = 0;
INT32 prio = 0;
+ INT32 bProtectionVolatile = 0;
// Read in secure output, priority from registry
// secure output: If it is set, video output needs to be secure (to prevent \
copying/recording). @@ -527,6 +528,8 @@
m_pPropWatch->Init(this);
}
}
+ // Retrieve whether the content protection can change mid-stream
+ (void) pReg->GetIntByName("MMF.ProtectionVolatile", \
bProtectionVolatile); HX_RELEASE(pReg);
}
@@ -536,6 +539,7 @@
pInitParam->m_pPictureHeader = (TVideoPictureHeader*)m_pPictureHeader;
pInitParam->m_pMDFEncodedFrameQ = m_pMDFEncodedFrameQ;
pInitParam->m_lDrmAllowedOutputs = lCopyRestricted;
+ pInitParam->m_bProtectionVolatile = (bProtectionVolatile == 0) ? FALSE : \
TRUE; pInitParam->m_lResourcePriority = prio;
pInitParam->m_bReturnPictures = m_bReturnPictures;
pInitParam->m_bDisablePostProcessor = m_bDisablePostProcessor;
_______________________________________________
Datatype-cvs mailing list
Datatype-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/datatype-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic