multimediacommscontroller/mmccrtpsourcesink/tsrc/ut_rtpsourcesink/src/UT_CMccRtpDataSource.cpp
changeset 43 bf4e57f9a0ce
parent 0 1bce908db942
child 59 b0e4b01681c5
--- a/multimediacommscontroller/mmccrtpsourcesink/tsrc/ut_rtpsourcesink/src/UT_CMccRtpDataSource.cpp	Tue Jul 06 14:42:02 2010 +0300
+++ b/multimediacommscontroller/mmccrtpsourcesink/tsrc/ut_rtpsourcesink/src/UT_CMccRtpDataSource.cpp	Wed Aug 18 10:09:50 2010 +0300
@@ -36,6 +36,7 @@
 #include <srtpstreamin.h>
 #include "UT_CMccRtpInterface.h"
 #include "mccunittestmacros.h"
+#include "mccrtpmediaclock.h"
 
 // CONSTANTS
 _LIT8(KRFC3711_TestMasterKey128bits,    "E1F97A0D3E018BE0D64FA32C06DE4139");
@@ -103,7 +104,8 @@
         CMccRtpKeepaliveContainer::NewL( *eventHandler, 
                                          *iRtpApi, 
                                          rtpSessionId ); 
-                                         
+      
+    iRtpMediaClock = CMccRtpMediaClock::NewL();                                    
     } 
 
 void UT_CMccRtpDataSource::Teardown()
@@ -128,6 +130,12 @@
         }
         
     delete iEventHandler;
+    
+    if ( iRtpMediaClock )
+        {
+        delete iRtpMediaClock;
+        iRtpMediaClock = NULL;
+        }
     }
 
 
@@ -165,7 +173,7 @@
     cInfo.iBitrate = 8000;
     cInfo.iPayloadType = KDefaultAmrNbPT;
     TMccCodecInfoBuffer cInfoBuf( cInfo );
-    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf ) );
+    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf, iRtpMediaClock ) );
     }
     
 // TEST FUNCTIONS
@@ -209,7 +217,7 @@
     cInfo.iPayloadType = KDefaultAmrNbPT;
     TMccCodecInfoBuffer cInfoBuf( cInfo );
     
-    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf ) );
+    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf, iRtpMediaClock ) );
     //iSource->NegotiateSourceL( *iEventHandler );
     EUNIT_ASSERT_NO_LEAVE( iSource->NegotiateSourceL( *amrPfRead ) );
     EUNIT_ASSERT_NO_LEAVE( iSource->SourcePrimeL() );
@@ -375,7 +383,7 @@
     cInfo.iPayloadType = KDefaultAmrNbPT;
     TMccCodecInfoBuffer cInfoBuf( cInfo );
     
-    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf ) );
+    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf, iRtpMediaClock ) );
 
     MCC_EUNIT_ASSERT_EQUALS( iSource->SourceThreadLogon( *iEventHandler ), KErrNone );
     EUNIT_ASSERT_NO_LEAVE( iSource->SourcePrimeL() );
@@ -400,7 +408,7 @@
     cInfo.iPayloadType = KDefaultAmrNbPT;
     TMccCodecInfoBuffer cInfoBuf( cInfo );
     
-    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf ) );
+    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf, iRtpMediaClock ) );
 
     MCC_EUNIT_ASSERT_EQUALS( iSource->SourceThreadLogon( *iEventHandler ), KErrNone );
     EUNIT_ASSERT_NO_LEAVE( iSource->SourcePrimeL() );
@@ -521,7 +529,7 @@
     cInfo.iPayloadType = KDefaultAmrNbPT;
     TMccCodecInfoBuffer cInfoBuf( cInfo );
     
-    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf ) );
+    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf, iRtpMediaClock ) );
     MCC_EUNIT_ASSERT_EQUALS( iSource->SourceThreadLogon( *iEventHandler ), KErrNone );
     EUNIT_ASSERT_NO_LEAVE( iSource->SourcePrimeL() );
 
@@ -607,7 +615,7 @@
     cInfo.iFourCC = TFourCC( KMccFourCCIdG711 );
     cInfo.iEnableDTX = ETrue;
     TMccCodecInfoBuffer cInfoBuf( cInfo );
-    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf ) );
+    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf, iRtpMediaClock ) );
 
     header.iPayloadType = KPcmuPayloadType;
 
@@ -639,7 +647,7 @@
     TMccCodecInfo cInfo;
     TMccCodecInfoBuffer cInfoBuf( cInfo );
     
-    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf ) );
+    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf, iRtpMediaClock ) );
 
     // Get a new Source
     Teardown();
@@ -649,7 +657,7 @@
     TBuf8<5> dummy;
     dummy.Format( _L8( "foo42" ) );
     EUNIT_ASSERT_NO_LEAVE( iSource->SetSessionParamsL( params ) );
-    EUNIT_ASSERT_LEAVE( iSource->ConfigureL( dummy ) );
+    EUNIT_ASSERT_LEAVE( iSource->ConfigureL( dummy, iRtpMediaClock ) );
 
     // Get a new Source
     Teardown();
@@ -670,7 +678,7 @@
     cInfo2.iAlgoUsed = EGenRedUsed;
     TMccCodecInfoBuffer cInfoBuf2( cInfo2 );
 
-    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf2 ) );
+    EUNIT_ASSERT_NO_LEAVE( iSource->ConfigureL( cInfoBuf2, iRtpMediaClock ) );
     }
 
 void UT_CMccRtpDataSource::UT_CMccRtpDataSource_DoCreateSrtpStreamL()
@@ -701,7 +709,7 @@
     EUNIT_ASSERT_EQUALS( iEventHandler->iLastEvent.iEventType, KMccStreamResumed );
     
     // Jitter event when no event handler
-    TMccRtpEventData eventData;
+    TMccRtpEventDataExtended eventData;
     iSource->SendJitterEvent( eventData, KErrNone );
     EUNIT_ASSERT_EQUALS( iEventHandler->iLastEvent.iEventType, KMccStreamResumed );
 
@@ -779,6 +787,19 @@
     iSource->SendSecureRtpEventToClient( 
         iEventHandler, KMccRtpSourceUid, EMccInternalEventNone, KMccStreamPaused, 0 );
     EUNIT_ASSERT_EQUALS( iEventHandler->iLastEvent.iEventType, KMccStreamPaused );
+    
+    // SendJitterEventToClient()
+    iSource->SendJitterEventToClient( iEventHandler, KMccRtpSourceUid, 
+    	EMccInternalEventNone, KMccEventNone, 0, 0, 1,2,3,4,5,6 );
+    EUNIT_ASSERT_EQUALS( iEventHandler->iLastEvent.iEventType, KMccEventNone );
+    const TMccRtpEventDataExtended& rtpEvent = 
+    	(*reinterpret_cast<const TMccRtpEventDataExtendedPackage*>( &iEventHandler->iLastEvent.iEventData ))();
+    EUNIT_ASSERT_EQUALS( rtpEvent.iJitterEstimate, 1 );
+    EUNIT_ASSERT_EQUALS( rtpEvent.iPacketsReceived, 2 );
+    EUNIT_ASSERT_EQUALS( rtpEvent.iPrevTransTime, 3 );
+    EUNIT_ASSERT_EQUALS( rtpEvent.iTriggeredJitterLevel, 4 );
+    EUNIT_ASSERT_EQUALS( rtpEvent.iPacketLoss, 5 );
+    EUNIT_ASSERT_EQUALS( rtpEvent.iTriggeredPacketLoss, 6 );
     }
     
 void UT_CMccRtpDataSource::UT_CMccRtpDataSource_DoStandbyDecisionL()