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

List:       helix-datatype-cvs
Subject:    [Datatype-cvs] mdf/video/renderer mdfvideoadapter.cpp, 1.3.2.98,
From:       sgrosdes () helixcommunity ! org
Date:       2009-07-31 21:59:57
Message-ID: 200907312307.n6VN7oju007866 () mailer ! progressive-comp ! com
[Download RAW message or body]

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

Modified Files:
      Tag: hxclient_2_1_0_cayennes
	mdfvideoadapter.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: mdfvideoadapter.cpp
===================================================================
RCS file: /cvsroot/datatype/mdf/video/renderer/mdfvideoadapter.cpp,v
retrieving revision 1.3.2.98
retrieving revision 1.3.2.99
diff -u -d -r1.3.2.98 -r1.3.2.99
--- mdfvideoadapter.cpp	23 Jul 2009 15:08:07 -0000	1.3.2.98
+++ mdfvideoadapter.cpp	31 Jul 2009 21:59:55 -0000	1.3.2.99
@@ -545,7 +545,71 @@
             pInitParam->m_bSyncDecoding = ETrue;
         }
         
-        lRetval = m_pDevVideoClient->CreateAndInit(pInitParam);        
+		//so as to get header information from codec 			
+		const char* pMimeTypeData = NULL;
+		pMimeTypeData = (char*) mimetypehelix.Ptr();
+			
+		MDFVIDEOLOG_WRITE_FORMAT( "got mimetype : %s", pMimeTypeData );
+			
+		HXBOOL bFrameSizeUnKnown = FALSE; //if set to true, means that the values are not \
set and the decoder CAN give them to us ie GetHeaderInfolL can be called +			
+		if(m_pHeader
+		&& pMimeTypeData)
+		{
+			//CHeck the mimetype
+			if(!strncmp(pMimeTypeData,"video/X-HX-AVC1",sizeof("video/X-HX-AVC1")-1) 
+			|| !strncmp(pMimeTypeData,"video/H264",sizeof("video/H264")-1)
+			|| !strncmp(pMimeTypeData,"video/H263-2000",sizeof("video/H263-2000")-1)
+			|| !strncmp(pMimeTypeData,"video/H263-1998",sizeof("video/H263-1998")-1)
+			|| !strncmp(pMimeTypeData,"video/H263",sizeof("video/H263")-1)
+			|| !strncmp(pMimeTypeData,"video/X-RN-3GPP-H263",sizeof("video/X-RN-3GPP-H263")-1)
 +			|| !strncmp(pMimeTypeData,"video/X-RN-MP4",sizeof("video/X-RN-MP4")-1)
+			|| !strncmp(pMimeTypeData,"video/MP4V-ES",sizeof("video/MP4V-ES")-1))
+			{
+			
+				MDFVIDEOLOG_WRITE_FORMAT( "Checking if Frame Size Values are known : %s", \
pMimeTypeData ); +			
+				//check if the FrameSize is unknown 
+				UINT32 ulFrameWidth = 0;
+				UINT32 ulFrameHeight = 0;
+
+				if( SUCCEEDED(m_pHeader->GetPropertyULONG32( "FrameWidth", ulFrameWidth ) ) &&
+					SUCCEEDED(m_pHeader->GetPropertyULONG32( "FrameHeight", ulFrameHeight ) ) )
+				{
+					MDFVIDEOLOG_WRITE_MULTI_FORMAT2( "Frame Values read - 1 : FrameWidth:%d and \
FrameHeight:%d", ulFrameWidth, ulFrameHeight ); +				}
+				else if( SUCCEEDED(m_pHeader->GetPropertyULONG32( "Width", ulFrameWidth ) ) &&
+						SUCCEEDED(m_pHeader->GetPropertyULONG32( "Height", ulFrameHeight ) ) )
+				{
+					MDFVIDEOLOG_WRITE_MULTI_FORMAT2( "Frame Values read - 2 : FrameWidth:%d and \
FrameHeight:%d", ulFrameWidth, ulFrameHeight ); +				}
+				else
+				{
+					MDFVIDEOLOG_WRITE_MULTI_FORMAT2( "Frame Size unknown  : FrameWidth:%d and \
FrameHeight:%d", ulFrameWidth, ulFrameHeight ); +					bFrameSizeUnKnown = TRUE;
+				}
+			
+			}
+		}
+		else
+		{
+			MDFVIDEOLOG_WRITE_FORMAT( " [%x] - unfit mimetype", this );
+		}
+
+			
+		//set the parameter for videoserversession
+		pInitParam->m_bFrameSizeUnKnown = bFrameSizeUnKnown;
+       
+		lRetval = m_pDevVideoClient->CreateAndInit(pInitParam);   
+		
+		if(lRetval == KErrNone
+		&& bFrameSizeUnKnown
+		&& m_pHeader)
+		{
+			MDFVIDEOLOG_WRITE_MULTI_FORMAT2( "Frame Values reported - 3 : FrameWidth:%d and \
FrameHeight:%d", pInitParam->m_ulFrameWidth, pInitParam->m_ulFrameHeight ); \
+			m_pHeader->SetPropertyULONG32("FrameWidth", pInitParam->m_ulFrameWidth);  \
+			m_pHeader->SetPropertyULONG32("FrameHeight", pInitParam->m_ulFrameHeight);  +		}  \
  
     } // End of if(lRetval == KErrNone)
     


_______________________________________________
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