[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