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

List:       helix-datatype-cvs
Subject:    [Datatype-cvs] mdf/video/renderer/mdfdevice/server
From:       sgrosdes () helixcommunity ! org
Date:       2009-07-31 22:01:08
Message-ID: 200907312308.n6VN8hdN007953 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/datatype/mdf/video/renderer/mdfdevice/server
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv5406/video/renderer/mdfdevice/server


Modified Files:
      Tag: hxclient_2_1_0_cayennes
	CMDFDevVideoServerSession.cpp 
Log Message:
"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: EXT-Sebastien.Gros2@nokia.com Reviewed by:
Date: June 29 -2009

ErrorId: TKON-7M6CTS
Description:
While performing streaming of some contents, It's not possible to  switch between \
different screen sizes along the rendering.

Origin of the problem: 
When starting the stream the application doesn't have the framesize values so disable \
the option to change the Aspect ratio. This happens because the framesize is not \
reported as part of the SDP.

Solution: 
Getting the values from decoder and report them to UI if the frame size values are \
undefined for MPEG-4, H263 and H264.

Files Modified:
\datatype\mdf\video\renderer\mdfvideoadapter.cpp
\datatype\mdf\video\renderer\mdfdevice\server\CMDFDevVideoServerSession.cpp
\datatype\mdf\video\renderer\mdfdevice\server\CMDFDevVideoServerSession.h
\datatype\mdf\video\renderer\mdfdevice\server\CMDFDevVideoServerCmds.h

New files added: NONE

Image Size and Heap Use impact: no major impact

Module Release testing (STIF) : Passed
Memory Leaks testing: Passed
Test case(s) Added : No.

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

Branch: 223 Cayennes, HEAD

Index: CMDFDevVideoServerSession.cpp
===================================================================
RCS file: /cvsroot/datatype/mdf/video/renderer/mdfdevice/server/CMDFDevVideoServerSession.cpp,v
 retrieving revision 1.1.2.19
retrieving revision 1.1.2.20
diff -u -d -r1.1.2.19 -r1.1.2.20
--- CMDFDevVideoServerSession.cpp	23 Jul 2009 15:10:03 -0000	1.1.2.19
+++ CMDFDevVideoServerSession.cpp	31 Jul 2009 22:01:06 -0000	1.1.2.20
@@ -776,6 +776,20 @@
     const TUncompressedVideoFormat& commonFormat  = \
                pInitParams->m_pPluginPkg->GetHwUncompressedVideoFormat();
     TVideoDataUnitType          unitType          = \
                pInitParams->m_pPluginPkg->GetVideoDataUnitType();
     TVideoDataUnitEncapsulation unitEncapsulation = \
pInitParams->m_pPluginPkg->GetVideoDataUnitEncapsulation(); +
+	//so as to get header information from codec 
+	m_CodecHeaderInfoAvailable 					  = pInitParams->m_bFrameSizeUnKnown; 
+
+    if(m_CodecHeaderInfoAvailable)//send value to server session. allow to filter \
the compatible decoders for calling getheaderinfo  +    {            
+		m_unitType = unitType;
+		m_unitEncapsulation = unitEncapsulation;
+		m_pInitParams = pInitParams;
+	}
+	else
+	{
+		m_pInitParams = 0;
+	}
     
 #ifndef HELIX_FEATURE_LOGLEVEL_NONE
     {
@@ -995,6 +1009,53 @@
     
 }
 
+//so as to get header information from codec 
+void CMDFDevVideoServerSession::GetHeaderInfo(TVideoPictureHeader* pPictureHeader)
+{
+	SERVER_LOG( (_L("CMDFDevVideoServerSession[%x]::GetHeaderInfo "), this)  );
+	if(m_CodecHeaderInfoAvailable)
+	{
+		TInt lRetval = KErrNone;
+		TRAP(lRetval, GetHeaderInfoL(pPictureHeader));
+	}
+	SERVER_LOG( (_L("CMDFDevVideoServerSession[%x]::GetHeaderInfo [%x]"), this, \
pPictureHeader)  );  +}
+
+//so as to get header information from codec 
+void CMDFDevVideoServerSession::GetHeaderInfoL(TVideoPictureHeader* pPictureHeader)
+{
+    SERVER_LOG( (_L("CMDFDevVideoServerSession[%x]::GetHeaderInfoL "), this)  ); 
+	if(pPictureHeader)
+	{	
+		if(m_pInitParams)
+		{
+			TVideoPictureHeader* pPictureHeaderToreturn = \
m_pDevVideoPlay->GetHeaderInformationL(m_unitType, m_unitEncapsulation, \
(TVideoInputBuffer *)pPictureHeader->iOptional); +			SERVER_LOG( \
(_L("pPictureHeaderToreturn[%x]::got header information "), pPictureHeaderToreturn)  \
);  +			if(pPictureHeaderToreturn)
+			{
+				//get the values you want to fill
+				TRect aRect = pPictureHeaderToreturn->iDisplayedRect;
+				if(aRect.Width() > 0)
+				{
+					m_pInitParams->m_ulFrameWidth = (TUint) aRect.Width(); 
+				}
+			
+				if(aRect.Height() > 0)
+				{			
+					m_pInitParams->m_ulFrameHeight = (TUint) aRect.Height(); 
+				}
+	
+				//object is deleted by codec before initialization 
+				m_pDevVideoPlay->ReturnHeader(pPictureHeaderToreturn);
+			}
+		
+			//set m_pInitParams to 0 so as to avoid bad use
+			m_pInitParams = 0;
+		}
+	}		
+}
+
+
 //
 //  CMDFDevVideoServerSession::CreateAndInitL
 //  Does following operation:
@@ -1010,6 +1071,7 @@
     ValidateInitParamL(pInitParams);
     CreateDevVideoL(pInitParams);
     ConfigureDecoderL(pInitParams->m_pPictureHeader);
+	GetHeaderInfo(m_pPictureHeader); //so as to get header information from codec
     m_pDevVideoPlay->Initialize();
 }
 


_______________________________________________
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