[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-video-dev
Subject:    [Video-dev] CR: Graphics surface support for Helix
From:       <Praveen.Thimmashetty () nokia ! com>
Date:       2009-01-23 16:08:52
Message-ID: E2BCA93C601173448A14BD179A27A7FD07D9A17944 () NOK-EUMSG-03 ! mgdnok ! nokia ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


"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:  praveen.thimmashetty@nokia.com

Reviewed by:

SUB ID:

Date: 01/22/2008

Project: SymbianMmf_rel

Synopsis: Graphics surface support for Helix

Overview:
Changes in helix code(video) to support New Graphics Composition Engine. Please refer \
attached design doc for more details. All code changes are done under feature flag \
HELIX_FEATURE_GRAPHIC_SURFACES which is defined under helix-client-s60--common.pfi. \
And for backward compatibility with other branches S60_HX_GRAPHICS_SURFACE has been \
defined in helix_features.h file in epoc\include\domain\middleware.


Files modified & changes:
video\sitelib\pub\platform\symbian\minisymbiansite.h
video\sitelib\platform\symbian\minisymbiansite.cpp

Image Size and Heap Use impact: None

Module Release testing (STIF) : Passed

Test case(s) Added  : None

Memory leak check performed : Passed, No leaks found

Platforms and Profiles Build Verified: helix-client-s60-50-mmf-mdf-arm

Platforms and Profiles Functionality verified: armv5

Branch: Head, 210CayS

===========================
DIFF enclosed as text files
===========================


[Attachment #5 (text/html)]

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 \
2px solid; } --></style> </head>
<body>
<font face="Tahoma, sans-serif" size="3">
<div style="padding-left: 72pt; text-indent: -72pt; ">&nbsp;</div>
<div style="padding-left: 72pt; text-indent: -72pt; ">&nbsp;</div>
<div><font face="Arial, sans-serif" size="2">&quot;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.&quot;</font></div> <div><font \
face="Arial, sans-serif" size="2">&nbsp;</font></div> <div><font face="Arial, \
sans-serif" size="2">&nbsp;</font></div> <div><font face="Arial, sans-serif" \
size="2">Modified by:&nbsp; praveen.thimmashetty@nokia.com</font></div> <div><font \
face="Arial, sans-serif" size="2">&nbsp;</font></div> <div><font face="Arial, \
sans-serif" size="2">Reviewed by: </font></div> <div><font face="Arial, sans-serif" \
size="2">&nbsp;</font></div> <div><font face="Arial, sans-serif" size="2">SUB ID: \
</font></div> <div><font face="Arial, sans-serif" size="2">&nbsp;</font></div>
<div><font face="Arial, sans-serif" size="2">Date: 01/22/2008</font></div>
<div><font face="Arial, sans-serif" size="2">&nbsp;</font></div>
<div><font face="Arial, sans-serif" size="2">Project: SymbianMmf_rel</font></div>
<div><font face="Arial, sans-serif" size="2">&nbsp;</font></div>
<div><font face="Arial, sans-serif" size="2">Synopsis: Graphics surface support for \
Helix</font></div> <div><font face="Arial, sans-serif" size="2">&nbsp;</font></div>
<div><font face="Arial, sans-serif" size="2">Overview:</font></div>
<div><font face="Arial, sans-serif" size="2">Changes in helix code(video) to support \
New Graphics Composition Engine. Please refer attached design doc for more \
details.</font></div> <div><font face="Arial, sans-serif" size="2">All code changes \
are done under feature flag HELIX_FEATURE_GRAPHIC_SURFACES which is defined \
under</font></div> <div><font face="Arial, sans-serif" \
size="2">helix-client-s60--common.pfi. And for backward compatibility with other \
branches S60_HX_GRAPHICS_SURFACE </font></div> <div><font face="Arial, sans-serif" \
size="2">has been defined in helix_features.h file in \
epoc\include\domain\middleware.</font></div> <div><font face="Arial, sans-serif" \
size="2">&nbsp;</font></div> <div><font face="Arial, sans-serif" \
size="2">&nbsp;</font></div> <div><font face="Arial, sans-serif" size="2">Files \
modified &amp; changes:</font></div> <div><font face="Arial, sans-serif" \
size="2">video\sitelib\pub\platform\symbian\minisymbiansite.h</font></div> <div><font \
face="Arial, sans-serif" \
size="2">video\sitelib\platform\symbian\minisymbiansite.cpp</font></div> <div><font \
face="Arial, sans-serif" size="2">&nbsp;</font></div> <div><font face="Arial, \
sans-serif" size="2">Image Size and Heap Use impact: None</font></div> <div><font \
face="Arial, sans-serif" size="2">&nbsp;</font></div> <div><font face="Arial, \
sans-serif" size="2">Module Release testing (STIF) : Passed</font></div> <div><font \
face="Arial, sans-serif" size="2">&nbsp;</font></div> <div><font face="Arial, \
sans-serif" size="2">Test case(s) Added&nbsp; : None </font></div> <div><font \
face="Arial, sans-serif" size="2">&nbsp;</font></div> <div><font face="Arial, \
sans-serif" size="2">Memory leak check performed : Passed, No leaks \
found</font></div> <div><font face="Arial, sans-serif" size="2">&nbsp;</font></div>
<div><font face="Arial, sans-serif" size="2">Platforms and Profiles Build Verified: \
helix-client-s60-50-mmf-mdf-arm</font></div> <div><font face="Arial, sans-serif" \
size="2">&nbsp;</font></div> <div><font face="Arial, sans-serif" size="2">Platforms \
and Profiles Functionality verified: armv5</font></div> <div><font face="Arial, \
sans-serif" size="2">&nbsp;</font></div> <div><font face="Arial, sans-serif" \
size="2">Branch: Head, 210CayS</font></div> <div><font face="Arial, sans-serif" \
size="2">&nbsp;</font></div> <div><font face="Arial, sans-serif" \
size="2">===========================</font></div> <div><font face="Arial, sans-serif" \
size="2">DIFF enclosed as text files</font></div> <div><font face="Arial, sans-serif" \
size="2">===========================</font></div> <div><font face="Arial, sans-serif" \
size="2">  </font></div> <div><font face="Arial, sans-serif" \
size="2">&nbsp;</font></div> </font>
</body>
</html>


["diff.txt" (text/plain)]

Index: sitelib/platform/symbian/minisymbiansite.cpp
===================================================================
RCS file: /cvsroot/video/sitelib/platform/symbian/minisymbiansite.cpp,v
retrieving revision 1.24.2.6
diff -w -u -b -r1.24.2.6 minisymbiansite.cpp
--- sitelib/platform/symbian/minisymbiansite.cpp	15 Aug 2007 21:56:30 -0000	1.24.2.6
+++ sitelib/platform/symbian/minisymbiansite.cpp	22 Jan 2009 21:35:24 -0000
@@ -74,6 +74,9 @@
 INTERFACE_LIST_ENTRY(IID_IHXSurfaceControl, IHXSurfaceControl)
 INTERFACE_LIST_ENTRY(IID_IHXSiteRegister, IHXSiteRegister)
 INTERFACE_LIST_ENTRY(IID_IHXDSAControl, IHXDSAControl)
+#if defined(HELIX_FEATURE_GRAPHIC_SURFACES)
+INTERFACE_LIST_ENTRY(IID_IHXGraphicsSurface, IHXGraphicsSurface)
+#endif //HELIX_FEATURE_GRAPHIC_SURFACES
 INTERFACE_LIST_ENTRY_DELEGATE_BLIND(CMiniBaseSite::QueryInterface)
 END_INTERFACE_LIST
 
@@ -86,6 +89,9 @@
 #if defined(HELIX_FEATURE_MMF_SITE_CONTROL)
                                ,m_pSurfaceControlSite(NULL)
                                ,m_pDSAControl(NULL)
+#if defined (HELIX_FEATURE_GRAPHIC_SURFACES)
+                               ,m_pGraphicsSurface(NULL)
+#endif //HELIX_FEATURE_GRAPHIC_SURFACES
                                ,m_bWindowRectValid(FALSE)
                                ,m_eRotation(Rotate0)
                                ,m_bBlitting(TRUE)
@@ -271,6 +277,77 @@
 }
 #if defined(HELIX_FEATURE_MMF_SITE_CONTROL)
 
+#if defined(HELIX_FEATURE_GRAPHIC_SURFACES)
+STDMETHODIMP
+CHXSymbianSite::UseSurfaces()
+{
+	HXLOGL2( HXLOG_SITE, "CHXSymbianSite::UseSurfaces()++");
+	HX_RESULT retVal = HXR_FAIL;
+    if(m_pGraphicsSurface != NULL)
+  	{
+		m_pGraphicsSurface->UseSurfaces();
+	    retVal = HXR_OK;
+  	}
+       
+   	HXLOGL2( HXLOG_SITE, "CHXSymbianSite::UseSurfaces()-- retVal = %d", retVal);
+    return  retVal;
+}
+
+STDMETHODIMP
+CHXSymbianSite::AddDisplay(INT32 lValue)
+{    
+	HXLOGL2( HXLOG_SITE, "CHXSymbianSite::AddDisplay()++");
+	HX_RESULT retVal = HXR_FAIL;
+	if(m_pGraphicsSurface != NULL)
+  	{
+      	m_pGraphicsSurface->AddDisplay(lValue);
+	    retVal = HXR_OK;
+  	}
+    HXLOGL2( HXLOG_SITE, "CHXSymbianSite::AddDisplay()-- retVal = %d", retVal);
+    return  retVal;
+}
+
+STDMETHODIMP
+CHXSymbianSite::GetSurfaceParameters(INT32 lValue, HXSurfaceId& sVideosurfaceId, \
HXxRect& sCroprect, HXVideoAspectRatio& sPixelAspectRatio) +{
+	HXLOGL2( HXLOG_SITE, "CHXSymbianSite::GetSurfaceParameters()++");
+	HX_RESULT retVal = HXR_FAIL;
+	if(m_pGraphicsSurface != NULL)
+	{
+	  	m_pGraphicsSurface->GetSurfaceParameters(lValue, sVideosurfaceId, sCroprect, \
sPixelAspectRatio); +	  	retVal = HXR_OK;
+	}
+   	HXLOGL2( HXLOG_SITE, "CHXSymbianSite::GetSurfaceParameters()-- retVal = %d", \
retVal); +   	return  retVal;
+}
+
+STDMETHODIMP
+CHXSymbianSite::UpdateDisplay(INT32 lValue)
+{
+	HXLOGL2( HXLOG_SITE, "CHXSymbianSite::UpdateDisplay()++");
+	HX_RESULT retVal = HXR_FAIL;
+	if(m_pGraphicsSurface != NULL)
+	{
+	  	m_pGraphicsSurface->UpdateDisplay(lValue);
+		retVal = HXR_OK;
+	}
+    HXLOGL2( HXLOG_SITE, "CHXSymbianSite::UpdateDisplay()-- retVal = %d", retVal);
+    return  retVal;
+}
+
+STDMETHODIMP
+CHXSymbianSite::RemoveDisplay(INT32 lValue)
+{
+	HXLOGL2( HXLOG_SITE, "CHXSymbianSite::RemoveDisplay()++");
+	HX_RESULT retVal = HXR_FAIL;
+	if(m_pGraphicsSurface != NULL)
+	{
+	  	m_pGraphicsSurface->RemoveDisplay(lValue);
+	  	retVal = HXR_OK;
+	}
+    HXLOGL2( HXLOG_SITE, "CHXSymbianSite::RemoveDisplay()-- retVal = %d", retVal);
+}
+#endif //HELIX_FEATURE_GRAPHIC_SURFACES
 
 STDMETHODIMP
 CHXSymbianSite::SetRotation(UINT32 ulValue)
@@ -439,7 +516,14 @@
     {
         return HXR_FAIL;
     }
-
+#if defined(HELIX_FEATURE_GRAPHIC_SURFACES)
+		pMdfVideoAdapter->QueryInterface(IID_IHXGraphicsSurface, (void**) \
&m_pGraphicsSurface); +    if(!m_pGraphicsSurface)
+    {
+    	HXLOGL1( HXLOG_SITE, "CHXSymbianSite::RegisterAdapter() for NGA FAIL --");
+        return HXR_FAIL;
+    }
+#endif //HELIX_FEATURE_GRAPHIC_SURFACES
     //Get control of DSA interface
     m_pSurfaceControlSite->QueryInterface(IID_IHXDSAControl, (void**) \
&m_pDSAControl);  if(!m_pDSAControl)
@@ -450,7 +534,8 @@
 
     HXxRect tmpWinRect;
     HXxRect tmpClipRect;
-
+	if(m_pWindow)
+	{
     HXxRect_SetWithSize(tmpWinRect,
             m_pWindow->x,
             m_pWindow->y,
@@ -462,6 +547,7 @@
 	        m_pWindow->clipRect.top,
 	        m_pWindow->clipRect.right,
 	        m_pWindow->clipRect.bottom);
+	}
 
     SetWindowParameters(tmpWinRect, tmpClipRect);
 }
@@ -473,6 +559,9 @@
     //Release control of DSA interface & Surface Control
     HX_RELEASE( m_pDSAControl );
     HX_RELEASE( m_pSurfaceControlSite );
+#if defined(HELIX_FEATURE_GRAPHIC_SURFACES)
+    HX_RELEASE( m_pGraphicsSurface );
+#endif //HELIX_FEATURE_GRAPHIC_SURFACES
 
 }
 
Index: sitelib/pub/platform/symbian/minisymbiansite.h
===================================================================
RCS file: /cvsroot/video/sitelib/pub/platform/symbian/minisymbiansite.h,v
retrieving revision 1.11.8.4
diff -w -u -b -r1.11.8.4 minisymbiansite.h
--- sitelib/pub/platform/symbian/minisymbiansite.h	15 Aug 2007 21:56:10 \
                -0000	1.11.8.4
+++ sitelib/pub/platform/symbian/minisymbiansite.h	22 Jan 2009 21:35:24 -0000
@@ -56,6 +56,9 @@
 
 #if defined(HELIX_FEATURE_MMF_SITE_CONTROL)
 #include "hxsite3.h"
+#if defined(HELIX_FEATURE_GRAPHIC_SURFACES)
+#include "hxvideographicsurface.h"
+#endif //HELIX_FEATURE_GRAPHIC_SURFACES
 #endif
 
 class CHXSymbianSite : public CMiniBaseSite
@@ -64,7 +67,9 @@
 ,public CUnknownIMP
 ,public IHXSiteRegister
 ,public IHXDSAControl
-
+#if defined(HELIX_FEATURE_GRAPHIC_SURFACES)
+,public IHXGraphicsSurface
+#endif //HELIX_FEATURE_GRAPHIC_SURFACES
 #endif
 {
   public:
@@ -110,7 +115,14 @@
     STDMETHOD(DirectScreenAccessEvent)  (THIS_ HXBOOL bValue);
     STDMETHOD(UpdateDisplayRegion)      (THIS_ HXxRegion Region);
     STDMETHOD(RefreshWindow)            (THIS_);
-
+#if defined(HELIX_FEATURE_GRAPHIC_SURFACES)
+    //IHXGraphicsSurface methods
+    STDMETHOD(UseSurfaces) (THIS_ );
+    STDMETHOD(AddDisplay) (THIS_ INT32 lValue);
+    STDMETHOD(GetSurfaceParameters) (THIS_ INT32 lValue,HXSurfaceId& \
sVideosurfaceId, HXxRect& sCroprect, HXVideoAspectRatio& sPixelAspectRatio); +    \
STDMETHOD(UpdateDisplay) (THIS_ INT32 lValue); +    STDMETHOD(RemoveDisplay) (THIS_ \
INT32 lValue);     +#endif //HELIX_FEATURE_GRAPHIC_SURFACES
 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
     STDMETHOD(SetInitScreenNumber)      (THIS_ INT32 lScreenNumber);
 #endif //SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
@@ -123,6 +135,9 @@
     HXBOOL               m_bBlitting;
     IHXSurfaceControl*   m_pSurfaceControlSite;
     IHXDSAControl*       m_pDSAControl;
+#if defined(HELIX_FEATURE_GRAPHIC_SURFACES)
+    IHXGraphicsSurface*						 m_pGraphicsSurface;
+#endif //HELIX_FEATURE_GRAPHIC_SURFACES
     HXBOOL               m_bWindowRectValid;
     RotationType         m_eRotation;
     UINT32               m_uiContrast;


["Helix_NGA.dot" (application/msword)]

_______________________________________________
Video-dev mailing list
Video-dev@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/video-dev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic