diff -r 000000000000 -r 307788aac0a8 rtp/rtpstack/inc/rtppacket.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rtp/rtpstack/inc/rtppacket.h Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,143 @@ +/* +* 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 __RTPPACKET_H +#define __RTPPACKET_H + +// INCLUDES +#include +#include "rtppacketparam.h" +#include +#include "rtputil.h" + +// CLASS DECLARATION + +/** +* The class for RTP packet building and processing. +* +* @lib RtpService.dll +*/ +class CRtpPacket : public CBase + { + #if defined( _DEBUG ) && defined( RTP_UNIT_TEST ) + //Friend class used for testing + friend class CRtpUtRtpPacket; + friend class CRtpUtRtpStream; + #endif + + public: + static CRtpPacket* NewL( TUint aPacketSize, const TUint32* aRtpTimeRates ); + + ~CRtpPacket(); + + void RtpPacketReset(); + void RtpPacketResetPtr(); + + TRtpSSRC RtpPacketGetSSRC(); + TRtpPayloadType RtpPacketGetPayloadType(); + + TInt RtpPacketBuild( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aInitParam ); + TRtpRtcpEnum RtpPacketProcessL( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aExtractParam ); + +// TInt RtpPacketBuildNonRtp( const TDesC8& aData, TUint aMaxPacketLength); + + inline void SetSize( TInt aSize ); + inline void SetType( TRtpPacketType aType ); + + inline TInt Size() const; + inline TUint8* Data(); + inline HBufC8* GetHBuf(); + inline TRtpPacketType Type() const; + inline const TPtrC8 Des() const; + + private: + TInt RtpPacketBuildRtp( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aInitParam ); + + TInt RtpPacketBuildRtcp( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aInitParam ); + + TInt RtpPacketBuildApp( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aInitParam ); + + TInt RtpPacketBuildBye( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aInitParam ); + + TInt RtpPacketBuildRr( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aInitParam ); + + TInt RtpPacketBuildSr( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aInitParam ); + + TInt RtpPacketBuildSdes( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aInitParam ); + + TRtpRtcpEnum RtpPacketProcessRtpL( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aExtractParam ); + TRtpRtcpEnum RtpPacketProcessRtcp( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aExtractParam ); + TRtpRtcpEnum RtpPacketProcessAppL( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aExtractParam ); + TRtpRtcpEnum RtpPacketProcessByeL( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aExtractParam ); + TRtpRtcpEnum RtpPacketProcessRr( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aExtractParam ); + TRtpRtcpEnum RtpPacketProcessSr( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aExtractParam ); + TRtpRtcpEnum RtpPacketProcessSdesL( TRtpPacketStreamParam* aStreamParam, + TRtpPacketIOParam* aExtractParam ); + + CRtpPacket( const TUint32* aRtpTimeRates ); + void ConstructL( TUint aPacketSize ); + + void Write16( TUint8* const aPointer, TUint16 aValue ); + TUint16 Read16( const TUint8* const aPointer ); + void Write24( TUint8* const aPointer, TUint32 aValue ); + TUint32 Read24( const TUint8* const aPointer ); + void Write32( TUint8 *const aPointer, TUint32 aValue ); + TUint32 Read32( const TUint8* const aPointer ); + + public: + TBool iExdataAlloc; + TBool iCsrcAlloc; + TRtpPacketIOParam* iExtractParam; + private: + HBufC8* iBuf; + TInt iSize; + TUint8* iData; // pointer to the beginning of the iBuf + TUint8* iDataPtr; // pointer to the beginning of date unhandled + TRtpPacketType iType; // an enum for packet type + const TUint32* iProfileRTPTimeRates; //pointer to + private: + #ifdef EUNIT_TESTING + friend class UT_CRtpPacket; + friend class UT_CRtpStream; + friend class UT_CRtpSession; + friend class UT_CRtpTranStream; + #endif + }; + +#include "rtppacket.inl" + +#endif // __RTPPACKET_H + +// End of File