Fix RTSP input compile

This commit is contained in:
Thulinma 2017-10-26 01:16:51 +02:00
parent a97d3e8d27
commit 60e04c4058
2 changed files with 9 additions and 10 deletions

View file

@ -79,7 +79,7 @@ namespace Mist{
void InputRTSP::sendCommand(const std::string &cmd, const std::string &cUrl, void InputRTSP::sendCommand(const std::string &cmd, const std::string &cUrl,
const std::string &body, const std::string &body,
const std::map<std::string, std::string> &extraHeaders){ const std::map<std::string, std::string> *extraHeaders){
++cSeq; ++cSeq;
sndH.Clean(); sndH.Clean();
sndH.protocol = "RTSP/1.0"; sndH.protocol = "RTSP/1.0";
@ -92,9 +92,9 @@ namespace Mist{
sndH.SetHeader("User-Agent", "MistServer " PACKAGE_VERSION); sndH.SetHeader("User-Agent", "MistServer " PACKAGE_VERSION);
sndH.SetHeader("CSeq", JSON::Value((long long)cSeq).asString()); sndH.SetHeader("CSeq", JSON::Value((long long)cSeq).asString());
if (session.size()){sndH.SetHeader("Session", session);} if (session.size()){sndH.SetHeader("Session", session);}
if (extraHeaders.size()){ if (extraHeaders && extraHeaders->size()){
for (std::map<std::string, std::string>::const_iterator it = extraHeaders.begin(); for (std::map<std::string, std::string>::const_iterator it = extraHeaders->begin();
it != extraHeaders.end(); ++it){ it != extraHeaders->end(); ++it){
sndH.SetHeader(it->first, it->second); sndH.SetHeader(it->first, it->second);
} }
} }
@ -130,11 +130,11 @@ namespace Mist{
void InputRTSP::parseStreamHeader(){ void InputRTSP::parseStreamHeader(){
std::map<std::string, std::string> extraHeaders; std::map<std::string, std::string> extraHeaders;
extraHeaders["Accept"] = "application/sdp"; extraHeaders["Accept"] = "application/sdp";
sendCommand("DESCRIBE", url.getUrl(), "", extraHeaders); sendCommand("DESCRIBE", url.getUrl(), "", &extraHeaders);
parsePacket(); parsePacket();
if (!seenSDP && authRequest.size() && (username.size() || password.size()) && tcpCon){ if (!seenSDP && authRequest.size() && (username.size() || password.size()) && tcpCon){
INFO_MSG("Authenticating..."); INFO_MSG("Authenticating...");
sendCommand("DESCRIBE", url.getUrl(), "", extraHeaders); sendCommand("DESCRIBE", url.getUrl(), "", &extraHeaders);
parsePacket(); parsePacket();
} }
if (!tcpCon || !seenSDP){ if (!tcpCon || !seenSDP){
@ -147,7 +147,7 @@ namespace Mist{
transportSet = false; transportSet = false;
extraHeaders.clear(); extraHeaders.clear();
extraHeaders["Transport"] = it->second.generateTransport(it->first, url.host, TCPmode); extraHeaders["Transport"] = it->second.generateTransport(it->first, url.host, TCPmode);
sendCommand("SETUP", url.link(it->second.control).getUrl(), "", extraHeaders); sendCommand("SETUP", url.link(it->second.control).getUrl(), "", &extraHeaders);
parsePacket(); parsePacket();
if (!tcpCon || !transportSet){ if (!tcpCon || !transportSet){
FAIL_MSG("Could not setup track %s!", myMeta.tracks[it->first].getIdentifier().c_str()); FAIL_MSG("Could not setup track %s!", myMeta.tracks[it->first].getIdentifier().c_str());
@ -159,7 +159,7 @@ namespace Mist{
INFO_MSG("Setup complete"); INFO_MSG("Setup complete");
extraHeaders.clear(); extraHeaders.clear();
extraHeaders["Range"] = "npt=0.000-"; extraHeaders["Range"] = "npt=0.000-";
sendCommand("PLAY", url.getUrl(), "", extraHeaders); sendCommand("PLAY", url.getUrl(), "", &extraHeaders);
if (!TCPmode){ if (!TCPmode){
tcpCon.setBlocking(false); tcpCon.setBlocking(false);
connectedAt = Util::epoch() + 2208988800ll; connectedAt = Util::epoch() + 2208988800ll;

View file

@ -26,8 +26,7 @@ namespace Mist{
void parseStreamHeader(); void parseStreamHeader();
void seek(int seekTime){} void seek(int seekTime){}
void sendCommand(const std::string &cmd, const std::string &cUrl, const std::string &body, void sendCommand(const std::string &cmd, const std::string &cUrl, const std::string &body,
const std::map<std::string, std::string> &extraHeaders = const std::map<std::string, std::string> *extraHeaders = 0);
std::map<std::string, std::string>());
bool parsePacket(); bool parsePacket();
bool handleUDP(); bool handleUDP();
std::string streamMainLoop(); std::string streamMainLoop();