diff -r 000000000000 -r 307788aac0a8 rtp/rtpstack/inc/rtpstreamdef.h --- /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 + + + + +