添加rtsps rtmps客户端支持
This commit is contained in:
parent
1c89c60963
commit
3c8f96f2a1
|
|
@ -9,7 +9,7 @@ else()
|
||||||
file(GLOB MediaServer_src_list ./*.cpp ./*.h)
|
file(GLOB MediaServer_src_list ./*.cpp ./*.h)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
message(STATUS ${MediaServer_src_list})
|
#message(STATUS ${MediaServer_src_list})
|
||||||
|
|
||||||
add_executable(MediaServer ${MediaServer_src_list})
|
add_executable(MediaServer ${MediaServer_src_list})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,12 +40,23 @@ PlayerBase::Ptr PlayerBase::createPlayer(const EventPoller::Ptr &poller,const st
|
||||||
ptr->teardown();
|
ptr->teardown();
|
||||||
};
|
};
|
||||||
string prefix = FindField(strUrl.data(), NULL, "://");
|
string prefix = FindField(strUrl.data(), NULL, "://");
|
||||||
|
|
||||||
|
if (strcasecmp("rtsps",prefix.data()) == 0) {
|
||||||
|
return PlayerBase::Ptr(new TcpClientWithSSL<RtspPlayerImp>(poller),releasePlayer);
|
||||||
|
}
|
||||||
|
|
||||||
if (strcasecmp("rtsp",prefix.data()) == 0) {
|
if (strcasecmp("rtsp",prefix.data()) == 0) {
|
||||||
return PlayerBase::Ptr(new RtspPlayerImp(poller),releasePlayer);
|
return PlayerBase::Ptr(new RtspPlayerImp(poller),releasePlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strcasecmp("rtmps",prefix.data()) == 0) {
|
||||||
|
return PlayerBase::Ptr(new TcpClientWithSSL<RtmpPlayerImp>(poller),releasePlayer);
|
||||||
|
}
|
||||||
|
|
||||||
if (strcasecmp("rtmp",prefix.data()) == 0) {
|
if (strcasecmp("rtmp",prefix.data()) == 0) {
|
||||||
return PlayerBase::Ptr(new RtmpPlayerImp(poller),releasePlayer);
|
return PlayerBase::Ptr(new RtmpPlayerImp(poller),releasePlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
return PlayerBase::Ptr(new RtspPlayerImp(poller),releasePlayer);
|
return PlayerBase::Ptr(new RtspPlayerImp(poller),releasePlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,12 +44,23 @@ PusherBase::Ptr PusherBase::createPusher(const EventPoller::Ptr &poller,
|
||||||
ptr->teardown();
|
ptr->teardown();
|
||||||
};
|
};
|
||||||
string prefix = FindField(strUrl.data(), NULL, "://");
|
string prefix = FindField(strUrl.data(), NULL, "://");
|
||||||
|
|
||||||
|
if (strcasecmp("rtsps",prefix.data()) == 0) {
|
||||||
|
return PusherBase::Ptr(new TcpClientWithSSL<RtspPusher>(poller,dynamic_pointer_cast<RtspMediaSource>(src)),releasePusher);
|
||||||
|
}
|
||||||
|
|
||||||
if (strcasecmp("rtsp",prefix.data()) == 0) {
|
if (strcasecmp("rtsp",prefix.data()) == 0) {
|
||||||
return PusherBase::Ptr(new RtspPusher(poller,dynamic_pointer_cast<RtspMediaSource>(src)),releasePusher);
|
return PusherBase::Ptr(new RtspPusher(poller,dynamic_pointer_cast<RtspMediaSource>(src)),releasePusher);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strcasecmp("rtmps",prefix.data()) == 0) {
|
||||||
|
return PusherBase::Ptr(new TcpClientWithSSL<RtmpPusher>(poller,dynamic_pointer_cast<RtmpMediaSource>(src)),releasePusher);
|
||||||
|
}
|
||||||
|
|
||||||
if (strcasecmp("rtmp",prefix.data()) == 0) {
|
if (strcasecmp("rtmp",prefix.data()) == 0) {
|
||||||
return PusherBase::Ptr(new RtmpPusher(poller,dynamic_pointer_cast<RtmpMediaSource>(src)),releasePusher);
|
return PusherBase::Ptr(new RtmpPusher(poller,dynamic_pointer_cast<RtmpMediaSource>(src)),releasePusher);
|
||||||
}
|
}
|
||||||
|
|
||||||
return PusherBase::Ptr(new RtspPusher(poller,dynamic_pointer_cast<RtspMediaSource>(src)),releasePusher);
|
return PusherBase::Ptr(new RtspPusher(poller,dynamic_pointer_cast<RtspMediaSource>(src)),releasePusher);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -93,6 +93,11 @@ protected:
|
||||||
* @param uiLen
|
* @param uiLen
|
||||||
*/
|
*/
|
||||||
virtual void onRtcpPacket(int iTrackidx, SdpTrack::Ptr &track, unsigned char *pucData, unsigned int uiLen);
|
virtual void onRtcpPacket(int iTrackidx, SdpTrack::Ptr &track, unsigned char *pucData, unsigned int uiLen);
|
||||||
|
|
||||||
|
/////////////TcpClient override/////////////
|
||||||
|
void onConnect(const SockException &err) override;
|
||||||
|
void onRecv(const Buffer::Ptr &pBuf) override;
|
||||||
|
void onErr(const SockException &ex) override;
|
||||||
private:
|
private:
|
||||||
void onRecvRTP_l(const RtpPacket::Ptr &pRtppt, const SdpTrack::Ptr &track);
|
void onRecvRTP_l(const RtpPacket::Ptr &pRtppt, const SdpTrack::Ptr &track);
|
||||||
void onPlayResult_l(const SockException &ex);
|
void onPlayResult_l(const SockException &ex);
|
||||||
|
|
@ -102,10 +107,6 @@ private:
|
||||||
int getTrackIndexByTrackType(TrackType trackType) const;
|
int getTrackIndexByTrackType(TrackType trackType) const;
|
||||||
|
|
||||||
void play(const string &strUrl, const string &strUser, const string &strPwd, Rtsp::eRtpType eType);
|
void play(const string &strUrl, const string &strUser, const string &strPwd, Rtsp::eRtpType eType);
|
||||||
void onConnect(const SockException &err) override;
|
|
||||||
void onRecv(const Buffer::Ptr &pBuf) override;
|
|
||||||
void onErr(const SockException &ex) override;
|
|
||||||
|
|
||||||
void handleResSETUP(const Parser &parser, unsigned int uiTrackIndex);
|
void handleResSETUP(const Parser &parser, unsigned int uiTrackIndex);
|
||||||
void handleResDESCRIBE(const Parser &parser);
|
void handleResDESCRIBE(const Parser &parser);
|
||||||
bool handleAuthenticationFailure(const string &wwwAuthenticateParamsStr);
|
bool handleAuthenticationFailure(const string &wwwAuthenticateParamsStr);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue