rtp/rtpstack/tsrc/rtptestapp/src/rtptestapp.cpp
changeset 30 d7640adb246b
parent 29 5f12516512fa
child 33 b8a7e07b2677
--- a/rtp/rtpstack/tsrc/rtptestapp/src/rtptestapp.cpp	Thu Jun 24 14:43:49 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,422 +0,0 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    
-*
-*/
-
-
-// HEADERS
-#include <connpref.h>
-#include <es_sock.h>
-#include <commdbconnpref.h>
-#include "in_sock.h"
-#include <e32cons.h>
-#include <e32err.h>
-#include <e32std.h>
-#include <e32base.h>
-#include <badesca.h>
-#include <random.h>
-#include "rtpheader.h"
-#include "rtptestapp.h"
-
-const TUint KIAPID = 1;
-const TInt KLength = 20;
-_LIT8(KHello, "RTP APIs...testing");
-_LIT8(KNoCName, "");
-
-CConsoleBase *gConsole;
-CActiveScheduler *sched;
-
-void MainL()
-    {
-    // Create a Console 
-    gConsole = Console::NewL(_L("Test Console"), TSize(KConsFullScreen, KConsFullScreen));
-    CleanupStack::PushL(gConsole);
-    
-    // Create an Active scheduler 
-    sched = new (ELeave) CActiveScheduler;
-    CActiveScheduler::Install(sched);
-    
-    //IAP(Internet Access Point) id to be chaged as per comms dat
-    CRtpTestApp * iRtpTestApp = CRtpTestApp::NewL();   
-    
-    // Send RTP Packet with CSRC and Check RTP Stack 
-    // Supports maximum 15 contributing sources
-    iRtpTestApp->SendRtpPacketL();
-    
-    // Send RTP packet with zero length paylpoad
-    iRtpTestApp->SendZeroLengthRtpPacketL();
-    
-    // Send RTP Packets and Modify packet in callback function
-    iRtpTestApp->SendRtpPacketLoopbackL();
-    
-    
-    User::After(5000000);
-    delete iRtpTestApp;
-    delete sched;
-    CleanupStack::PopAndDestroy(gConsole);
-    
-    }
-
-CRtpTestApp * CRtpTestApp::NewL()
-{
-    gConsole->Printf(_L("RtpTestApp::NewL\n"));
-    CRtpTestApp* self = new( ELeave ) CRtpTestApp(); 
-    CleanupStack::PushL( self );
-    
-    // To construct the objects in the second-phase of the construction
-    self->ConstructL( );
-    CleanupStack::Pop( self);
-    return self;
-}
-
-CRtpTestApp::CRtpTestApp()
-    {
-    
-    }
-
-
-void CRtpTestApp::ErrorNotify( TInt /*aErrCode*/ )
-    {
-    
-    }
-
-void CRtpTestApp::SdesReceived( TRtpSSRC /*aSSRC*/,
-                   const TRtpSdesParams& /*aParams*/ )
-    {
-    
-    }
-
-void CRtpTestApp::ByeReceived( TRtpId /*aStreamId*/, TRtpSSRC /*aSSRC*/,
-                  const TDesC8& /*aReason*/ )
-    {
-    
-    }
-
-void CRtpTestApp::AppReceived( TRtpId /*aStreamId*/, TRtpSSRC /*aSSRC*/,
-                  const TRtcpApp& /*aApp*/ )
-    {
-    
-    }
-
-void CRtpTestApp::SrReceived( TRtpId /*aStreamId*/, TRtpSSRC /*aSSRC*/,
-                 const TTimeStamps& /*aTimeStamps*/ )
-    {
-    
-    }
-
-void CRtpTestApp::RrReceived( TRtpId /*aStreamId*/, TRtpSSRC /*aSSRC*/ )
-    {
-    
-    }
-
-void CRtpTestApp::RtpPacketReceived( TRtpId /*aStreamId*/, const TRtpRecvHeader& aHeaderInfo, const TDesC8& /*aPayloadData*/ )
-    {
-    gConsole->Printf(_L("RtpPacketReceived .. \n"));
-    
-    for(int i=0; i<aHeaderInfo.iCsrcCount; i++)
-        {
-        if ( (*iCsrclist)[i] == *(aHeaderInfo.iCsrcList+i) )
-            {
-            gConsole->Printf(_L("RtpPacketReceived, Successfully\n"));
-            }
-        else
-            {
-            gConsole->Printf(_L("Malformed RTP Packet Received\n"));
-            gConsole->Printf(_L("Test Case Failed\n"));
-            }
-        }
-    
-    // Check for modified Padding, header extension, Marker bit values 1
-    if( aHeaderInfo.iMarker == 0 )
-        {
-        gConsole->Printf(_L("Test Case Failed\n"));
-        }
-    }
-
-void CRtpTestApp::ReadyToSendRtpPacket(  TRtpId /*aTranStreamId*/, TPtr8 &aPacket  )
-    {
-    gConsole->Printf(_L("ReadyToSendRtpPacket Callback..\n"));
-    
-    // Change Marker bit value from 0 to 1
-    aPacket[1] = aPacket[1] | 0x80;
-    
-    TUint32* data32 = reinterpret_cast<TUint32*>(&(aPacket[8]));
-    //Change SSRC Value from
-    *data32 = ByteOrder::Swap32(0xDEADBEEF);
-    }
-
-void CrtpDataSender::RunL()
-    {
-    gConsole->Printf(_L("CrtpDataSender::RunL\n"));
-    CActiveScheduler::Stop();
-    }
-
-void CRtpTestApp::ConstructL()
-    {
-    iRtpApi = CRtpAPI::NewL(*this );
-
-    TVersion  version = iRtpApi->Version();
-    
-    TInt result(KErrNone);
-    
-    iParams.iCName.Set(KNoCName());
-
-    iRtpApi->OpenL( iParams, NULL, NULL, NULL );
-    
-    result = iRtpApi->StartConnection(KIAPID);
-    gConsole->Printf(_L("Local Ip Address %d\n"),result);
-    
-    TBuf<50> addrStr;
-    TInetAddr inetaddr = iRtpApi->GetLocalIPAddressL();
-    inetaddr.Output(addrStr);
-    
-    gConsole->Printf(_L("Local Ip Address %s\n"),addrStr.PtrZ());
-    
-    iSessionParams.iPriority = TCreateSessionParams::EPriorityStandard;
-    iSessionParams.iSocketBufSize = KSocketBufSize;
-    
-    
-    iPort1 = 8000 ;
-    iPort2 = 9000;
-
-    iRtcpParams.iRtcpFraction = 10;
-    iRtcpParams.iRtcpTimeOut = 5000000;
-    iRtcpParams.iSessionBWidth = 300;
-    
-    iEnableRtcp = EFalse;
-    
-    //Creating New session
-    iSessionId1  = KNullId;
-    iSessionId2 = KNullId;
-    iSessionId1 = iRtpApi->CreateSessionL(iSessionParams, iPort1, iEnableRtcp, &iRtcpParams);
-    iSessionId2 = iRtpApi->CreateSessionL(iSessionParams,iPort2,EFalse,&iRtcpParams);
-    
-    TInetAddr remAddress = iRtpApi->GetLocalIPAddressL(); 
-    remAddress.SetPort(iPort2); //Session 1 sends data to Session 2
-    
-    iRtpApi->SetRemoteAddress(iSessionId1, remAddress);
-     
-    iRtpApi->RegisterRtpObserver(iSessionId1, *this);
-    iRtpApi->RegisterRtcpObserver(iSessionId1, *this);
-    iRtpApi->RegisterRtpObserver(iSessionId2, *this);
-    iRtpApi->RegisterRtcpObserver(iSessionId2, *this);
-    iRtpApi->RegisterRtpPostProcessingObserver(iSessionId1, *this);
-    
-    TTranStreamParams streamParams;
-    streamParams.iPayloadType = 98;
-    TRtpSSRC locSSRC;
-    
-    iS1T1 = iRtpApi->CreateTransmitStreamL(iSessionId1,streamParams,locSSRC);
-    
-    TRcvStreamParams rcvParams;
-    rcvParams.iPayloadType = 98;
-
-    iS2R1 = iRtpApi->CreateReceiveStreamL(iSessionId2,rcvParams);
-    
-    
-    /* Start both the sessions */
-    TInt ret = iRtpApi->StartSession(iSessionId1);
-    ret = iRtpApi->StartSession(iSessionId2);
-    
-    iRtpApi->SetSamplingRate(98,8000);
-    }
-
-
-void CRtpTestApp::SendRtpPacketL()
-    {
-    gConsole->Printf(_L("SendRtpPackets  TO Loopback address and Verify Header fields.. \n"));
-    
-    TRtpSendHeader headerinfo;
-    headerinfo.iHeaderExtension = NULL;
-    headerinfo.iMarker = 0;
-    headerinfo.iPadding = 0;
-    headerinfo.iPayloadType = 98;
-    headerinfo.iTimestamp = 1000;
-    
-    HBufC8* data = HBufC8::NewLC(KLength);
-    data->Des().Copy(KHello);
-
-    
-    TRtpSendPktParams *header = new(ELeave) TRtpSendPktParams(headerinfo);
-    CleanupDeletePushL(header);
-    header->iTranStreamId = iS1T1;
-    header->iPayloadData.Set(data->Des()); 
-    
-    const TUint KArrayGranularity = 15;
-    
-    iCsrclist = new(ELeave) CArrayFixFlat<TUint32>(KArrayGranularity);
-    
-    // Send RTP Packets with CSRC list - 17 CSRC. Max Supported CSRC list is 15.
-    iCsrclist->AppendL(100001);
-    iCsrclist->AppendL(100002);
-    iCsrclist->AppendL(100003);
-    iCsrclist->AppendL(100004);
-    iCsrclist->AppendL(100005);
-    iCsrclist->AppendL(100006);
-    iCsrclist->AppendL(100007);
-    iCsrclist->AppendL(100008);
-    iCsrclist->AppendL(100009);
-    iCsrclist->AppendL(100010);
-    iCsrclist->AppendL(100011);
-    iCsrclist->AppendL(100012);
-    iCsrclist->AppendL(100013);
-    iCsrclist->AppendL(100014);
-    iCsrclist->AppendL(100015);
-    iCsrclist->AppendL(100016);
-    iCsrclist->AppendL(100017);
-    
-    iRtpApi->SetSamplingRate(headerinfo.iPayloadType, 8000);
-    TInt ret1 = iRtpApi->SendRtpPacket(*header, iCsrclist->Array());
-    
-    CrtpDataSender *datasend = CrtpDataSender::NewL(iRtpApi, iS1T1);
-    CleanupStack::PushL(datasend);
-    
-    datasend->SendRtpData(*header, iCsrclist->Array());
-    
-    gConsole->Printf(_L("SendRtpPacket %d\n"),ret1);
-    
-    CActiveScheduler::Start();
-    
-    CleanupStack::PopAndDestroy(3);
-    delete iCsrclist;
-    iCsrclist = 0;
-    }
-
-
-void CRtpTestApp::SendRtpPacketLoopbackL()
-    {
-    gConsole->Printf(_L("SendRtpPackets  TO Loopback address and Verify Header fields.. \n"));
-
-    TRtpSendHeader header; 
-    header.iHeaderExtension = NULL;
-    header.iMarker = 0;
-    header.iPadding = 0;
-    header.iPayloadType = 98;
-    header.iTimestamp = 1000;
-    
-    HBufC8* data = HBufC8::NewLC(KLength);
-    data->Des().Copy(KHello);
-
-    TRtpSendPktParams *headerinfo = new(ELeave) TRtpSendPktParams(header);
-    CleanupDeletePushL(headerinfo);
-    headerinfo->iTranStreamId = iS1T1;
-    headerinfo->iPayloadData.Set(data->Des()); 
-    
-    const TUint KArrayGranularity = 15;
-    
-    // Create CSRC list and Append CSRC identifiers
-    iCsrclist = new(ELeave) CArrayFixFlat<TUint32>(KArrayGranularity);
-    
-    iCsrclist->AppendL(123456);
-    iCsrclist->AppendL(999999);
-     
-    TInt error2( KErrNone );
-    // Try sending synchronously with Csrc
-    error2 = iRtpApi->SendRtpPacket(*headerinfo, iCsrclist->Array());
-    gConsole->Printf(_L("SendRtpPacket.. %d\n"), error2);
-    
-    // Try sending asynchronously with CSRC
-    CrtpDataSender *datasend = CrtpDataSender::NewL(iRtpApi, iS1T1);
-    CleanupStack::PushL(datasend);
-    datasend->SendRtpData(*headerinfo, iCsrclist->Array());
-    gConsole->Printf(_L("SendRtpPacket.. %d\n"), error2);
-    
-    CActiveScheduler::Start();
-    
-    CleanupStack::PopAndDestroy(3);
-    delete iCsrclist;
-    iCsrclist = 0;
-    }
-
-void CRtpTestApp::SendZeroLengthRtpPacketL()
-    {
-    // Start Session on Session id
-    iRtpApi->StartSession(iSessionId1);
-    
-    TInetAddr remAddress = iRtpApi->GetLocalIPAddressL();
-    remAddress.SetPort(9000); //Session 1 sends data to Session 2
-    
-    iRtpApi->SetRemoteAddress(iSessionId1, remAddress);
-    
-    iRtpApi->RegisterRtpObserver(iSessionId1, *this);
-    iRtpApi->RegisterRtcpObserver(iSessionId1, *this);
-    iRtpApi->RegisterRtpPostProcessingObserver(iSessionId1, *this);
-    
-    //iRtpApi->SetNonRTPDataObserver(iSessionId1, *this);
-    
-    TTranStreamParams tranStreamParams;
-    tranStreamParams.iPayloadType = 96;
-    TRtpSSRC ssrc = 4567890;
-    
-    TRtpId streamId = iRtpApi->CreateTransmitStreamL(iSessionId1, tranStreamParams, ssrc);
-
-    
-    TRtpSendHeader headerinfo;
-    headerinfo.iHeaderExtension = 0;
-    headerinfo.iPayloadType = 96;
-    headerinfo.iTimestamp = 12345678;
-    
-    TRtpSendPktParams *header = new(ELeave) TRtpSendPktParams(headerinfo);
-    CleanupDeletePushL(header);
-    header->iTranStreamId = streamId;
-    
-    const TUint KArrayGranularity = 15;
-    
-    iCsrclist = new(ELeave) CArrayFixFlat<TUint32>(KArrayGranularity);
-    
-    // Send RTP Packets with CSRC list
-    iCsrclist->AppendL(100001);
-    iCsrclist->AppendL(100002);
-    
-    iRtpApi->SetSamplingRate(headerinfo.iPayloadType, 8000);
-    
-    TInt ret1 = iRtpApi->SendRtpPacket(*header, iCsrclist->Array());
-    
-    CrtpDataSender *datasend = CrtpDataSender::NewL(iRtpApi, streamId);
-    CleanupStack::PushL(datasend);
-    datasend->SendRtpData(*header, iCsrclist->Array());
-    
-    CActiveScheduler::Start();
-    
-    CleanupStack::PopAndDestroy(2);
-    delete iCsrclist;
-    iCsrclist = 0;
-    }
-
-CRtpTestApp::~CRtpTestApp()
-    {
-    delete iRtpApi;
-    }
-
-GLDEF_C TInt E32Main()
-/**
- * @return - Standard Epoc error code on exit
- */
-    {
-    __UHEAP_MARK;
-    CTrapCleanup* cleanup = CTrapCleanup::New();
-    if(!cleanup)
-        {
-        return KErrNoMemory;
-        }
-    TInt err = 0;
-    TRAP(err,MainL());
-    delete cleanup;
-    __UHEAP_MARKEND;
-    return err;
-    }
-
-