不指定协议转换时,默认转换hls,rtxp

提高EasyDarwin的rtsp推流兼容性
This commit is contained in:
xiongziliang
2019-09-10 17:01:42 +08:00
parent d41d116a67
commit ae64bc9bcb
2 changed files with 25 additions and 4 deletions

View File

@@ -142,6 +142,12 @@ void RtspSession::onRecv(const Buffer::Ptr &pBuf) {
}
}
//字符串是否以xx结尾
static inline bool end_of(const string &str, const string &substr){
auto pos = str.rfind(substr);
return pos != string::npos && pos == str.size() - substr.size();
};
void RtspSession::onWholeRtspPacket(Parser &parser) {
string strCmd = parser.Method(); //提取出请求命令字
_iCseq = atoi(parser["CSeq"].data());
@@ -241,6 +247,13 @@ void RtspSession::handleReq_ANNOUNCE(const Parser &parser) {
throw SockException(Err_shutdown,err);
}
auto full_url = parser.FullUrl();
if(end_of(full_url,".sdp")){
//去除.sdp后缀防止EasyDarwin推流器强制添加.sdp后缀
full_url = full_url.substr(0,full_url.length() - 3);
_mediaInfo.parse(full_url);
}
SdpParser sdpParser(parser.Content());
_strSession = makeRandStr(12);
_aTrackInfo = sdpParser.getAvailableTrack();