rtp/rtpstack/inc/rtppacketparam.h
changeset 0 307788aac0a8
child 19 b5e99d8877c7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rtp/rtpstack/inc/rtppacketparam.h	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,310 @@
+/*
+* 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 __RTPPACKETPARAM_H
+#define __RTPPACKETPARAM_H
+
+//  INCLUDES
+//#include <e32def.h>
+#include <rtpheader.h>
+
+// DATA TYPES
+enum TRtpPacketType
+    {
+    ERTP                = 1,
+    ERTCP_HEADER        = 2,
+    ERTCP_SR            = 200,
+    ERTCP_RR            = 201,
+    ERTCP_SDES          = 202,
+    ERTCP_BYE           = 203,
+    ERTCP_APP           = 204
+    };
+
+/**
+*  Stream status parameters as received in latest packet. 
+*
+*  @lib RtpService.dll
+*/
+class TRtpPacketStreamParam 
+    {
+    public://Nested classes
+       
+       /**
+        * RTP packet
+        * Header field
+        **/
+        class TRtpStreamHeaderField
+            {
+            public: //Constructor
+                TRtpStreamHeaderField();
+                    
+            public: //Data        
+                TRtpSSRC SSRC;                 
+                TUint8 payload;
+                TRtpSequence seqNum;
+                TRtpTimeStamp timeStamp;
+            };
+      
+       /**
+        * RTCP packet
+        * Header field
+        **/
+        class TRtcpStreamHeaderField
+            {
+            public://Constructor
+                TRtcpStreamHeaderField();
+                
+            public: //Data
+                TRtpSSRC SSRC;
+            };
+       
+       /**
+        * RTCP packet
+        * SR field
+        **/
+        class TRtcpStreamHeaderFieldSR
+            {
+            public://Constructor
+                TRtcpStreamHeaderFieldSR();
+                    
+            public://Data    
+                TRtpSSRC SSRC;
+                TUint cumNumOctetsSent;
+                TUint numPacketsSent;
+            };
+     
+       /**
+        * RTCP packet
+        * RR field
+        **/   
+        class TRtcpStreamHeaderFieldRR
+            {
+            public://Constructor
+                TRtcpStreamHeaderFieldRR();
+                
+            public: //Data    
+                TRtpSSRC SSRC;
+                TUint8 fractionLost;
+                TUint cumNumPacketsLost;
+                TUint32 seqNumReceived;
+                TUint arrivalJitter;
+            };
+      
+       /**
+        * RTCP packet
+        * SDES field
+        **/    
+        class TRtcpStreamHeaderFieldSDES
+            {
+            public://Constructor
+                TRtcpStreamHeaderFieldSDES();
+                
+            public://Data
+                TRtpSSRC SSRC;
+            };
+     
+       /**
+        * RTCP packet
+        * BYE field
+        **/    
+        class TRtcpStreamHeaderFieldBYE
+            {
+            public://Constructor
+                TRtcpStreamHeaderFieldBYE();
+                
+            public://Data
+                TRtpSSRC SSRC;
+            };
+      
+       /**
+        * RTCP packet 
+        * APP field
+        **/    
+        class TRtcpStreamHeaderFieldAPP
+            {
+            public: //Constructor
+                TRtcpStreamHeaderFieldAPP();
+                
+            public://Data
+                TRtpSSRC SSRC;
+                TInt totalPacketLen;
+            };
+            
+    public://Packet data fields
+        TRtpStreamHeaderField TRTP;
+        TRtcpStreamHeaderField TRTCP_HEADER;
+        TRtcpStreamHeaderFieldSR TRTCP_SR;
+        TRtcpStreamHeaderFieldRR TRTCP_RR;
+        TRtcpStreamHeaderFieldSDES TRTCP_SDES;
+        TRtcpStreamHeaderFieldBYE TRTCP_BYE;
+        TRtcpStreamHeaderFieldAPP TRTCP_APP;
+    };
+
+/**
+*  Other passed/parsed parameters of the packet. 
+*
+*  @lib RtpService.dll
+*/
+class TRtpPacketIOParam 
+    {
+    public://Nested classes
+        
+       /**
+        * RTP packet
+        * Header field
+        **/ 
+        class TRtpIOHeaderField
+            {
+            
+            public://Constructor
+                TRtpIOHeaderField();
+                
+             public://Data
+                TUint8 padding;
+                TUint8 marker;
+                TUint8 fHeaderExtension;
+                TUint8 numCSRC;
+                TUint32* CSRCarray;
+                TUint8* payloadData;
+                TInt payloadDataLen;
+             
+             public://Nested class
+               /**
+                * RTP packet
+                * Header extension field
+                **/ 
+                class TRtpIOHeaderExtension
+                    {
+                    public://Constructor && Destructor
+                       TRtpIOHeaderExtension();
+                       
+                    public://Data
+                        TInt type;
+                        TInt length;
+                        TUint8* data;
+                    };
+                    
+             public://Packet data field
+                TRtpIOHeaderExtension extension;
+                
+            };
+        
+       /**
+        * RTCP packet
+        * Header field
+        **/ 
+        class TRtcpIOHeaderField
+            {
+            public://Constructor
+                TRtcpIOHeaderField();
+                
+            public://Data
+                TRtpPacketType pt;
+                TInt sourceCount;
+                TInt length;
+            };
+        
+       /**
+        * RTCP packet
+        * SR field
+        **/ 
+        class TRtcpIOHeaderFieldSR
+            {
+            public://Constructor
+                TRtcpIOHeaderFieldSR();
+                
+            public://Data
+                TUint32 NTPTimeStampSec;
+                TUint32 NTPTimeStampFrac;
+                TRtpTimeStamp timeStamp;
+            };
+        
+       /**
+        * RTCP packet
+        * RR field
+        **/ 
+        class TRtcpIOHeaderFieldRR
+            {
+            public://Constructor
+                TRtcpIOHeaderFieldRR();
+                
+            public://Data
+                TUint32 lastSRTimeStamp;
+                TUint32 delaySinceLSR;
+            };
+        
+       /**
+        * RTCP packet
+        * SDES field
+        **/ 
+        class TRtcpIOHeaderFieldSDES
+            {
+            public://Constructor
+                TRtcpIOHeaderFieldSDES();
+                
+            public://Data
+                TUint8* sdesItems[8];
+                TInt sdesItemsSize[8];
+                TInt paddingSize;
+            };
+        
+       /**
+        * RTCP packet
+        * BYE field
+        **/ 
+        class TRtcpIOHeaderFieldBYE
+            {
+            public://Constructor
+                TRtcpIOHeaderFieldBYE();
+                
+            public://Data
+                TUint8* reason;
+                TInt reasonSize;   
+                TInt paddingSize;
+            };
+        
+       /**
+        * RTCP packet
+        * APP field
+        **/ 
+        class TRtcpIOHeaderFieldAPP
+            {
+            public://Constructor
+                TRtcpIOHeaderFieldAPP();
+                
+             public://Data
+                TRtcpAppName name;
+                TUint8* appData;
+                TInt appDataLen;
+            };
+  
+    public:// Packet data fields
+        TRtpIOHeaderField TRTP;
+        TRtcpIOHeaderField TRTCP_HEADER;
+        TRtcpIOHeaderFieldSR TRTCP_SR;
+        TRtcpIOHeaderFieldRR TRTCP_RR;
+        TRtcpIOHeaderFieldSDES TRTCP_SDES;
+        TRtcpIOHeaderFieldBYE TRTCP_BYE;
+        TRtcpIOHeaderFieldAPP TRTCP_APP;
+    };
+
+#endif  // __RTPPACKETPARAMS_H
+
+// End of File