[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