- initial import
This commit is contained in:
85
src/engine/helper/HL_Rtp.h
Normal file
85
src/engine/helper/HL_Rtp.h
Normal file
@@ -0,0 +1,85 @@
|
||||
/* Copyright(C) 2007-2017 VoIPobjects (voipobjects.com)
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#ifndef __HL_RTP_H
|
||||
#define __HL_RTP_H
|
||||
|
||||
#include "jrtplib/src/rtppacket.h"
|
||||
#include "HL_Uuid.h"
|
||||
#include "HL_InternetAddress.h"
|
||||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
// Class to carry rtp/rtcp socket pair
|
||||
template<class T>
|
||||
struct RtpPair
|
||||
{
|
||||
T mRtp;
|
||||
T mRtcp;
|
||||
|
||||
RtpPair()
|
||||
{}
|
||||
|
||||
RtpPair(const T& rtp, const T& rtcp)
|
||||
:mRtp(rtp), mRtcp(rtcp)
|
||||
{}
|
||||
|
||||
bool multiplexed() { return mRtp == mRtcp; }
|
||||
};
|
||||
|
||||
class RtpHelper
|
||||
{
|
||||
public:
|
||||
static bool isRtp(const void* buffer, int length);
|
||||
static int findPtype(const void* buffer, int length);
|
||||
static bool isRtpOrRtcp(const void* buffer, int length);
|
||||
static bool isRtcp(const void* buffer, int length);
|
||||
static unsigned findSsrc(const void* buffer, int length);
|
||||
static int findPayloadLength(const void* buffer, int length);
|
||||
};
|
||||
|
||||
class RtpDump
|
||||
{
|
||||
protected:
|
||||
struct RtpData
|
||||
{
|
||||
jrtplib::RTPPacket* mPacket;
|
||||
void* mData;
|
||||
unsigned mLength;
|
||||
};
|
||||
|
||||
typedef std::vector<RtpData> PacketList;
|
||||
PacketList mPacketList;
|
||||
std::string mFilename;
|
||||
|
||||
public:
|
||||
RtpDump(const char* filename);
|
||||
~RtpDump();
|
||||
|
||||
void load();
|
||||
int count() const;
|
||||
jrtplib::RTPPacket& packetAt(int index);
|
||||
void add(const void* data, int len);
|
||||
void flush();
|
||||
};
|
||||
|
||||
struct MediaStreamId
|
||||
{
|
||||
InternetAddress mSource;
|
||||
InternetAddress mDestination;
|
||||
uint32_t mSSRC = 0;
|
||||
bool mSsrcIsId = true;
|
||||
Uuid mLinkId;
|
||||
|
||||
bool operator < (const MediaStreamId& s2) const;
|
||||
bool operator == (const MediaStreamId& right) const;
|
||||
|
||||
std::string toString() const;
|
||||
std::string getDetectDescription() const;
|
||||
std::string getFinishDescription() const;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user