[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