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

List:       helix-datatype-dev
Subject:    [datatype-dev] CR: Play in full screen is not working for
From:       <Sunitha.Ramakrishna () nokia ! com>
Date:       2007-04-26 13:32:46
Message-ID: D9ECB8614A9A1340BC8944F8C8B3116902D23199 () daebe102 ! NOE ! Nokia ! com
[Download RAW message or body]

 
"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:  sunitha.ramakrishna@nokia.com
 
Reviewed by: 
 
Date: 4/23/2007
 
Project: SymbianMmf
 
ErrorId:  SRAA-72JNAF
 
Synopsis: Playing video in full screen on DSP platforms would result in
the video being scaled but not rotated. This problem arises because
DevVideo Initialize can be synchronous or asynchronous. In the
asynchronous case the FrameRect and the Rotation would be sent to
DevVideo as InitComplete callback would not have been received prior to
the core sending these values.

The problem can be resolved by setting the FrameRect and Rotation inside
of SetupWindow. FrameRect requires a validity check, since we cannot
assume that the FrameRect has been set. The mdfadapter can take care of
an undefined Frame Rect.

Rotation does not require this check since the default value for
rotation in the global parameter is 0, which has no effect. 

The CR has been tested on both DSP and ARM platforms
 

    
Root Cause of the problem: Implementation 
 

Files Modified:
datatype/mdf/video/renderer/mdfvideoadapter.cpp
common/system/platform/symbian/symbianglobalvideoparameters.cpp
common/system/platform/pub/symbian/symbianglobalvideoparameters.h

Files Added: 
 
 
Image Size and Heap Use impact: None

Module Release testing (STIF) : Yes 

Test case(s) Added  :  N/A 
  
Memory leak check performed : Yes, no new leaks have been introduced
  
Platforms and Profiles Build Verified: helix-client-s60-32-mmf-mdf-arm
                                       helix-client-s60-32-mmf-mdf-dsp

Platforms and Profiles Functionality verified: armv5, winscw 
  
Branch: Head & 210CayS

Index: mdfvideoadapter.cpp
===================================================================
RCS file: /cvsroot/datatype/mdf/video/renderer/mdfvideoadapter.cpp,v
retrieving revision 1.3.2.60
diff -w -u -b -r1.3.2.60 mdfvideoadapter.cpp
--- mdfvideoadapter.cpp	2 Apr 2007 21:02:47 -0000	1.3.2.60
+++ mdfvideoadapter.cpp	25 Apr 2007 22:11:13 -0000
@@ -1195,6 +1195,18 @@
 
 
(SymbianGlobalVideoParameters::Instance())->GetDisplayRegion((HXxRegion)
&m_ClipRegion);
 
+        if
((SymbianGlobalVideoParameters::Instance())->IsFrameRectValid() == TRUE)
+        {
+         HXxRect frameRect;
+
(SymbianGlobalVideoParameters::Instance())->GetFrameRect(frameRect);
+         SetFrameRect(frameRect);
+        }
+        
+        UINT32  rotationValue;
+
(SymbianGlobalVideoParameters::Instance())->GetRotationValue(rotationVal
ue);
+        SetRotation(rotationValue);
+       
+         
         TInt count = m_ClipRegion.Count();
         if(count == 0)
         {



Index: platform/symbian/symbianglobalvideoparameters.cpp
===================================================================
RCS file:
/cvsroot/common/system/platform/symbian/symbianglobalvideoparameters.cpp
,v
retrieving revision 1.1.2.3
diff -w -u -b -r1.1.2.3 symbianglobalvideoparameters.cpp
--- platform/symbian/symbianglobalvideoparameters.cpp	27 Mar 2007
15:53:14 -0000	1.1.2.3
+++ platform/symbian/symbianglobalvideoparameters.cpp	25 Apr 2007
21:54:54 -0000
@@ -66,6 +66,7 @@
   m_bDSAStatus( TRUE ),
   m_bAntiAlias( FALSE ),
   m_rotationValue( 0 ),
+  m_bFrameRectValid( FALSE ),
   m_fHeightPerc( 100.0 ),
   m_fWidthPerc( 100.0 )
 #ifdef SYMBIAN_ENABLE_MMF_MULTISCREEN_SUPPORT
@@ -235,5 +236,12 @@
 {
 	HX_RESULT retVal = HXR_OK;
 	m_frameRect = sValue;
+	m_bFrameRectValid = TRUE;
 	return retVal;
 }
+
+
+HXBOOL SymbianGlobalVideoParameters::IsFrameRectValid(void)
+{
+	return m_bFrameRectValid;
+}
+

Index: pub/platform/symbian/symbianglobalvideoparameters.h
===================================================================
RCS file:
/cvsroot/common/system/pub/platform/symbian/symbianglobalvideoparameters
.h,v
retrieving revision 1.1.2.2
diff -w -u -b -r1.1.2.2 symbianglobalvideoparameters.h
--- pub/platform/symbian/symbianglobalvideoparameters.h	27 Mar 2007
15:53:15 -0000	1.1.2.2
+++ pub/platform/symbian/symbianglobalvideoparameters.h	25 Apr 2007
21:54:55 -0000
@@ -101,12 +101,14 @@
     HX_RESULT    SetRotationValue(UINT32 ulValue);
     HX_RESULT    GetFrameRect(HXxRect &sValue);
     HX_RESULT    SetFrameRect(HXxRect sValue);
+    HXBOOL       IsFrameRectValid(void);
 
 
 private:
     HXxRect               m_clipRect;
     HXxRect               m_windowRect;
     HXxRect               m_frameRect;
+    HXBOOL                m_bFrameRectValid;
     HXBOOL                m_bAntiAlias;
     RRegion               m_ClipRegion;
     ULONG32               m_rotationValue;

_______________________________________________
Datatype-dev mailing list
Datatype-dev@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/datatype-dev

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

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