RTP rewrite using generic RTP::toDTSC class
This commit is contained in:
parent
9bcd365361
commit
7a03d3e96c
4 changed files with 904 additions and 510 deletions
45
lib/sdp.h
45
lib/sdp.h
|
@ -1,15 +1,26 @@
|
|||
#include "dtsc.h"
|
||||
#include "h265.h"
|
||||
#include "http_parser.h"
|
||||
#include "rtp.h"
|
||||
#include "socket.h"
|
||||
#include "h265.h"
|
||||
#include <vector>
|
||||
|
||||
namespace SDP{
|
||||
|
||||
double getMultiplier(const DTSC::Track & Trk);
|
||||
double getMultiplier(const DTSC::Track &Trk);
|
||||
|
||||
/// Structure used to keep track of selected tracks.
|
||||
class Track{
|
||||
public:
|
||||
Track();
|
||||
std::string generateTransport(uint32_t trackNo, const std::string &dest = "",
|
||||
bool TCPmode = true);
|
||||
std::string getParamString(const std::string ¶m) const;
|
||||
uint64_t getParamInt(const std::string ¶m) const;
|
||||
bool parseTransport(const std::string &transport, const std::string &host,
|
||||
const std::string &source, const DTSC::Track &trk);
|
||||
std::string rtpInfo(const DTSC::Track &trk, const std::string &source, uint64_t currentTime);
|
||||
|
||||
public:
|
||||
Socket::UDPConnection data;
|
||||
Socket::UDPConnection rtcp;
|
||||
|
@ -29,38 +40,26 @@ namespace SDP{
|
|||
uint64_t fpsTime;
|
||||
double fpsMeta;
|
||||
double fps;
|
||||
Track();
|
||||
std::string generateTransport(uint32_t trackNo, const std::string &dest = "", bool TCPmode = true);
|
||||
std::string getParamString(const std::string ¶m) const;
|
||||
uint64_t getParamInt(const std::string ¶m) const;
|
||||
bool parseTransport(const std::string &transport, const std::string &host,
|
||||
const std::string &source, const DTSC::Track &trk);
|
||||
std::string rtpInfo(const DTSC::Track &trk, const std::string &source, uint64_t currentTime);
|
||||
};
|
||||
|
||||
class State{
|
||||
public:
|
||||
State(){
|
||||
incomingPacketCallback = 0;
|
||||
myMeta = 0;
|
||||
}
|
||||
DTSC::Meta *myMeta;
|
||||
State();
|
||||
void (*incomingPacketCallback)(const DTSC::Packet &pkt);
|
||||
std::map<uint32_t, Track> tracks; ///< List of selected tracks with SDP-specific session data.
|
||||
void parseSDP(const std::string &sdp);
|
||||
void parseSDPEx(const std::string &sdp);
|
||||
void updateH264Init(uint64_t trackNo);
|
||||
void updateH265Init(uint64_t trackNo);
|
||||
void updateInit(const uint64_t trackNo, const std::string &initData);
|
||||
uint32_t getTrackNoForChannel(uint8_t chan);
|
||||
uint32_t parseSetup(HTTP::Parser &H, const std::string &host,
|
||||
const std::string &source);
|
||||
uint32_t parseSetup(HTTP::Parser &H, const std::string &host, const std::string &source);
|
||||
void handleIncomingRTP(const uint64_t track, const RTP::Packet &pkt);
|
||||
void h264MultiParse(uint64_t ts, const uint64_t track, char *buffer, const uint32_t len);
|
||||
void h264Packet(uint64_t ts, const uint64_t track, const char *buffer, const uint32_t len,
|
||||
bool isKey);
|
||||
void h265Packet(uint64_t ts, const uint64_t track, const char *buffer, const uint32_t len,
|
||||
bool isKey);
|
||||
public:
|
||||
DTSC::Meta *myMeta;
|
||||
std::map<uint32_t, RTP::toDTSC> tConv; ///<Converters to DTSC
|
||||
std::map<uint32_t, Track> tracks; ///< List of selected tracks with SDP-specific session data.
|
||||
};
|
||||
|
||||
std::string mediaDescription(const DTSC::Track &trk);
|
||||
}
|
||||
}// namespace SDP
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue