multimediacommscontroller/mmccrtpsourcesink/tsrc/ut_rtpsourcesink/src/UT_CMccRtpDataSink.cpp
changeset 43 bf4e57f9a0ce
parent 0 1bce908db942
child 59 b0e4b01681c5
equal deleted inserted replaced
35:72290a6868df 43:bf4e57f9a0ce
    40 #include "amrpayloadformatwrite.h"
    40 #include "amrpayloadformatwrite.h"
    41 #include <srtpcryptocontext.h>
    41 #include <srtpcryptocontext.h>
    42 #include <srtpmastersalt.h>
    42 #include <srtpmastersalt.h>
    43 #include <srtpstreamout.h>
    43 #include <srtpstreamout.h>
    44 #include "mccunittestmacros.h"
    44 #include "mccunittestmacros.h"
       
    45 #include "mccrtpmediaclock.h"
    45 
    46 
    46 
    47 
    47 #define MCCEVENTDATAPCKG_TO_RTCPEVENTDATAPCKG( event )\
    48 #define MCCEVENTDATAPCKG_TO_RTCPEVENTDATAPCKG( event )\
    48     *reinterpret_cast<TMccRtcpEventDataPackage*>( &event.iEventData )
    49     *reinterpret_cast<TMccRtcpEventDataPackage*>( &event.iEventData )
    49 
    50 
   113     iRtpKeepaliveMechanism = 
   114     iRtpKeepaliveMechanism = 
   114         CMccRtpKeepaliveContainer::NewL( *eventHandler, 
   115         CMccRtpKeepaliveContainer::NewL( *eventHandler, 
   115                                          *iRtpApi, 
   116                                          *iRtpApi, 
   116                                          rtpSessionId ); 
   117                                          rtpSessionId ); 
   117                                          
   118                                          
       
   119     iRtpMediaClock = CMccRtpMediaClock::NewL();                                     
   118     } 
   120     } 
   119 
   121 
   120 void UT_CMccRtpDataSink::Teardown()
   122 void UT_CMccRtpDataSink::Teardown()
   121     {
   123     {
   122     delete iRtpKeepaliveMechanism;
   124     delete iRtpKeepaliveMechanism;
   134     if ( iRtpApi )
   136     if ( iRtpApi )
   135         {
   137         {
   136         delete iRtpApi;
   138         delete iRtpApi;
   137         iRtpApi = NULL;
   139         iRtpApi = NULL;
   138         }
   140         }
       
   141         
       
   142     if ( iRtpMediaClock )
       
   143         {
       
   144         delete iRtpMediaClock;
       
   145         iRtpMediaClock = NULL;
       
   146         }
   139     }
   147     }
   140 
   148 
   141 // HELPERS
   149 // HELPERS
   142 //
   150 //
   143 
   151 
   154     iSink->SetSessionParamsL( params );
   162     iSink->SetSessionParamsL( params );
   155 
   163 
   156     TMccCodecInfo cInfo;
   164     TMccCodecInfo cInfo;
   157     TMccCodecInfoBuffer cInfoBuf( cInfo );
   165     TMccCodecInfoBuffer cInfoBuf( cInfo );
   158     
   166     
   159     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   167     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   160     }
   168     }
   161 
   169 
   162 
   170 
   163 // TEST FUNCTIONS
   171 // TEST FUNCTIONS
   164 //
   172 //
   216     data.iRtcpPacketType = KRtcpAnyPacket;
   224     data.iRtcpPacketType = KRtcpAnyPacket;
   217     EUNIT_ASSERT_LEAVE( iSink->SendMediaSignallingL( event ) );
   225     EUNIT_ASSERT_LEAVE( iSink->SendMediaSignallingL( event ) );
   218     
   226     
   219     TMccCodecInfo cInfo;
   227     TMccCodecInfo cInfo;
   220     TMccCodecInfoBuffer cInfoBuf( cInfo );
   228     TMccCodecInfoBuffer cInfoBuf( cInfo );
   221     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   229     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   222     MCC_EUNIT_ASSERT_EQUALS( iSink->SinkThreadLogon( *this ), KErrNone );
   230     MCC_EUNIT_ASSERT_EQUALS( iSink->SinkThreadLogon( *this ), KErrNone );
   223     iSink->SetCurrentUser( this );
   231     iSink->SetCurrentUser( this );
   224     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   232     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   225 
   233 
   226     TMccRtcpEventDataPackage& eventDataPackage = MCCEVENTDATAPCKG_TO_RTCPEVENTDATAPCKG( event );
   234     TMccRtcpEventDataPackage& eventDataPackage = MCCEVENTDATAPCKG_TO_RTCPEVENTDATAPCKG( event );
   287     TMccCodecInfoBuffer cInfoBuf( cInfo );
   295     TMccCodecInfoBuffer cInfoBuf( cInfo );
   288     
   296     
   289     MCC_EUNIT_ASSERT_EQUALS( iSink->SinkThreadLogon( *this ), KErrNone );
   297     MCC_EUNIT_ASSERT_EQUALS( iSink->SinkThreadLogon( *this ), KErrNone );
   290     iSink->SetCurrentUser( this );
   298     iSink->SetCurrentUser( this );
   291     EUNIT_ASSERT_NO_LEAVE( iSink->SetSessionParamsL( params ) );
   299     EUNIT_ASSERT_NO_LEAVE( iSink->SetSessionParamsL( params ) );
   292     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   300     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   293     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   301     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   294     iSink->SinkThreadLogoff();
   302     iSink->SinkThreadLogoff();
   295     }
   303     }
   296 
   304 
   297 void UT_CMccRtpDataSink::UT_CMccRtpDataSink_SinkDataTypeCodeL()
   305 void UT_CMccRtpDataSink::UT_CMccRtpDataSink_SinkDataTypeCodeL()
   364     EUNIT_ASSERT_LEAVE( iSink->SinkPrimeL() );
   372     EUNIT_ASSERT_LEAVE( iSink->SinkPrimeL() );
   365 
   373 
   366     TMccCodecInfo cInfo;
   374     TMccCodecInfo cInfo;
   367     TMccCodecInfoBuffer cInfoBuf( cInfo );
   375     TMccCodecInfoBuffer cInfoBuf( cInfo );
   368     
   376     
   369     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   377     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   370     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   378     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   371     EUNIT_ASSERT( iRtpKeepaliveMechanism->iStopped == EFalse );
   379     EUNIT_ASSERT( iRtpKeepaliveMechanism->iStopped == EFalse );
   372   
   380   
   373     // "Secure session"
   381     // "Secure session"
   374     iRtpKeepaliveMechanism->iStopped = ETrue;
   382     iRtpKeepaliveMechanism->iStopped = ETrue;
   613     EUNIT_ASSERT_LEAVE( iSink->SinkPrimeL() );
   621     EUNIT_ASSERT_LEAVE( iSink->SinkPrimeL() );
   614 
   622 
   615     TMccCodecInfo cInfo;
   623     TMccCodecInfo cInfo;
   616     TMccCodecInfoBuffer cInfoBuf( cInfo );
   624     TMccCodecInfoBuffer cInfoBuf( cInfo );
   617     
   625     
   618     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   626     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   619     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() ); 
   627     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() ); 
   620 
   628 
   621     // Create a comfort noise stream
   629     // Create a comfort noise stream
   622     //codec = KMccFourCCIdG711;
   630     //codec = KMccFourCCIdG711;
   623     //EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   631     //EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   636     iSink->SetSessionParamsL( params );
   644     iSink->SetSessionParamsL( params );
   637 
   645 
   638     TMccCodecInfo cInfo;
   646     TMccCodecInfo cInfo;
   639     TMccCodecInfoBuffer cInfoBuf( cInfo );
   647     TMccCodecInfoBuffer cInfoBuf( cInfo );
   640     
   648     
   641     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   649     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   642 
   650 
   643     // This should leave because the string is too short
   651     // This should leave because the string is too short
   644     TBuf8<5> dummy;
   652     TBuf8<5> dummy;
   645     dummy.Format( _L8( "foo42" ) );
   653     dummy.Format( _L8( "foo42" ) );
   646     EUNIT_ASSERT_LEAVE( iSink->ConfigureL( dummy ) );
   654     EUNIT_ASSERT_LEAVE( iSink->ConfigureL( dummy, iRtpMediaClock ) );
   647 
   655 
   648     // Get a new sink
   656     // Get a new sink
   649     //Teardown();
   657     //Teardown();
   650     if( iRtpKeepaliveMechanism )
   658     if( iRtpKeepaliveMechanism )
   651     	{
   659     	{
   688     cInfo2.iRedundantPayload = 97;
   696     cInfo2.iRedundantPayload = 97;
   689     cInfo2.iRedundancyCount = 1;
   697     cInfo2.iRedundancyCount = 1;
   690     cInfo2.iAlgoUsed = EGenRedUsed;
   698     cInfo2.iAlgoUsed = EGenRedUsed;
   691     TMccCodecInfoBuffer cInfoBuf2( cInfo2 );
   699     TMccCodecInfoBuffer cInfoBuf2( cInfo2 );
   692 
   700 
   693     EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf2 ) );
   701     EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf2, iRtpMediaClock ) );
   694     }
   702     }
   695 
   703 
   696 void UT_CMccRtpDataSink::UT_CMccRtpDataSink_RemoveStreamLL()
   704 void UT_CMccRtpDataSink::UT_CMccRtpDataSink_RemoveStreamLL()
   697     {
   705     {
   698 /*
   706 /*
   739     iSink->SetSessionParamsL( params );
   747     iSink->SetSessionParamsL( params );
   740     
   748     
   741     TMccCodecInfo cInfo;
   749     TMccCodecInfo cInfo;
   742     TMccCodecInfoBuffer cInfoBuf( cInfo );
   750     TMccCodecInfoBuffer cInfoBuf( cInfo );
   743     
   751     
   744     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   752     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   745 
   753 
   746     // Wrong state
   754     // Wrong state
   747     EUNIT_ASSERT_LEAVE( iSink->SinkPlayL() );
   755     EUNIT_ASSERT_LEAVE( iSink->SinkPlayL() );
   748 
   756 
   749     iSink->SinkPrimeL();
   757     iSink->SinkPrimeL();
   768     iSink->SetSessionParamsL( params );
   776     iSink->SetSessionParamsL( params );
   769     
   777     
   770     TMccCodecInfo cInfo;
   778     TMccCodecInfo cInfo;
   771     TMccCodecInfoBuffer cInfoBuf( cInfo );
   779     TMccCodecInfoBuffer cInfoBuf( cInfo );
   772     
   780     
   773     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   781     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   774 
   782 
   775     // Wrong state
   783     // Wrong state
   776     EUNIT_ASSERT_LEAVE( iSink->SinkPauseL() );
   784     EUNIT_ASSERT_LEAVE( iSink->SinkPauseL() );
   777 
   785 
   778     iSink->SinkPrimeL();
   786     iSink->SinkPrimeL();
   795     iSink->SetSessionParamsL( params );
   803     iSink->SetSessionParamsL( params );
   796     
   804     
   797     TMccCodecInfo cInfo;
   805     TMccCodecInfo cInfo;
   798     TMccCodecInfoBuffer cInfoBuf( cInfo );
   806     TMccCodecInfoBuffer cInfoBuf( cInfo );
   799     
   807     
   800     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   808     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   801     iSink->SinkPrimeL();
   809     iSink->SinkPrimeL();
   802     iSink->SinkPlayL();
   810     iSink->SinkPlayL();
   803 
   811 
   804     // Ok
   812     // Ok
   805     EUNIT_ASSERT_NO_LEAVE( iSink->SinkStopL() );
   813     EUNIT_ASSERT_NO_LEAVE( iSink->SinkStopL() );