rtp/rtpstack/inc/rtpstreamdef.h
changeset 0 307788aac0a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rtp/rtpstack/inc/rtpstreamdef.h	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,136 @@
+/*
+* Copyright (c) 2004-2005 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:    
+*
+*/
+
+
+
+
+#ifndef RtpStreamDef_H
+#define RtpStreamDef_H
+
+
+
+// CONSTANTS
+const TUint KSNMaxArray = 200;
+
+// Number of seconds between 1-Jan-1900 and 1-jan-1970
+const TUint32 KGetTimeOfDayToNTPOffset = 2208988800U;
+
+
+
+// CLASS DECLARATIONS
+/**
+*  Callback class used by CRtpStream and CRtpSession. 
+*
+*  @lib RtpService.dll
+*/
+class MSsrcCheckCallback
+    {
+    public:
+        /**
+         * Inform this object that a new SSRC is found within a packet
+         */
+        virtual TInt CheckRemoteSsrcL( TRtpSSRC& aSSRC ) = 0;
+        virtual TBool CheckRemoteAddr() =0;
+    };
+
+
+/**
+*  stream time synchronization struct for NTP time calculation
+*
+*  @lib RtpService.dll
+*/
+class TRtpTimeSync
+    {
+    public:
+        // for RX stream: they record the NTP time from SR and will be used by creating RR
+        // for TX stream: they are generated for creating SR.
+        TUint32 iNTPTimeStampSec;  // seconds
+        TUint32 iNTPTimeStampFrac; // fraction
+
+        // RTP Time stamp of last packet sent by TX stream
+        TRtpTimeStamp iTimeStamp;
+
+        // for RX stream: time when last NTP time stamp (SR report) has been received.
+        // for TX stream: time of initialization (for NTP synchronization)
+        TUint32 iLastUpdateLocalTime;
+    };
+
+
+/**
+*  stream time jitter struct, just be used by receiving stream
+*
+*  @lib RtpService.dll
+*/
+class TRtpTimeJitter
+    {
+    public:
+        TUint32 iTimeStampResolution;   
+
+        // The time of arrival in tenth of ms. 
+        TUint32 iLastPacketR;
+
+        // The RTP timestamp from last packet
+        TRtpTimeStamp iLastPacketS;          
+
+        //
+        // keeps jitter time for RR report. 
+        // It will be tailored to TUint32 when assigned to RR.JitterTime.
+        //
+        TReal64 iJitterTime;
+
+        TUint32 iWaitTime;
+    };
+
+class TRtcpReceiverStats
+    {
+    public:
+        TRtpSSRC iSSRC;              // SSRC receiver number 
+        TUint8 iFractionLost;        // fraction lost 
+        TUint32 iCumNumPacketsLost;  // packets lost
+        TUint32 iSeqNumReceived;     // sequence number
+        TUint32 iArrivalJitter;      // arrival jitter 
+        TUint32 iRoundTripDelay;     // round trip delay of RTP packet 
+        TUint32 iBandwidth;          // receiver bandwidth (bps) calculated by the transmitter 
+        TUint32 iTxBandwidth;        // transmitter bandwidth (bps) calculated at transmitter 
+        TUint32 iChannelBufferSize;  // an estimate of the channel buffer size 
+    };
+
+class TRtcpSenderStats
+    {
+    public:
+        TRtpSSRC iSSRC;              // SSRC transmitter number 
+        TUint32 iNumPacketsSent;     // number of packets sent 
+        TUint32 iCumNumOctetsSent;   // number of octets sent 
+        TUint32 iNTPTimeStampSec;    // NTP seconds
+        TUint32 iNTPTimeStampFrac;   // NTPfraction
+        TUint32 iTimeStamp;          // RTP Time stamp of last packet sent by TX stream
+    };
+
+class TRtcpStats
+    {
+    public:
+        TRtcpSenderStats iRtcpSenderStats;      // Sender's statistic structure 
+        TRtcpReceiverStats iRtcpReceiverStats;  // Receiver's statistic structure 
+    };
+
+
+#endif	// RtpStreamDef_H
+
+
+
+
+